mirror of
				https://github.com/apache/httpd.git
				synced 2025-10-31 19:10:37 +03:00 
			
		
		
		
	git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@91116 13f79535-47bb-0310-9956-ffa450edef68
		
			
				
	
	
		
			166 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			166 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 | |
|     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 | |
| 
 | |
| <html xmlns="http://www.w3.org/1999/xhtml">
 | |
|   <head>
 | |
|     <meta name="generator" content="HTML Tidy, see www.w3.org" />
 | |
| 
 | |
|     <title>Apache module mod_example</title>
 | |
|   </head>
 | |
|   <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
 | |
| 
 | |
|   <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
 | |
|   vlink="#000080" alink="#FF0000">
 | |
|     <!--#include virtual="header.html" -->
 | |
| 
 | |
|     <blockquote>
 | |
|       <strong>Warning:</strong> This document has not been updated
 | |
|       to take into account changes made in the 2.0 version of the
 | |
|       Apache HTTP Server. Some of the information may still be
 | |
|       relevant, but please use it with care.
 | |
|     </blockquote>
 | |
| 
 | |
|     <h1 align="CENTER">Module mod_example</h1>
 | |
| 
 | |
|     <p>This module illustrates many of the aspects of the <a
 | |
|     href="../misc/API.html" rel="Help">Apache 1.2 API</a> and, when
 | |
|     used, demonstrates the manner in which module callbacks are
 | |
|     triggered by the server.</p>
 | |
| 
 | |
|     <p><a href="module-dict.html#Status"
 | |
|     rel="Help"><strong>Status:</strong></a> Extension<br />
 | |
|      <a href="module-dict.html#SourceFile"
 | |
|     rel="Help"><strong>Source File:</strong></a>
 | |
|     mod_example.c<br />
 | |
|      <a href="module-dict.html#ModuleIdentifier"
 | |
|     rel="Help"><strong>Module Identifier:</strong></a>
 | |
|     example_module<br />
 | |
|      <a href="module-dict.html#Compatibility"
 | |
|     rel="Help"><strong>Compatibility:</strong></a> Available in
 | |
|     Apache 1.2 and later.</p>
 | |
| 
 | |
|     <h2>Summary</h2>
 | |
| 
 | |
|     <p>The files in the <code>src/modules/example directory</code>
 | |
|     under the Apache distribution directory tree are provided as an
 | |
|     example to those that wish to write modules that use the Apache
 | |
|     API.</p>
 | |
| 
 | |
|     <p>The main file is <code>mod_example.c</code>, which
 | |
|     illustrates all the different callback mechanisms and call
 | |
|     syntaxes. By no means does an add-on module need to include
 | |
|     routines for all of the callbacks - quite the contrary!</p>
 | |
| 
 | |
|     <p>The example module is an actual working module. If you link
 | |
|     it into your server, enable the "example-handler" handler for a
 | |
|     location, and then browse to that location, you will see a
 | |
|     display of some of the tracing the example module did as the
 | |
|     various callbacks were made.</p>
 | |
| 
 | |
|     <h2>Directives</h2>
 | |
| 
 | |
|     <ul>
 | |
|       <li><a href="#example">Example</a></li>
 | |
|     </ul>
 | |
|     <br />
 | |
|      <br />
 | |
|      
 | |
| 
 | |
|     <h2>Compiling the example module</h2>
 | |
| 
 | |
|     <p>To include the example module in your server, follow the
 | |
|     steps below:</p>
 | |
| 
 | |
|     <ol>
 | |
|       <li>
 | |
|         Uncomment the "AddModule modules/example/mod_example" line
 | |
|         near the bottom of the <code>src/Configuration</code> file.
 | |
|         If there isn't one, add it; it should look like this: 
 | |
| <pre>
 | |
|      AddModule modules/example/mod_example.o
 | |
|    
 | |
| </pre>
 | |
|       </li>
 | |
| 
 | |
