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@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>
|
|
|