mirror of
https://github.com/apache/httpd.git
synced 2025-05-28 13:41:30 +03:00
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@420990 13f79535-47bb-0310-9956-ffa450edef68
142 lines
5.3 KiB
XML
142 lines
5.3 KiB
XML
<?xml version="1.0"?>
|
|
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
|
|
<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
|
|
<!-- $LastChangedRevision$ -->
|
|
|
|
<!--
|
|
Licensed to the Apache Software Foundation (ASF) under one or more
|
|
contributor license agreements. See the NOTICE file distributed with
|
|
this work for additional information regarding copyright ownership.
|
|
The ASF licenses this file to You under the Apache License, Version 2.0
|
|
(the "License"); you may not use this file except in compliance with
|
|
the License. You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
-->
|
|
|
|
<modulesynopsis metafile="mod_example.xml.meta">
|
|
|
|
<name>mod_example</name>
|
|
<description>Illustrates the Apache module API</description>
|
|
<status>Experimental</status>
|
|
<sourcefile>mod_example.c</sourcefile>
|
|
<identifier>example_module</identifier>
|
|
|
|
<summary>
|
|
<p>Some files in the <code>modules/experimental</code> directory
|
|
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 id="compiling"><title>Compiling the example module</title>
|
|
|
|
<p>To include the example module in your server, follow the
|
|
steps below:</p>
|
|
|
|
<ol>
|
|
<li>
|
|
Run <program>configure</program> with <code>--enable-example</code>
|
|
option.</li>
|
|
|
|
<li>Make the server (run "<code>make</code>").</li>
|
|
</ol>
|
|
|
|
<p>To add another module of your own:</p>
|
|
|
|
<ol type="A">
|
|
<li><code>cp modules/experimental/mod_example.c
|
|
modules/new_module/<em>mod_myexample.c</em></code></li>
|
|
|
|
<li>Modify the file.</li>
|
|
|
|
<li>Create <code>modules/new_module/config.m4</code>.
|
|
<ol>
|
|
<li>Add <code>APACHE_MODPATH_INIT(new_module)</code>.</li>
|
|
<li>Copy APACHE_MODULE line with "example" from
|
|
<code>modules/experimental/config.m4</code>.</li>
|
|
<li>Replace the first argument "example" with <em>myexample</em>.</li>
|
|
<li>Replace the second argument with brief description of your module.
|
|
It will be used in <code>configure --help</code>.</li>
|
|
<li>If your module needs additional C compiler flags, linker flags or
|
|
libraries, add them to CFLAGS, LDFLAGS and LIBS accordingly.
|
|
See other <code>config.m4</code> files in modules directory for
|
|
examples.</li>
|
|
<li>Add <code>APACHE_MODPATH_FINISH</code>.</li>
|
|
</ol>
|
|
</li>
|
|
|
|
<li>Create <code>module/new_module/Makefile.in</code>.
|
|
If your module doesn't need special build instructions,
|
|
all you need to have in that file is
|
|
<code>include $(top_srcdir)/build/special.mk</code>.</li>
|
|
|
|
<li>Run ./buildconf from the top-level directory.</li>
|
|
|
|
<li>Build the server with --enable-myexample</li>
|
|
|
|
</ol>
|
|
</section>
|
|
|
|
<section id="using"><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>httpd.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>
|