Mailing List Archive

cvs commit: apache-1.3/htdocs/manual/mod directives.html index.html mod_dll.html mod_so.html
pcs 98/03/21 09:03:50

Modified: htdocs/manual/mod directives.html index.html mod_dll.html
mod_so.html
Log:
Update docs to reflect the fact that mod_dll has been replaced by mod_so.
In particular, mark mod_dll as obselete, add Windows information and
examples to mod_so documentation, copy info about creating DLLs from
mod_dll.html to mod_so.html (although this needs more work to add info
for Unix users, since most of the description applies to all systems).

Revision Changes Path
1.42 +2 -4 apache-1.3/htdocs/manual/mod/directives.html

Index: directives.html
===================================================================
RCS file: /export/home/cvs/apache-1.3/htdocs/manual/mod/directives.html,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -r1.41 -r1.42
--- directives.html 1998/03/20 11:08:26 1.41
+++ directives.html 1998/03/21 17:03:47 1.42
@@ -120,10 +120,8 @@
<LI><A HREF="core.html#limit">&lt;Limit&gt;</A>
<LI><A HREF="core.html#listen">Listen</A>
<LI><A HREF="core.html#listenbacklog">ListenBacklog</A>
-<LI><A HREF="mod_so.html#loadfile">LoadFile</A> (Unix)
-<LI><A HREF="mod_dll.html#loadfile">LoadFile</A> (Windows)
-<LI><A HREF="mod_so.html#loadmodule">LoadModule</A> (Unix)
-<LI><A HREF="mod_dll.html#loadmodule">LoadModule</A> (Windows)
+<LI><A HREF="mod_so.html#loadfile">LoadFile</A>
+<LI><A HREF="mod_so.html#loadmodule">LoadModule</A>
<LI><A HREF="core.html#location">&lt;Location&gt;</A>
<LI><A HREF="core.html#locationmatch">&lt;LocationMatch&gt;</A>
<LI><A HREF="core.html#lockfile">LockFile</A>



1.25 +3 -3 apache-1.3/htdocs/manual/mod/index.html

Index: index.html
===================================================================
RCS file: /export/home/cvs/apache-1.3/htdocs/manual/mod/index.html,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- index.html 1998/02/03 11:40:22 1.24
+++ index.html 1998/03/21 17:03:48 1.25
@@ -60,8 +60,8 @@
<DD>Basic directory handling.
<DT><A HREF="mod_dld.html">mod_dld</A> Apache 1.2.* and earlier
<DD>Start-time linking with the GNU libdld. Replaced in Apache 1.3 by mod_so
-<DT><A HREF="mod_dll.html">mod_dll</A>
-<DD>Start-time module linking with Win32 DLLs.
+<DT><A HREF="mod_dll.html">mod_dll</A> Apache 1.3b1 to 1.3b5 only
+<DD>Replaced in 1.3b6 by mod_so
<DT><A HREF="mod_env.html">mod_env</A>
<DD>Passing of environments to CGI scripts
<DT><A HREF="mod_example.html">mod_example</A> Apache 1.2 and up
@@ -100,7 +100,7 @@
<DT><A HREF="mod_setenvif.html">mod_setenvif</A> Apache 1.3 and up
<DD>Set environment variables based on client information
<DT><A HREF="mod_so.html">mod_so</A> Apache 1.3 and up
-<DD>Experimental support for loading modules at runtime on Unix
+<DD>Experimental support for loading modules (DLLs on Windows) at runtime
<DT><A HREF="mod_speling.html">mod_speling</A> Apache 1.3 and up
<DD>Automatically correct minor typos in URLs
<DT><A HREF="mod_status.html">mod_status</A>



1.8 +5 -0 apache-1.3/htdocs/manual/mod/mod_dll.html

Index: mod_dll.html
===================================================================
RCS file: /export/home/cvs/apache-1.3/htdocs/manual/mod/mod_dll.html,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- mod_dll.html 1998/02/05 21:20:00 1.7
+++ mod_dll.html 1998/03/21 17:03:49 1.8
@@ -14,6 +14,11 @@
>
<!--#include virtual="header.html" -->
<H1 ALIGN="CENTER">Module mod_dll</H1>
+
+<STRONG><FONT COLOR="red">This module is obsolete. As of version
+1.3b6 of Apache, it has been replaced with <A HREF="mod_so.html">
+mod_so</A>. </FONT></STRONG>
+
<P>
This module is contained in the <CODE>mod_dll.c</CODE> file, and is
compiled in by default for Windows. It provides for loading of executable code



1.3 +81 -11 apache-1.3/htdocs/manual/mod/mod_so.html

Index: mod_so.html
===================================================================
RCS file: /export/home/cvs/apache-1.3/htdocs/manual/mod/mod_so.html,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- mod_so.html 1998/02/05 20:04:59 1.2
+++ mod_so.html 1998/03/21 17:03:49 1.3
@@ -15,11 +15,20 @@
<!--#include virtual="header.html" -->
<H1 ALIGN="CENTER">Module mod_so</H1>

