You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by rb...@apache.org on 2010/03/25 14:20:39 UTC
svn commit: r927382 - /httpd/httpd/trunk/docs/manual/dso.xml
Author: rbowen
Date: Thu Mar 25 13:20:39 2010
New Revision: 927382
URL: http://svn.apache.org/viewvc?rev=927382&view=rev
Log:
Bring this doc a little further into this century. Considering dropping,
or at least rewriting, most of the "Background" section.
Modified:
httpd/httpd/trunk/docs/manual/dso.xml
Modified: httpd/httpd/trunk/docs/manual/dso.xml
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/dso.xml?rev=927382&r1=927381&r2=927382&view=diff
==============================================================================
--- httpd/httpd/trunk/docs/manual/dso.xml (original)
+++ httpd/httpd/trunk/docs/manual/dso.xml Thu Mar 25 13:20:39 2010
@@ -59,7 +59,7 @@
itself. Practically all other distributed Apache httpd modules can then
be placed into a DSO by individually enabling the DSO build for
them via <program>configure</program>'s
- <code>--enable-<em>module</em>=shared</code> option as discussed
+ <code>--enable-mods-shared</code> option as discussed
in the <a href="install.html">install documentation</a>. After a
module is compiled into a DSO named <code>mod_foo.so</code> you
can use <module>mod_so</module>'s <directive
@@ -68,7 +68,7 @@
or restart.</p>
<p>To simplify this creation of DSO files for Apache httpd modules
- (especially for third-party modules) a new support program
+ (especially for third-party modules) a support program
named <program>apxs</program> (<dfn>APache
eXtenSion</dfn>) is available. It can be used to build DSO based
modules <em>outside of</em> the Apache httpd source tree. The idea is
@@ -90,38 +90,41 @@
<ol>
<li>
- Build and install a <em>distributed</em> Apache httpd module, say
+ <p>Build and install a <em>distributed</em> Apache httpd module, say
<code>mod_foo.c</code>, into its own DSO
- <code>mod_foo.so</code>:
+ <code>mod_foo.so</code>:</p>
<example>
-$ ./configure --prefix=/path/to/install --enable-foo=shared<br />
+$ ./configure --prefix=/path/to/install --enable-foo --enable-mods-shared=foo<br />
$ make install
</example>
</li>
<li>
- Build and install a <em>third-party</em> Apache httpd module, say
- <code>mod_foo.c</code>, into its own DSO
- <code>mod_foo.so</code>:
+ <p>Configure Apache HTTP Server for <em>later installation</em> of shared
+ modules:</p>
<example>
-$ ./configure --add-module=<var>module_type</var>:/path/to/3rdparty/mod_foo.c \<br />
-<indent>
- --enable-foo=shared<br />
-</indent>
+$ ./configure --enable-so<br />
$ make install
</example>
</li>
<li>
- Configure Apache HTTP Server for <em>later installation</em> of shared
- modules:
+ <p>Configure Apache HTTP Server with all modules enabled, and loaded
+ as shared objects. You can then remove individual ones by
+ commenting out the <directive
+ module="mod_so">LoadModule</directive> directives in
+ <code>httpd.conf</code>.</p>
<example>
-$ ./configure --enable-so<br />
+$ ./configure --enable-modules=most --enable-mods-shared=all<br />
$ make install
</example>
+
+ <p>The <code>most</code> argument to
+ <code>--enable-modules</code> indicates that all modules
+ which are not experimental or example modules will be built.</p>
</li>
<li>
@@ -132,8 +135,7 @@ $ make install
<example>
$ cd /path/to/3rdparty<br />
-$ apxs -c mod_foo.c<br />
-$ apxs -i -a -n foo mod_foo.la
+$ apxs -cia mod_foo.c
</example>
</li>
</ol>
@@ -142,6 +144,8 @@ $ apxs -i -a -n foo mod_foo.la
use a <directive module="mod_so">LoadModule</directive>
directive in <code>httpd.conf</code> to tell Apache httpd to activate
the module.</p>
+
+ <p>See the <a href="programs/apxs.html">apxs documentation</a> for more details.</p>
</section>
<section id="background"><title>Background</title>
@@ -234,16 +238,6 @@ $ apxs -i -a -n foo mod_foo.la
provides. On the other hand using shared objects for extending
a program is not used by a lot of programs.</p>
- <p>As of 1998 there were only a few software packages available
- which use the DSO mechanism to extend their
- functionality at run-time: Perl 5 (via its XS mechanism and the
- DynaLoader module), Netscape Server, <em>etc.</em> Starting
- with version 1.3, Apache HTTP Server joined the crew, because Apache httpd
- already uses a module concept to extend its functionality and
- internally uses a dispatch-list-based approach to link external
- modules into the Apache httpd core functionality. So, Apache httpd is
- really predestined for using DSO to load its modules at
- run-time.</p>
</section>
<section id="advantages"><title>Advantages and Disadvantages</title>
@@ -266,7 +260,7 @@ $ apxs -i -a -n foo mod_foo.la
third-party modules even after installation. This is at least
a great benefit for vendor package maintainers who can create
a Apache httpd core package and additional packages containing
- extensions like PHP3, mod_perl, mod_fastcgi,
+ extensions like PHP, mod_perl, mod_security,
<em>etc.</em></li>
<li>Easier Apache httpd module prototyping because with the