|       <li>Run the <code>src/Configure</code> script
 | |
|       ("<samp>cd src; ./Configure</samp>"). This will
 | |
|       build the Makefile for the server itself, and update the
 | |
|       <code>src/modules/Makefile</code> for any additional modules
 | |
|       you have requested from beneath that subdirectory.</li>
 | |
| 
 | |
|       <li>Make the server (run "<samp>make</samp>" in the
 | |
|       <code>src</code> directory).</li>
 | |
|     </ol>
 | |
| 
 | |
|     <p>To add another module of your own:</p>
 | |
| 
 | |
|     <ol type="A">
 | |
|       <li><samp>mkdir src/modules/<em>mymodule</em></samp></li>
 | |
| 
 | |
|       <li><samp>cp src/modules/example/*
 | |
|       src/modules/<em>mymodule</em></samp></li>
 | |
| 
 | |
|       <li>Modify the files in the new directory.</li>
 | |
| 
 | |
|       <li>Follow steps [1] through [3] above, with appropriate
 | |
|       changes.</li>
 | |
|     </ol>
 | |
| 
 | |
|     <h2>Using the <samp>mod_example</samp> Module</h2>
 | |
| 
 | |
|     <p>To activate the example module, include a block similar to
 | |
|     the following in your <samp>srm.conf</samp> file:</p>
 | |
| <pre>
 | |
|    <Location /example-info>
 | |
|        SetHandler example-handler
 | |
|    </Location>
 | |
|  
 | |
| </pre>
 | |
| 
 | |
|     <p>As an alternative, you can put the following into a <a
 | |
|     href="core.html#accessfilename"><samp>.htaccess</samp></a> file
 | |
|     and then request the file "test.example" from that
 | |
|     location:</p>
 | |
| <pre>
 | |
|    AddHandler example-handler .example
 | |
|  
 | |
| </pre>
 | |
| 
 | |
|     <p>After reloading/restarting your server, you should be able
 | |
|     to browse to this location and see the brief display mentioned
 | |
|     earlier.</p>
 | |
|     <hr />
 | |
| 
 | |
|     <h2><a id="example" name="example">Example directive</a></h2>
 | |
| 
 | |
|     <p><a href="directive-dict.html#Syntax"
 | |
|     rel="Help"><strong>Syntax:</strong></a> Example<br />
 | |
|      <a href="directive-dict.html#Default"
 | |
|     rel="Help"><strong>Default:</strong></a> None<br />
 | |
|      <a href="directive-dict.html#Context"
 | |
|     rel="Help"><strong>Context:</strong></a> server config, virtual
 | |
|     host, directory, .htaccess<br />
 | |
|      <a href="directive-dict.html#Override"
 | |
|     rel="Help"><strong>Override:</strong></a> Options<br />
 | |
|      <a href="directive-dict.html#Status"
 | |
|     rel="Help"><strong>Status:</strong></a> Extension<br />
 | |
|      <a href="directive-dict.html#Module"
 | |
|     rel="Help"><strong>Module:</strong></a> mod_example<br />
 | |
|      <a href="directive-dict.html#Compatibility"
 | |
|     rel="Help"><strong>Compatibility:</strong></a>
 | |
|     <samp>Example</samp> is only available in Apache 1.2 and
 | |
|     later.</p>
 | |
| 
 | |
|     <p>The <samp>Example</samp> directive just sets a demonstration
 | |
|     flag which the example module's content handler displays. It
 | |
|     takes no arguments. If you browse to an URL to which the
 | |
|     example content-handler applies, you will get a display of the
 | |
|     routines within the module and how and in what order they were
 | |
|     called to service the document request. The effect of this
 | |
|     directive one can observe under the point "<samp>Example
 | |
|     directive declared here: YES/NO</samp>".</p>
 | |
|     <!--#include virtual="footer.html" -->
 | |
|   </body>
 | |
| </html>
 | |
| 
 |