-This module is contained in the <CODE>mod_so.c</CODE> file, and is not
-compiled in by default. It provides for loading of executable code and
-modules into the server at start-up time, on Unix systems. Win32
-systems use <A HREF="mod_dll.html">mod_dll</A> instead. This module is
-only available in Apache 1.3 and up.
+This module is contained in the <CODE>mod_so.c</CODE> file. It is
+compiled in by default on Windows and is not compiled in by default on
+Unix. It provides for loading of executable code and modules into the
+server at start-up or restart time. On Unix, the loaded code typically
+comes from shared object files (usually with <SAMP>.so</SAMP>
+extension), whilst on Windows this module loads <SAMP>DLL</SAMP>
+files. This module is only available in Apache 1.3 and up.
+
+<P>
+
+In previous releases, the functionality of this module was provided
+for Unix by mod_dld, and for Windows by mod_dll. On Windows, mod_dll
+was used in beta release 1.3b1 through 1.3b5. mod_so combines these
+two modules into a single module for all operating systems.

<H2>Summary</H2>

@@ -55,10 +64,11 @@
REL="Help"
><STRONG>Module:</STRONG></A> mod_so<P>

-The LoadFile directive links in the named object files or libraries when
-the server is started; this is used to load additional code which
-may be required for some module to work. <EM>Filename</EM> is relative
-to <A HREF="core.html#serverroot">ServerRoot</A>.<P><HR>
+The LoadFile directive links in the named object files or libraries
+when the server is started or restarted; this is used to load
+additional code which may be required for some module to
+work. <EM>Filename</EM> is either and absolute path or relative to <A
+HREF="core.html#serverroot">ServerRoot</A>.<P><HR>

<H2><A name="loadmodule">LoadModule</A></H2>
<!--%plaintext &lt;?INDEX {\tt LoadModule} directive&gt; -->
@@ -82,11 +92,71 @@
The LoadModule directive links in the object file or library <EM>filename</EM>
and adds the module structure named <EM>module</EM> to the list of active
modules. <EM>Module</EM> is the name of the external variable of type
-<CODE>module</CODE> in the file. Example:
+<CODE>module</CODE> in the file. Example (Unix):
<BLOCKQUOTE><CODE>
LoadModule status_module modules/mod_status.so
</CODE></BLOCKQUOTE>
-loads the module in the modules subdirectory of the ServerRoot.<P>
+
+<P>
+
+Example (Windows):
+<BLOCKQUOTE><CODE>
+LoadModule status_module modules/ApacheModuleStatus.dll<BR>
+</CODE></BLOCKQUOTE>
+
+loads the named module from the modules subdirectory of the
+ServerRoot.<P>
+
+<HR>
+
+<H2><A name="creating">Creating DLL Modules for Windows</A></H2>
+
+<P>The Apache module API is unchanged between the Unix and Windows
+ versions. Many modules will run on Windows with no or little change
+ from Unix, although others rely on aspects of the Unix architecture
+ which are not present in Windows, and will not work.</P>
+
+<P>When a module does work, it can be added to the server in one of two
+ ways. As with Unix, it can be compiled into the server. Because Apache
+ for Windows does not have the <CODE>Configure</CODE> program of Apache
+ for Unix, the module's source file must be added to the ApacheCore
+ project file, and its symbols must be added to the
+ <CODE>os\win32\modules.c</CODE> file.</P>
+
+<P>The second way is to compile the module as a DLL, a shared library
+ that can be loaded into the server at runtime, using the
+ <CODE><A HREF="#loadmodule">LoadModule</A></CODE>
+ directive. These module DLLs can be distributed and run on any Apache
+ for Windows installation, without recompilation of the server.</P>
+
+<P>To create a module DLL, a small change is necessary to the module's
+ source file: The module record must be exported from the DLL (which
+ will be created later; see below). To do this, add the
+ <CODE>MODULE_VAR_EXPORT</CODE> (defined in the Apache header files) to
+ your module's module record definition. For example, if your module
+ has:</P>
+<PRE>
+ module foo_module;
+</PRE>
+<P>Replace the above with:</P>
+<PRE>
+ module MODULE_VAR_EXPORT foo_module;
+</PRE>
+<P>Note that this will only be activated on Windows, so the module can
+ continue to be used, unchanged, with Unix if needed. Also, if you are
+ familiar with <CODE>.DEF</CODE> files, you can export the module
+ record with that method instead.</P>
+
+<P>Now, create a DLL containing your module. You will need to link this
+ against the ApacheCore.lib export library that is created when the
+ ApacheCore.dll shared library is compiled. You may also have to change
+ the compiler settings to ensure that the Apache header files are
+ correctly located.</P>
+
+<P>This should create a DLL version of your module. Now simply place it
+ in the <SAMP>modules</SAMP> directory of your server root, and use
+ the <CODE><A HREF="#loadmodule">LoadModule</A></CODE> directive to
+ load it.</P>


<!--#include virtual="footer.html" -->