You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by wr...@apache.org on 2009/07/29 22:40:09 UTC

svn commit: r799066 - in /httpd/httpd/trunk/docs/manual/platform: win_compiling.xml windows.xml

Author: wrowe
Date: Wed Jul 29 20:40:09 2009
New Revision: 799066

URL: http://svn.apache.org/viewvc?rev=799066&view=rev
Log:
Update to 2.2-current, post 2.2 stuff comes next

Modified:
    httpd/httpd/trunk/docs/manual/platform/win_compiling.xml
    httpd/httpd/trunk/docs/manual/platform/windows.xml

Modified: httpd/httpd/trunk/docs/manual/platform/win_compiling.xml
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/platform/win_compiling.xml?rev=799066&r1=799065&r2=799066&view=diff
==============================================================================
--- httpd/httpd/trunk/docs/manual/platform/win_compiling.xml (original)
+++ httpd/httpd/trunk/docs/manual/platform/win_compiling.xml Wed Jul 29 20:40:09 2009
@@ -43,9 +43,10 @@
     <ul>
       <li>
         <p>Disk Space</p>
-        <p>Make sure you have at least 180 MB of free disk space
+
+        <p>Make sure you have at least 200 MB of free disk space
         available. After installation Apache requires approximately
-        70 MB of disk space, plus space for log and cache files,
+        80 MB of disk space, plus space for log and cache files,
         which can grow rapidly. The actual disk space requirements
         will vary considerably based on your chosen configuration and
         any third-party modules or libraries, especially when OpenSSL
@@ -55,69 +56,89 @@
       </li>
 
       <li>
-        <p>Microsoft Visual C++ (Microsoft Visual Studio) 6.0 or higher.</p>
+        <p>Appropriate Patches</p>
+
+        <p>The httpd binary is built with the help of several patches to
+        third party packages, which ensure the released code is buildable
+        and debuggable.  These patches are available and distributed from <a
+        href="http://www.apache.org/dist/httpd/binaries/win32/patches_applied/"
+        >http://www.apache.org/dist/httpd/binaries/win32/patches_applied/</a>
+        and are recommended to be applied to obtain identical results as the
+        "official" ASF distributed binaries.</p>
+      </li>
+
+      <li>
+        <p>Microsoft Visual C++ 6.0 (Visual Studio 97) or later.</p>
 
         <p>Apache can be built using the command line tools, or from
         within the Visual Studio IDE Workbench.  The command line
         build requires the environment to reflect the <code>PATH</code>,
         <code>INCLUDE</code>, <code>LIB</code> and other variables
-        that can be configured with the <code>vcvars32.bat</code> file:</p>
+        that can be configured with the <code>vcvars32.bat</code> script.</p>
 
-        <example>
-          "c:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32"
-        </example>
+        <note>You may want the Visual Studio Processor Pack for your older
+        version of Visual Studio, or a full (not Express) version of newer
+        Visual Studio editions, for the ml.exe assembler.  This will allow
+        you to build OpenSSL, if desired, using the more efficient assembly
+        code implementation.</note>
+
+        <note>Only the Microsoft compiler tool chain is actively supported by
+        the active httpd contributors.  Although the project regularly accepts
+        patches to ensure MinGW and other alternative builds work and improve
+        upon them, they are not actively maintained and are often broken in
+        the course of normal development.</note>
       </li>
 
       <li>
-        <p>The Windows Platform SDK for Visual C++ 6.0 (97) or 7.0 (.NET)</p>
+        <p>Updated Microsoft Windows Platform SDK, February 2003 or later.</p>
+
+        <p>An appropriate Windows Platform SDK is included by default in the
+        full (not express/lite) versions  of Visual C++ 7.1 (Visual Studio 2002)
+        and later, these users can ignore these steps unless explicitly choosing
+        a newer or different version of the Platform SDK.</p>
+
+        <p>To use Visual C++ 6.0 or 7.0 (Studio 2000 .NET), the Platform SDK
+        environment must be prepared using the <code>setenv.bat</code> 
+        script (installed by the Platform SDK) before starting the command
+        line build or launching the msdev/devenv GUI environment.  Installing
+        the Platform SDK for Visual Studio Express versions (2003 and later)
+        should adjust the default environment appropriately.</p>
 
-        <p>Apache's APR and APR-util builds require an updated Microsoft
-        Windows Platform SDK, from Feb 2003 or later, included in the
-        Visual C++ 7.1 (Studio 2003) and later.  For command line builds with 
-        Visual C++ 6.0 or 7.0, the Platform SDK environment is prepared by 
-        the <code>setenv.bat</code> file:</p>
         <example>
+          "c:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32"<br />
           "c:\Program Files\Platform SDK\setenv.bat"
         </example>
-
-        <p>The Platform SDK files distributed with Visual C++ 6.0 and
-        Visual Studio .NET (2000) are no longer sufficient and cause many
-        compilation warnings and linkage errors.  Users of Visual C++ 7.1
-        (Studio 2003) and later versions (of the full product, not the 
-        'Visual Studio Express' flavor) may skip this requirement.</p>
-
-        <p>If using the GUI, either start msdev or devenv with the /setenv
-        flag (after invoking setenv.bat), or ensure the paths are correct
-        under the Tools -&gt; Options -&gt; (Projects -&gt;) Directories 
-        menu option.  The Platform SDK installer will generally help you
-        configure this.</p>
       </li>
 
       <li>
-        <p>The awk utility (awk, gawk or similar).</p>
+        <p>Perl and awk</p>
+
+        <p>Several steps recommended here require a perl interpreter during
+        the build preparation process, but it is otherwise not required.</p>
+ 
         <p>To install Apache within the build system, several files are
         modified using the <code>awk.exe</code> utility. awk was chosen since
         it is a very small download (compared with Perl or WSH/VB) and
         accomplishes the task of modifying configuration files upon
         installation.  Brian Kernighan's
