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 -> Options -> (Projects ->) 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 -> Options -> (Projects ->) 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 -> Options -> (Projects ->) 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 --> Programs --> Apache HTTP Server
- 2.0.xx --> Control Apache Server</code> during the installation.
+ 2.3.xx --> 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>