mirror of
https://github.com/apache/httpd.git
synced 2025-05-17 15:21:13 +03:00
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93792 13f79535-47bb-0310-9956-ffa450edef68
121 lines
4.1 KiB
XML
121 lines
4.1 KiB
XML
<?xml version="1.0"?>
|
|
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
|
|
<?xml-stylesheet type="text/xsl" href="../style/manual.xsl"?>
|
|
<modulesynopsis>
|
|
|
|
<name>mod_example</name>
|
|
<description>Illustrates the Apache module API</description>
|
|
<status>Experimental</status>
|
|
<sourcefile>mod_example.c</sourcefile>
|
|
<identifier>example_module</identifier>
|
|
|
|
<summary>
|
|
<note type="warning">
|
|
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.
|
|
</note>
|
|
|
|
<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>
|
|
</summary>
|
|
|
|
<section><title>Compiling the example module</title>
|
|
|
|
<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:
|
|
<example>
|
|
AddModule modules/example/mod_example.o
|
|
</example>
|
|
</li>
|
|
|
|
<li>Run the <code>src/Configure</code> script
|
|
("<code>cd src; ./Configure</code>"). 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 "<code>make</code>" in the
|
|
<code>src</code> directory).</li>
|
|
</ol>
|
|
|
|
<p>To add another module of your own:</p>
|
|
|
|
<ol type="A">
|
|
<li><code>mkdir src/modules/<em>mymodule</em></code></li>
|
|
|
|
<li><code>cp src/modules/example/*
|
|
src/modules/<em>mymodule</em></code></li>
|
|
|
|
<li>Modify the files in the new directory.</li>
|
|
|
|
<li>Follow steps [1] through [3] above, with appropriate
|
|
changes.</li>
|
|
</ol>
|
|
</section>
|
|
|
|
<section><title>Using the <code>mod_example</code> Module</title>
|
|
|
|
<p>To activate the example module, include a block similar to
|
|
the following in your <code>srm.conf</code> file:</p>
|
|
<example>
|
|
<Location /example-info><br />
|
|
SetHandler example-handler<br />
|
|
</Location>
|
|
</example>
|
|
|
|
<p>As an alternative, you can put the following into a <a
|
|
href="core.html#accessfilename"><code>.htaccess</code></a> file
|
|
and then request the file "test.example" from that location:</p>
|
|
<example>
|
|
AddHandler example-handler .example
|
|
</example>
|
|
|
|
<p>After reloading/restarting your server, you should be able
|
|
to browse to this location and see the brief display mentioned
|
|
earlier.</p>
|
|
</section>
|
|
|
|
<directivesynopsis>
|
|
<name>Example</name>
|
|
<description>Demonstration directive to illustrate the Apache module
|
|
API</description>
|
|
<syntax>Example</syntax>
|
|
<contextlist><context>server config</context>
|
|
<context>virtual host</context><context>directory</context>
|
|
<context>.htaccess</context></contextlist>
|
|
|
|
<usage>
|
|
<p>The <directive>Example</directive> 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 "<code>Example
|
|
directive declared here: YES/NO</code>".</p>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
</modulesynopsis>
|