-        <a href="http://cm.bell-labs.com/cm/cs/who/bwk/"
-        >http://cm.bell-labs.com/cm/cs/who/bwk/</a>
+        <a href="http://www.cs.princeton.edu/~bwk/btl.mirror/"
+        >http://www.cs.princeton.edu/~bwk/btl.mirror/</a>
         site has a compiled native Win32 binary,
-        <a href="http://cm.bell-labs.com/cm/cs/who/bwk/awk95.exe"
-        >http://cm.bell-labs.com/cm/cs/who/bwk/awk95.exe</a> which
-        you must save with the name <code>awk.exe</code> rather than
-        <code>awk95.exe</code>.</p>
+        <a href="http://www.cs.princeton.edu/~bwk/btl.mirror/awk95.exe"
+        >http://www.cs.princeton.edu/~bwk/btl.mirror/awk95.exe</a> which
+        you must save with the name <code>awk.exe</code> (rather than
+        <code>awk95.exe</code>).</p>
 
         <note>If awk.exe is not found, Makefile.win's install target
         will not perform substitutions in the installed .conf files.
-        The installed .conf files must then be modified by hand for
-        this situation.</note>
-
-        <p>Note that Developer Studio IDE will only find
-        <code>awk.exe</code> from the Executable path specified in the menu 
-        option Tools -&gt; Options -&gt; (Projects -&gt;) Directories.
-        Add the path for <code>awk.exe</code> to this list, and your 
-        system <code>PATH</code> environment variable, as needed.</p>
+        You must manually modify the installed .conf files to allow
+        the server to start.  Search and replace all "@token@" tags
+        as appropriate.</note>
+
+        <note>The Visual Studio IDE will only find <code>awk.exe</code>
+        from the PATH, or executable path specified in the menu option
+        Tools -&gt; Options -&gt; (Projects -&gt;) Directories.  Ensure
+        awk.exe is in your system path.</note>
 
         <note>Also note that if you are using Cygwin tools
         (<a href="http://www.cygwin.com/">http://www.cygwin.com/</a>) 
@@ -133,6 +154,7 @@
 
       <li>
         <p>[Optional] zlib library (for <module>mod_deflate</module>)</p>
+
         <p>Zlib must be installed into a <code>srclib</code> subdirectory named
         <code>zlib</code>.  This must be built in-place.  Zlib can be obtained 
         from <a href="http://www.zlib.net/">http://www.zlib.net/</a> -- the
@@ -148,41 +170,81 @@
       <li>
         <p>[Optional] OpenSSL libraries (for <module>mod_ssl</module>
         and <code>ab.exe</code> with ssl support)</p>
-        <p><strong>Caution: there are significant restrictions and
-        prohibitions on the use and distribution of strong cryptography
-        and patented intellectual property throughout the world.</strong>
-        OpenSSL includes strong cryptography controlled by both export
-        regulations and domestic law, as well as intellectual property
-        protected by patent, in the United States and elsewhere.  Neither
-        the Apache Software Foundation nor the OpenSSL project can provide
-        legal advise regarding possession, use, or distribution of the code
-        provided by the OpenSSL project. <strong>Consult your own legal
-        counsel, you are responsible for your own actions.</strong></p>
+
+        <note>The OpenSSL library is cryptographic software.  The country
+        in which you currently reside may have restrictions on the import,
+        possession, use, and/or re-export to another country, of encryption
+        software.  BEFORE using any encryption software, please check your
+        country's laws, regulations and policies concerning the import,
+        possession, or use, and re-export of encryption software, to see
+        if this is permitted.  See 
+        <a href="http://www.wassenaar.org/">http://www.wassenaar.org/</a>
+        for more information.</note>
+
+        <p>Configuring and building OpenSSL requires perl to be installed.</p>
 
         <p>OpenSSL must be installed into a <code>srclib</code> subdirectory 
         named <code>openssl</code>, obtained from 
         <a href="http://www.openssl.org/source/"
         >http://www.openssl.org/source/</a>, in order to compile 
-        <module>mod_ssl</module> or the abs project (<code>ab.exe</code> 
-        enabled with SSL support.) To prepare OpenSSL for both 
-        <code>release</code> and <code>debug</code> builds of Apache,
-        disable the patent encumbered features in OpenSSL, using zlib
-        as compiled above you might use the following build commands:</p>
+        <module>mod_ssl</module> or the <code>abs.exe</code> project, which
+        is ab.c with SSL support enabled.  To prepare OpenSSL to be linked 
+        to Apache mod_ssl or abs.exe, and disable patent encumbered features
+        in OpenSSL,  you might use the following build commands:</p>
 
         <example>
-          perl Configure no-rc5 no-idea enable-zlib VC-WIN32 -Ipath/to/srclib/zlib<br />
+          perl Configure no-rc5 no-idea enable-mdc2 enable-zlib VC-WIN32 
+               -Ipath/to/srclib/zlib -Lpath/to/srclib/zlib<br />
           ms\do_masm.bat<br />
           nmake -f ms\ntdll.mak
         </example>
 
-        <p>Note: It is not advisable to use zlib-dynamic, as that could
-        pose a thread race condition.  If building zlib on win32, be sure
-        to adjust the resulting ms\ntdll.mak file to link to the full
-        path of srclib\zlib\zdll.lib rather than zlib1.lib (that error in
-        configuration of OpenSSL through 0.9.8h and earlier reflects older 
-        zlib 1.1 versions.)</p>
+        <note>It is not advisable to use zlib-dynamic, as that transfers
+        the cost of deflating SSL streams to the first request which must
+        load the zlib dll.  Note the suggested patch enables the -L flag to
+        work with windows builds, corrects the name of zdll.lib and ensures
+        .pdb files are generated for troubleshooting.  If the assembler is
+        not installed, you would add no-asm above and use ms\do_ms.bat 
+        instead of the ms\do_masm.bat script.</note>
       </li>
 
+      <li>
+        <p>[Optional] Database libraries (for <module>mod_dbd</module>
+        and <module>mod_dbm</module>)</p>
+
+        <p>The apr-util library exposes dbm (keyed database) and dbd (query
+        oriented database) client functionality to the httpd server and its
+        modules, such as authentication and authorization.  The sdbm dbm and
+        odbc dbd providers are compiled unconditionally.</p>
+
+        <p>The dbd support includes the Oracle instantclient package, MySQL,
+        PostgreSQL and sqlite.  To build these all, for example, set up the
+        LIB to include the library path, INCLUDE to include the headers path,
+        and PATH to include the dll bin path of all four SDK's, and set the
+        DBD_LIST environment variable to inform the build which client driver
+        SDKs are installed correctly, e.g.;</p>
+
+        <example>
+          set DBD_LIST=sqlite3 pgsql oracle mysql
+        </example>
+
+        <p>Similarly, the dbm support can be extended with DBM_LIST to
+        build a Berkeley DB provider (db) and/or gdbm provider, by similarly
+        configuring LIB, INCLUDE and PATH first to ensure the client library
+        libs and headers are available.</p>
+
+        <example>
+          set DBM_LIST=db gdbm
+        </example>
+
+        <note>Depending on the choice of database distributions, it may be
+        necessary to change the actual link target name (e.g. gdbm.lib vs.
+        libgdb.lib) that are listed in the corresponding .dsp/.mak files
+        within the directories srclib\apr-util\dbd or ...\dbm.</note>
+
+        <p>See the README-win32.txt file for more hints on obtaining the
+        various database driver SDKs.</p>
+      </li>
     </ul>
 
   </section>
@@ -191,31 +253,24 @@
 
     <title>Command-Line Build</title>
 
-    <p>First, unpack the Apache distribution into an appropriate
-    directory. Open a command-line prompt and <code>cd</code> to that
-    directory.</p>
-
-    <p>The master Apache makefile instructions are contained in the
-    <code>Makefile.win</code> file. To compile Apache on Windows
-    NT, simply use one of the following commands to compiled the
-    <code>release</code> or <code>debug</code> build, respectively:</p>
+    <p><code>Makefile.win</code> is the top level Apache makefile.
+    To compile Apache on Windows, simply use one of the following commands
+    to build the <code>release</code> or <code>debug</code> flavor:</p>
 
-    <example><pre>
-nmake /f Makefile.win _apacher
-
-nmake /f Makefile.win _apached
-    </pre></example>
+    <example>
+      nmake /f Makefile.win _apacher<br /><br />
+      nmake /f Makefile.win _apached
+    </example>
 
     <p>Either command will compile Apache. The latter will disable
     optimization of the resulting files, making it easier to single
     step the code to find bugs and track down problems.</p>
 
-    <p>You can add your apr-util dbd provider choices with the additional
-    make variable DBD_LIST, e.g. DBD_LIST="mysql oracle pgsql sqlite3"
-    to build these four providers.  However it's necessary to have 
-    the include headers in the INCLUDE path list, db client libraries 
-    in the LIB path list, and the db client dll files in the PATH.  The
-    specifics for each provider are an exercise left to the reader.</p>
+    <p>You can add your apr-util dbd and dbm provider choices with the
+    additional make (environment) variables DBD_LIST and DBM_LIST, 
+    see the comments about [Optional] Database libraries, above.
+    Review the initial comments in Makefile.win for additional options
+    that can be provided when invoking the build.</p>
 
   </section>
 
@@ -241,48 +296,56 @@
     <code>/Apache2</code> directory. If you only want a test compile (without
     installing) you may build the <code>BuildBin</code> project instead.</p>
 
-    <p>The <code>.dsp</code> project files are distributed in Visual
-    C++ 6.0 format. Visual C++ 5.0 (97) will recognize them. Visual C++
-    7.0 (.net) must convert <code>Apache.dsw</code> plus the <code>.dsp</code>
-    files into an <code>Apache.sln</code> plus <code>.msproj</code> files,
-    be sure you reconvert the <code>.msproj</code> file if any of the source
-    <code>.dsp</code> files change! This is really trivial, just open
-    <code>Apache.dsw</code> in the VC++ 7.0 IDE once again.</p>
-
-    <note>There is a flaw in the .vcproj conversion of .dsp through 
-    Visual Studio 2005 SP1; devenv.exe will mis-parse the /D flag for RC 
-    flags containing long quoted /D'efines containing spaces.  The command:
+    <p>The <code>.dsp</code> project files are distributed in Visual Studio 6.0
+    (98) format. Visual C++ 5.0 (97) will recognize them. Visual Studio
+    2002 (.NET) and later users must convert <code>Apache.dsw</code> plus
+    the <code>.dsp</code> files into an <code>Apache.sln</code> plus
+    <code>.msproj</code> files.  Be sure you reconvert the <code>.msproj</code>
+    file again if its source <code>.dsp</code> file changes! This is really
+    trivial, just open <code>Apache.dsw</code> in the VC++ 7.0 IDE once again
+    and reconvert.</p>
+
+    <note>There is a flaw in the .vcproj conversion of .dsp files.  devenv.exe
+    will mis-parse the /D flag for RC flags containing long quoted /D'efines
+    which contain spaces.  The command:
     <example>
       perl srclib\apr\build\cvtdsp.pl -2005
     </example>
     will convert the /D flags for RC flags to use an alternate, parseable
     syntax; unfortunately this syntax isn't supported by Visual Studio 97
-    or it's exported .mak files.  These /D flags are used to pass the long
-    description of the mod_apachemodule.so files to their .rc resource
-    version-identifier compilations, and replace the use of awk for generating
-    .rc files formerly used for Apache 2.0.</note>
+    or its exported .mak files.  These /D flags are used to pass the long
+    description of the mod_apachemodule.so files to the shared .rc resource
+    version-identifier build.</note>
 
-    <p>Visual C++ 7.0 (.net) users should also use the Build
+    <p>Visual Studio 2002 (.NET) and later users should also use the Build
     menu, Configuration Manager dialog to uncheck both the <code>Debug</code>
-    and <code>Release</code> Solution modules abs, <module>mod_ssl</module>
-    and <module>mod_deflate</module>.
-    These modules are built by invoking <code>nmake</code> or the IDE directly
-    with the <code>BinBuild</code> target to build those modules conditionally
+    and <code>Release</code> Solution modules <code>abs</code>, 
+    <module>mod_deflate</module> and <module>mod_ssl</module> components, as
+    well as every component starting with <code>apr_db*</code>.  These modules
+    are built by invoking <code>nmake</code>, or the IDE directly with the
+    <code>BinBuild</code> target, which builds those modules conditionally
     if the <code>srclib</code> directories <code>openssl</code> and/or
-    <code>zlib</code> exist.</p>
+    <code>zlib</code> exist, and based on the setting of <code>DBD_LIST</code>
+    and <code>DBM_LIST</code> environment variables.</p>
+
+  </section>
+
+  <section id="workspacebuild">
+
+    <title>Exporting command-line .mak files</title>
 
     <p>Exported <code>.mak</code> files pose a greater hassle, but they are
     required for Visual C++ 5.0 users to build <module>mod_ssl</module>,
     abs (<program>ab</program> with SSL support) and/or
-    <module>mod_deflate</module>.  VC++ 7.0 (Visual Studio .NET) users 
-    also benefit, <code>nmake</code> builds were faster than 
-    <code>binenv</code> builds until the parallel compilation features
-    introduced in Visual Studio 2005.  Build the entire project from within 
-    the VC++ 5.0 or 6.0 IDE, preferably with mod_deflate, mod_ssl and abs,
-    then use the Project Menu Export for all makefiles (preferably, with 
-    dependencies.)  You must build the projects first in order to create 
-    all dynamic auto-generated targets, so that dependencies can be parsed
-    correctly. Run the following command to fix the paths so they will build 
+    <module>mod_deflate</module>.  The .mak files also support a broader
+    range of C++ tool chain distributions, such as Visual Studio Express.</p>
+
+    <p>You must first build all projects in order to create all dynamic 
+    auto-generated targets, so that dependencies can be parsed correctly. 
+    Build the entire project from within the Visual Studio 6.0 (98) IDE,
+    using the <code>BuildAll</code> target, then use the Project Menu Export
+    for all makefiles (checking on "with dependencies".)  Run the following
+    command to correct absolute paths into relative paths so they will build
     anywhere:</p>
 
     <example>
@@ -295,71 +358,25 @@
     the current directory and below will be corrected, and the
     timestamps adjusted to reflect the <code>.dsp</code>.</p>
 
+    <p>Always review the generated <code>.mak</code> and <code>.dep</code>
+    files for Platform SDK or other local, machine specific file paths.
+    The <code>DevStudio\Common\MSDev98\bin\</code> (VC6) directory contains
+    a <code>sysincl.dat</code> file, which lists all exceptions.  Update
+    this file (including both forward and backslashed paths, such as both
+    <code>sys/time.h</code> and <code>sys\time.h</code>) to ignore such
+    newer dependencies.  Including local-install paths in a distributed 
+    <code>.mak</code> file will cause the build to fail completely.</p>
+
     <p>If you contribute back a patch that revises project files, we
     must commit project files in Visual Studio 6.0 format. Changes
     should be simple, with minimal compilation and linkage flags that
-    will be recognized by all VC++ 5.0 through 7.0 environments.</p>
+    can be recognized by all Visual Studio environments.</p>
 
   </section>
 
-  <section id="projectcomponents">
-
-    <title>Project Components</title>
-
-    <p>The <code>Apache.dsw</code> workspace and <code>makefile.win</code>
-    <code>nmake</code> script both build the <code>.dsp</code> projects
-    of the Apache server in the following sequence:</p>
-
-    <ol>
-      <li><code>srclib\apr\apr.dsp</code></li>
-
-      <li><code>srclib\apr\libapr.dsp</code></li>
-
-      <li><code>srclib\apr-util\uri\gen_uri_delims.dsp</code></li>
+  <section id="installation">
 
-      <li><code>srclib\apr-util\xml\expat\lib\xml.dsp</code></li>
-
-      <li><code>srclib\apr-util\aprutil.dsp</code></li>
-
-      <li><code>srclib\apr-util\libaprutil.dsp</code></li>
-
-      <li><code>srclib\pcre\dftables.dsp</code></li>
-
-      <li><code>srclib\pcre\pcre.dsp</code></li>
-
-      <li><code>srclib\pcre\pcreposix.dsp</code></li>
-
-      <li><code>server\gen_test_char.dsp</code></li>
-
-      <li><code>libhttpd.dsp</code></li>
-
-      <li><code>Apache.dsp</code></li>
-    </ol>
-
-    <p>In addition, the <code>modules\</code> subdirectory tree contains
-    project files for the majority of the modules.</p>
-
-    <p>The <code>support\</code> directory contains project files for
-    additional programs that are not part of the Apache runtime,
-    but are used by the administrator to test Apache and maintain
-    password and log files. Windows-specific support projects are
-    broken out in the <code>support\win32\</code> directory.</p>
-
-    <ol>
-      <li><code>support\ab.dsp</code></li>
-
-      <li><code>support\htdigest.dsp</code></li>
-
-      <li><code>support\htpasswd.dsp</code></li>
-
-      <li><code>support\logresolve.dsp</code></li>
-
-      <li><code>support\rotatelogs.dsp</code></li>
-
-      <li><code>support\win32\ApacheMonitor.dsp</code></li>
-
-      <li><code>support\win32\wintty.dsp</code></li>
-    </ol>
+    <title>Installation</title>
 
     <p>Once Apache has been compiled, it needs to be installed in
     its server root directory. The default is the
@@ -369,100 +386,29 @@
     <em>dir</em> automatically, use one of the following
     <code>nmake</code> commands:</p>
 
-    <example><pre>
-nmake /f Makefile.win installr INSTDIR=<em>dir</em>
-
-nmake /f Makefile.win installd INSTDIR=<em>dir</em>
-    </pre></example>
+    <example>
+      nmake /f Makefile.win installr INSTDIR=<em>dir</em><br />
+      nmake /f Makefile.win installd INSTDIR=<em>dir</em>
+    </example>
 
-    <p>The <em>dir</em> argument to <code>INSTDIR</code> gives
+    <p>The <em>dir</em> argument to <code>INSTDIR</code> provides
     the installation directory; it can be omitted if Apache is
-    to be installed into <code>\Apache2</code>.</p>
+    to be installed into <code>\Apache22</code> (of the current
+    drive).</p>
 
-    <p>This will install the following:</p>
-
-    <ul>
-      <li><code><em>dir</em>\bin\httpd.exe</code> - Apache
-      executable</li>
-
-      <li><code><em>dir</em>\bin\ApacheMonitor.exe</code> - Service
-      monitor taskbar icon utility</li>
-
-      <li><code><em>dir</em>\bin\htdigest.exe</code> - Digest auth
-      password file utility</li>
-
-      <li><code><em>dir</em>\bin\htdbm.exe</code> - SDBM auth
-      database password file utility</li>
-
-      <li><code><em>dir</em>\bin\htpasswd.exe</code> - Basic auth
-      password file utility</li>
-
-      <li><code><em>dir</em>\bin\logresolve.exe</code> - Log file
-      dns name lookup utility</li>
-
-      <li><code><em>dir</em>\bin\rotatelogs.exe</code> - Log file
-      cycling utility</li>
-
-      <li><code><em>dir</em>\bin\wintty.exe</code> - Console window
-      utility</li>
-
-      <li><code><em>dir</em>\bin\libapr.dll</code> - Apache
-      Portable Runtime shared library</li>
-
-      <li><code><em>dir</em>\bin\libaprutil.dll</code> - Apache
-      Utility Runtime shared library</li>
-
-      <li><code><em>dir</em>\bin\libhttpd.dll</code> - Apache Core
-      library</li>
-
-      <li><code><em>dir</em>\modules\mod_*.so</code> - Loadable
-      Apache modules</li>
-
-      <li><code><em>dir</em>\conf</code> - Configuration
-      directory</li>
-
-      <li><code><em>dir</em>\logs</code> - Empty logging
-      directory</li>
-
-      <li><code><em>dir</em>\include</code> - C language header
-      files</li>
-
-      <li><code><em>dir</em>\lib</code> - Link library files</li>
-    </ul>
-
-    <section id="projectcomponents-warn">
+  </section>
 
-      <title>Warning about building Apache from the development tree</title>
+  <section id="projectcomponents-warn">
 
-      <note>Note only the <code>.dsp</code> files are maintained between <code>release</code>
-      builds. The <code>.mak</code> files are NOT regenerated, due to the tremendous
-      waste of reviewer's time. Therefore, you cannot rely on the <code>NMAKE</code>
-      commands above to build revised <code>.dsp</code> project files unless you
-      then export all <code>.mak</code> files yourself from the project. This is
-      unnecessary if you build from within the Microsoft
-      Developer Studio environment.</note>
-
-      <note>Also note it is very worthwhile to build the <code>BuildBin</code>
-      target project (or the command line <code>_apacher</code> or
-      <code>_apached</code> target) prior to exporting the make files.
-      Many files are autogenerated in the build process. Only a full
-      build provides all of the dependent files required to build proper
-      dependency trees for correct build behavior.</note>
-
-      <p>In order to create distribution <code>.mak</code> files, always 
-      review the generated <code>.mak</code> (or <code>.dep</code>) 
-      dependencies for Platform SDK or other garbage, machine specific
-      includes.  The <code>DevStudio\SharedIDE\bin\</code> (VC5) or 
-      <code>DevStudio\Common\MSDev98\bin\</code> (VC6) directory contains
-      the <code>sysincl.dat</code> file, which must list all exceptions. 
-      Update this file (including both forward and backslashed paths, such 
-      as both <code>sys/time.h</code> and <code>sys\time.h</code>) to ignore 
-      such dependencies.  Including local-install paths in a distributed 
-      <code>.mak</code> file will cause the build to fail completely. And 
-      don't forget to run <code>srclib/apr/build/fixwin32mak.pl</code> in 
-      order to fix absolute paths within the <code>.mak</code> files.</p>
+    <title>Warning about building Apache from the development tree</title>
 
-    </section>
+    <note>Note only the <code>.dsp</code> files are maintained between <code>release</code>
+    builds. The <code>.mak</code> files are NOT regenerated, due to the tremendous
+    waste of reviewer's time. Therefore, you cannot rely on the <code>NMAKE</code>
+    commands above to build revised <code>.dsp</code> project files unless you
+    then export all <code>.mak</code> files yourself from the project. This is
+    unnecessary if you build from within the Microsoft
+    Developer Studio environment.</note>
 
   </section>
 

Modified: httpd/httpd/trunk/docs/manual/platform/windows.xml
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/platform/windows.xml?rev=799066&r1=799065&r2=799066&view=diff
==============================================================================
--- httpd/httpd/trunk/docs/manual/platform/windows.xml (original)
+++ httpd/httpd/trunk/docs/manual/platform/windows.xml Wed Jul 29 20:40:09 2009
@@ -23,55 +23,33 @@
 <manualpage metafile="windows.xml.meta">
   <parentdocument href="./">Platform Specific Notes</parentdocument>
 
-  <title>Using Apache with Microsoft Windows</title>
+  <title>Using Apache HTTP Server on Microsoft Windows</title>
 
   <summary>
-
     <p>This document explains how to install, configure and run
-    Apache 2.0 under Microsoft Windows. If you find any bugs, or
-    wish to contribute in other ways, please use our <a
-    href="http://httpd.apache.org/bug_report.html">bug reporting
-    page</a>.</p>
+    Apache 2.3 under Microsoft Windows.  If you have questions after
+    reviewing the documentation (and any event and error logs), you
+    should consult the peer-supported 
+    <a href="http://httpd.apache.org/userslist.html">users' mailing
+    list</a>.</p>
 
     <p>This document assumes that you are installing a binary
     distribution of Apache. If you want to compile Apache yourself
     (possibly to help with development or tracking down bugs),
     see <a href="win_compiling.html">Compiling Apache for Microsoft
     Windows</a>.</p>
-
-    <p><strong>Because of the current versioning policies on Microsoft
-    Windows operating system families, this document assumes the
-    following:</strong></p>
-    <ul>
-      <li><strong>Windows NT:</strong> This means all versions of
-      Windows that are based on the Windows NT kernel. Includes Windows
-      NT, Windows 2000, Windows XP and Windows .Net Server 2003.</li>
-      <li><strong>Windows 9x:</strong> This means older,
-      consumer-oriented versions of Windows. Includes Windows 95 (also
-      OSR2), Windows 98 and Windows ME.</li>
-    </ul>
-
   </summary>
 
   <section id="req">
     <title>Operating System Requirements</title>
 
-    <p>The primary Windows platform for running Apache 2.0 is Windows
-    NT. The binary installer only works with the x86 family of
-    processors, such as Intel and AMD processors. Running Apache on
-    Windows 9x is not thoroughly tested, and it is never recommended on
-    production systems.
-    </p>
-
-    <p>On all operating systems, TCP/IP networking must be installed
-    and working. If running on Windows 95, the Winsock 2 upgrade must
-    be installed. Winsock 2 for Windows 95 can be downloaded from <a
-    href="http://www.microsoft.com/windows95/downloads/contents/WUAdminTools/S_WUNetworkingTools/W95Sockets2/Default.asp">here</a>.
-    </p>
+    <p>The primary Windows platform for running Apache 2.3 is Windows
+    2000 or later.  The binary installer only works with the x86 family
+    of processors, such as Intel and AMD processors.  Always obtain and
+    install the current service pack to avoid operating system bugs.</p>
 
-    <p>On Windows NT 4.0, installing Service Pack 6 is strongly
-    recommended, as Service Pack 4 created known issues with TCP/IP
-    and Winsock integrity that were resolved in later Service Packs.</p>
+    <note>Apache HTTP Server versions later than 2.2 will not run on any
+    operating system earlier than Windows 2000.</note>
   </section>
 
   <section id="down">
@@ -88,27 +66,23 @@
     <p>For Windows installations you should download the version of
     Apache for Windows with the <code>.msi</code> extension. This is a
     single Microsoft Installer file, which contains a ready-to-run
-    version of Apache. There is a separate <code>.zip</code> file,
-    which contains only the source code. You can compile Apache
-    yourself with the Microsoft Visual C++ (Visual Studio) tools.</p>
+    build of Apache.  There is a separate <code>.zip</code> file,
+    which contains only the source code, see the summary above.</p>
   </section>
 
   <section id="inst">
     <title>Installing Apache for Windows</title>
 
-    <p>You need Microsoft Installer 1.2 or above for the installation
-    to work. On Windows 9x you can update your Microsoft Installer to
-    version 2.0 <a
-    href="http://www.microsoft.com/downloads/release.asp?ReleaseID=32831">here</a>
-    and on Windows NT 4.0 and 2000 the version 2.0 update can be found
-    <a href="http://www.microsoft.com/downloads/release.asp?ReleaseID=32832">here</a>.
-    Windows XP does not need this update.</p>
+    <p>You need Microsoft Installer 2.0 or above for the installation
+    to work.  For Windows NT 4.0 and 2000 refer to Microsoft's article
+    <a href="http://support.microsoft.com/kb/292539/">KB 292539</a>.
+    Windows XP and later do not require this update.</p>
 
-    <p>Note that you cannot install two versions of Apache 2.0 on the
+    <p>Note that you cannot install two versions of Apache 2.3 on the
     same computer with the binary installer. You can, however, install
     a version of the 1.3 series <strong>and</strong> a version of the
-    2.0 series on the same computer without problems. If you need to
-    have two different 2.0 versions on the same computer, you have to
+    2.3 series on the same computer without problems. If you need to
+    have two different 2.3 versions on the same computer, you have to
     <a href="win_compiling.html">compile and install Apache from the
     source</a>.</p>
 
@@ -192,7 +166,7 @@
     <p>The main differences in Apache for Windows are:</p>
     <ul>
       <li><p>Because Apache for Windows is multithreaded, it does not
-      use a separate process for each request, as Apache does on Unix.
+      use a separate process for each request, as Apache can on Unix.
       Instead there are usually only two Apache processes running: a
       parent process, and a child which handles the requests. Within
       the child process each request is handled by a separate thread.
@@ -201,12 +175,12 @@
       <p>The process management directives are also different:</p>
 
       <p><directive module="mpm_common">MaxRequestsPerChild</directive>:
-      Like the Unix directive, this controls how many requests a single
-      child process will serve before exiting. However, unlike on Unix,
-      a single process serves all the requests at once, not just one.
-      If this is set, it is recommended that a very high number is
-      used. The recommended default, <code>MaxRequestsPerChild 0</code>,
-      causes the child process to never exit.</p>
+      Like the Unix directive, this controls how many requests (actually,
+      connections) which a single child process will serve before exiting.
+      However, unlike on Unix, a replacement process is not instantly
+      available.  Use the default <code>MaxRequestsPerChild 0</code>,
+      unless instructed to change the behavior to overcome a memory leak
+      in third party modules or in-process applications.</p>
 
       <note type="warning"><strong>Warning: The server configuration
       file is reread when a new child process is started. If you have
@@ -218,13 +192,17 @@
       should use. This is the maximum number of connections the server
       can handle at once, so be sure to set this number high enough for
       your site if you get a lot of hits. The recommended default is
-      <code>ThreadsPerChild 50</code>.</p></li>
+      <code>ThreadsPerChild 150</code>, but this mut be adjusted to
+      reflect the greatest anticipated number of simultanious
+      connections to accept.</p></li>
 
       <li><p>The directives that accept filenames as arguments must use
       Windows filenames instead of Unix ones. However, because Apache
-      uses Unix-style names internally, you must use forward slashes,
-      not backslashes. Drive letters can be used; if omitted, the drive
-      with the Apache executable will be assumed.</p></li>
+      may interpret backslashes as an "escape character" sequence, you
+      should consistently use forward slashes in path names, not 
+      backslashes.  Drive letters can be used; if omitted, the drive
+      of the SystemRoot direcive (or -d command line option) becomes
+      the default.</p></li>
 
       <li><p>While filenames are generally case-insensitive on
       Windows, URLs are still treated internally as case-sensitive
@@ -247,6 +225,16 @@
       RewriteRule (.*) ${lowercase:$1} [R,L]
       </example></li>
 
+      <li><p>When running, Apache needs write access only to the logs
+      directory and any configured cache directory tree.  Due to the
+      issue of case insensitive and short 8.3 format names, Apache must
+      validate all path names given.  This means that each directory
+      which Apache evaluates, from the drive root up to the directory
+      leaf, must have read, list and traverse directory permissions.
+      If Apache2.3 is installed at C:\Program Files, then the root
+      directory, Program Files and Apache2.3 must all be visible
+      to Apache.</p></li>
+
       <li><p>Apache for Windows contains the ability to load modules at
       runtime, without recompiling the server. If Apache is compiled
       normally, it will install a number of optional modules in the
@@ -264,11 +252,11 @@
       loadable modules</a> is also available.</p></li>
 
       <li><p>Apache can also load ISAPI (Internet Server Application
-      Programming Interface) extensions (i.e. internet server
-      applications), such as those used by Microsoft IIS and other
-      Windows servers. <a href="../mod/mod_isapi.html">More information
-      is available</a>. Note that Apache <strong>cannot</strong> load
-      ISAPI Filters.</p></li>
+      Programming Interface) extensions such as those used by Microsoft
+      IIS and other Windows servers. <a href="../mod/mod_isapi.html">More
+      information is available</a>. Note that Apache <strong>cannot</strong>
+      load ISAPI Filters, and ISAPI Handlers with some Microsoft feature
+      extensions will not work.</p></li>
 
       <li><p>When running CGI scripts, the method Apache uses to find
       the interpreter for the script is configurable using the
