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

Reply via email to