mirror of
				https://github.com/apache/httpd.git
				synced 2025-11-03 17:53:20 +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>
 |