@@ -283,15 +271,11 @@
 
       <li><p>Any errors during Apache startup are logged into the
       Windows event log when running on Windows NT. This mechanism
-      acts as a backup for those situations where Apache cannot even
-      access the normally used <code>error.log</code> file. You can
-      view the Windows event log by using the Event Viewer application
-      on Windows NT 4.0, and the Event Viewer MMC snap-in on newer
-      versions of Windows.</p>
-
-      <note><strong>Note that there is no startup error logging on
-      Windows 9x because no Windows event log exists on those operating
-      systems.</strong></note></li>
+      acts as a backup for those situations where Apache is not yet
+      prepared to use the <code>error.log</code> file. You can
+      review the Windows Applicat Event Log by using the Event Viewer,
+      e.g. Start - Settings - Control Panel - Administrative Tools
+      - Event Viewer.</p></li>
     </ul>
 
   </section>
@@ -299,9 +283,6 @@
   <section id="winsvc">
     <title>Running Apache as a Service</title>
 
-    <p>Apache can be run as a service on Windows NT. There is some
-    highly experimental support for similar behavior on Windows 9x.</p>
-
     <p>You can install Apache as a service automatically during the
     installation. If you chose to install for all users, the
     installation will create an Apache service for you. If you specify
@@ -340,7 +321,7 @@
     </example>
 
     <p>If you use the first command without any special parameters except
-    <code>-k install</code>, the service will be called <code>Apache2</code>
+    <code>-k install</code>, the service will be called <code>Apache2.3</code>
     and the configuration will be assumed to be <code>conf\httpd.conf</code>.
     </p>
 
@@ -358,8 +339,8 @@
 
     <p>Normal starting, restarting and shutting down of an Apache
     service is usually done via the Apache Service Monitor, by using
-    commands like <code>NET START Apache2</code> and <code>NET STOP
-    Apache2</code> or via normal Windows service management. Before
+    commands like <code>NET START Apache2.3</code> and <code>NET STOP
+    Apache2.3</code> or via normal Windows service management. Before
     starting Apache as a service by any means, you should test the
     service's configuration file by using:</p>
 
@@ -406,9 +387,9 @@
     to access network resources, create a separate account for Apache as
     noted below.</strong></note>
 
-    <p>You may want to create a separate account for running Apache
-    service(s). Especially, if you have to access network resources
-    via Apache, this is strongly recommended.</p>
+    <p>It is recommended that users create a separate account for running
+    Apache service(s). If you have to access network resources via Apache,
+    this is required.</p>
 
     <ol>
       <li>Create a normal domain user account, and be sure to
@@ -437,13 +418,13 @@
     </ol>
 
     <note>It is usually a good practice to grant the user the Apache
-    service runs as read and execute (RX) access to the whole Apache2
+    service runs as read and execute (RX) access to the whole Apache2.3
     directory, except the <code>logs</code> subdirectory, where the
     user has to have at least change (RWXD) rights.</note>
 
     <p>If you allow the account to log in as a user and as a service,
-    then you can log on with that account and test that the account has the
-    privileges to execute the scripts, read the web pages, and that
+    then you can log on with that account and test that the account has
+    the privileges to execute the scripts, read the web pages, and that
     you can start Apache in a console window. If this works, and you
     have followed the steps above, Apache should execute as a service
     with no problems.</p>
@@ -460,7 +441,7 @@
     Windows Control Panel, you may get the following message:</p>
 
     <example>
-      Could not start the Apache2 service on \\COMPUTER <br />
+      Could not start the Apache2.3 service on \\COMPUTER <br />
       Error 1067; The process terminated unexpectedly.
     </example>
 
@@ -469,54 +450,10 @@
     the problem you should follow the instructions for Running Apache
     for Windows from the Command Prompt.</p>
 
-    <p>There is some support for Apache on Windows 9x to behave in a
-    similar manner as a service on Windows NT. It is <strong>highly
-    experimental</strong>. It is not of production-class reliability,
-    and its future is not guaranteed. It can be mostly regarded as
-    a risky thing to play with - proceed with caution!</p>
-
-    <p>There are some differences between the two kinds of services
-    you should be aware of:</p>
-
-    <ul>
-      <li><p>Apache will attempt to start and if successful it will run
-      in the background. If you run the command</p>
-
-      <example>
-        httpd.exe -n "MyServiceName" -k start
-      </example>
-
-      <p>via a shortcut on your desktop, for example, then if the
-      service starts successfully, a console window will flash up but
-      it immediately disappears. If Apache detects any errors on startup
-      such as incorrect entries in the httpd.conf configuration file,
-      the console window will remain visible. This will display an error
-      message which will be useful in tracking down the cause of the
-      problem.</p></li>
-
-      <li><p>Windows 9x does not support <code>NET START</code> or
-      <code>NET STOP</code> commands. You must control the Apache
-      service on the command prompt via the <code>-k</code> switches.
-      </p></li>
-
-      <li><p>Apache and Windows 9x offer no support for running Apache
-      as a specific user with network privileges. In fact, Windows 9x
-      offers no security on the local machine, either. This is the
-      simple reason because of which the Apache Software Foundation
-      never endorses use of a Windows 9x -based system as a public
-      Apache server. The primitive support for Windows 9x exists only
-      to assist the user in developing web content and learning the
-      Apache server, and perhaps as an intranet server on a secured,
-      private network.</p></li>
-
-    </ul>
-
-    <p>Once you have confirmed that Apache runs correctly as a
-    console application you can install, control and uninstall the
-    pseudo-service with the same commands as on Windows NT. You can
-    also use the Apache Service Monitor to manage Windows 9x
-    pseudo-services.</p>
-
+    <p>If you are having problems with the service, it is suggested
+    you follow the instructions below to try starting httpd.exe from
+    a console window, and work out the errors before struggling to
+    start it as a service again.</p>
   </section>
 
   <section id="wincons">
@@ -539,7 +476,7 @@
 
     <p>You can also run Apache via the shortcut Start Apache in Console
     placed to <code>Start Menu --&gt; Programs --&gt; Apache HTTP Server
-    2.0.xx --&gt; Control Apache Server</code> during the installation.
+    2.3.xx --&gt; Control Apache Server</code> during the installation.
     This will open a console window and start Apache inside it. If you
     don't have Apache installed as a service, the window will remain
     visible until you stop Apache by pressing Control-C in the console
@@ -669,7 +606,7 @@
     </p>
 
     <example>
-      HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Apache\2.3.2
+      HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Apache\2.2.2
     </example>
 
     <p>Correspondingly, if you chose to install Apache for the current
@@ -678,7 +615,7 @@
     logged on:</p>
 
     <example>
-      HKEY_CURRENT_USER\SOFTWARE\Apache Software Foundation\Apache\2.3.2
+      HKEY_CURRENT_USER\SOFTWARE\Apache Software Foundation\Apache\2.2.2
     </example>
 
     <p>This key is compiled into the server and can enable you to test
@@ -703,7 +640,6 @@
     location it is vital that you update the
     <directive module="core">ServerRoot</directive> directive in the
     <code>httpd.conf</code> file to reflect the new location.</p>
-
   </section>
 
   <section id="test">
@@ -747,9 +683,9 @@
     <p>Because Apache <strong>cannot</strong> share the same port with
     another TCP/IP application, you may need to stop, uninstall or reconfigure
     certain other services before running Apache. These conflicting
-    services include other WWW servers and some firewall implementations.
-    </p>
-
+    services include other WWW servers, some firewall implementations,
+    and even some client applications (such as Skype) which will use port
+    80 to attempt to bypass firewall issues.</p>
   </section>
 
 </manualpage>