| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> |
| <HTML> |
| <HEAD> |
| <TITLE>Using Apache with Microsoft Windows</TITLE> |
| </HEAD> |
| |
| <!-- Background white, links blue (unvisited), navy (visited), red (active) --> |
| <BODY |
| BGCOLOR="#FFFFFF" |
| TEXT="#000000" |
| LINK="#0000FF" |
| VLINK="#000080" |
| ALINK="#FF0000" |
| > |
| <!--#include virtual="header.html" --> |
| |
| <H1 ALIGN="CENTER">Using Apache With Microsoft Windows</H1> |
| |
| <p>This document explains how to compile, install, configure and run |
| Apache 1.3a1 (or later) under Microsoft Windows. Please note that at |
| this time, Windows support is entirely experimental, and is |
| recommended only for experienced users. The Apache Group does not |
| guarantee that this software will work as documented, or even at |
| all. If you find any bugs, or wish to contribute in other ways, please |
| use our <a href="http://www.apache.org/bug_report.html">bug reporting |
| page.</a></p> |
| |
| <p><b>Warning: Apache on NT has not yet been optimized for performance. |
| Apache still performs best, and is most reliable on Unix platforms. Over |
| time we will improve NT performance. Folks doing comparative reviews |
| of webserver performance are asked to compare against Apache |
| on a Unix platform such as Solaris, FreeBSD, or Linux.</b></p> |
| |
| <hr> |
| |
| <ul> |
| <li><a href="#req">Requirements</a> |
| <li><a href="#down">Downloading Apache for Windows</a> |
| <li><a href="#comp">Compiling Apache for Windows</a> |
| <li><a href="#inst">Installing Apache for Windows</a> |
| <li><a href="#use">Using Apache for Windows</a> |
| </ul> |
| |
| <hr> |
| |
| <h2><a name="req">Requirements</a></h2> |
| |
| <p>Apache 1.3a1 requires the following:</p> |
| |
| <ul> |
| <li>Microsoft Windows NT 4.0<a href="#351">*</a>, or Windows 95. |
| <li>An Intel-based PC-compatible capable of running above OS (exact |
| requirements unknown) with a connection to a TCP/IP network. |
| <li>Microsoft Visual C++ 5.0 or later. |
| </ul> |
| |
| <p><small><a name="351">*</a> Apache may run with Windows NT 3.5.1, but |
| has not been tested.</small></p> |
| |
| <p>Apache 1.3a1 is available only in source form. Future releases will |
| contain prebuilt binaries for use by those without compilers (which we |
| understand are the vast majority of Windows users), however the |
| current release requires Microsoft Visual C++ 5.0 or later. The Apache |
| Group is releasing 1.3a1 only as source to limit the alpha release to |
| those who have the tools and knowledge to assist with the development |
| processes.</p> |
| |
| <p>This documentation assumes good working knowledge of Microsoft |
| Windows, Microsoft Visual C++, and the Apache web server (for |
| Unix).</p> |
| |
| <H2><a name="down">Downloading Apache for Windows</a></H2> |
| |
| <p>Information on the latest version of Apache can be found on the Apache |
| web server at <A |
| HREF="http://www.apache.org/">http://www.apache.org/</A>. This will |
| list the current release, any more recent alpha or beta-test release, |
| together with details of mirror web and anonymous ftp sites.</p> |
| |
| <p>You will be able to download Apache 1.3a1 or a later release in |
| several forms, including a WinZip (<code>.zip</code>) |
| archive. Although this contains the same files as the others (likely |
| <code>.tar.gz</code> and <code>.tar.Z</code>), it is recommended for |
| Windows use, as all the files contained therein will contain Windows |
| line breaks. The other archives may contain files with Unix line |
| breaks, which will not function on Windows (although they may).</p> |
| |
| <h2><a name="comp">Compiling Apache for Windows</a></h2> |
| |
| <p>Compiling Apache requires Microsoft Visual C++ 5.0 to be properly |
| installed. It is easiest to compile with the command-line tools |
| (nmake, etc...). Consult the VC++ manual to determine how to install |
| them.</p> |
| |
| <p>First, unpack the Apache distribution into an appropriate |
| directory. Open a command-line prompt, and change to the |
| <code>src</code> subdirectory of the Apache distribution.</p> |
| |
| <p>The master Apache makefile instructions are contained in the |
| <code>Makefile.nt</code> file. To compile Apache, simply use one of |
| the following commands: |
| <ul> |
| <li><code>nmake /f Makefile.nt apacher</code> (release build) |
| <li><code>nmake /f Makefile.nt apached</code> (debug build) |
| </ul> |
| |
| <p>These will both compile Apache. The latter will include debugging |
| information in the resulting files, making it easier to find bugs and |
| track down problems.</p> |
| |
| <p>Apache can also be compiled using VC++'s Visual Studio development |
| environment. Although compiling Apache in this manner is not as simple, |
| it makes it possible to easily modify the Apache source, or to compile |
| Apache if the command-line tools are not installed.</p> |
| |
| <p>Project files (<code>.DSP</code>) are included for each of the |
| portions of Apache. The two projects that are necessary for Apache to |
| run are <code>Apache.dsp</code> and <code>ApacheCore.dsp</code>. The |
| <code>src\nt</code> subdirectory also contains project files for the |
| optional modules (see below).</p> |
| |
| <h2><a name="inst">Installing Apache for Windows</a></h2> |
| |
| <p>Once Apache has been compiled, it needs to be installed in its server |
| root directory. The hard-coded default is the <code>\Apache</code> |
| directory, on the current hard drive. Another directory may be used, |
| but the files will need to be installed manually.</p> |
| |
| <p>To install the files into the </code>\Apache</code> directory |
| automatically, use one the following nmake commands (see above):</p> |
| <ul> |
| <li><code>nmake /f Makefile.nt installr</code> (for release build) |
| <li><code>nmake /f Makefile.nt installd</code> (for debug build) |
| </ul> |
| |
| <p>This will install the following:</p> |
| |
| <ul> |
| <li><code>\Apache\Apache.exe</code> - Apache executable |
| <li><code>\Apache\ApacheCore.dll</code> - Main Apache shared library |
| <li><code>\Apache\modules\ApacheModule*.dll</code> - Optional Apache |
| modules (7 files) |
| <li><code>\Apache\conf</code> - Empty configuration directory |
| <li><code>\Apache\logs</code> - Empty logging directory |
| </ul> |
| |
| <p>If you do not have nmake, or wish to install in a different directory, |
| be sure to use a similar naming scheme.</p> |
| |
| <h2><a name="use">Using Apache for Windows</a></h2> |
| |
| <p>The first step is to set up Apache's configuration files. Default |
| configuration files for Windows are located in the <code>conf</code> |
| subdirectory in the Apache distribution, and are named |
| <code>httpd.conf-dist-win</code>, <code>access.conf-dist-win</code> |
| and <code>srm.conf-dist-win</code>. Move these into |
| <code>\Apache\conf</code>, and rename them <code>httpd.conf</code>, |
| <code>access.conf</code> and <code>srm.conf</code>, respectively.</p> |
| |
| <p>Configuring Apache is nearly identical to the Unix version of Apache, |
| so most of the standard <a href="./">Apache documentation</a> is |
| applicable. A few things are, however, different, or new:</p> |
| |
| <ul> |
| <li><p>Because Apache for Windows is multithreaded, it does not use a |
| separate process for each request, as Apache does with |
| Unix. Therefore, the "process"-management directives are different: |
| <p><a href="mod/core.html#startservers">StartServers</a> - This |
| tells the server how many processes to use. Unlike Unix, there |
| will never be more than this number, and only one will be used |
| at a time (the others will be held in reserve in case the main |
| processes crashes or otherwise dies). The recommended default is |
| <code>StartServers 3</code>. |
| <p><a |
| href="mod/core.html#maxrequestsperchild">MaxRequestsPerChild</a> |
| - Like the Unix directive, this controls how many requests a |
| process will serve before exiting. However, unlike Unix, a |
| process serves all the requests at once, not just one, so if |
| this is set, it is recommended that a very high number is |
| used. The recommended default, <code>MaxRequestsPerChild |
| 0</code>, does not cause the process to ever exit. |
| <p><a href="mode/core.html#threadsperchild">ThreadsPerChild</a> - |
| This directive is new, and tells the server how many threads it |
| should use. This is the maximum number of connections the server |
| can handle at once; be sure and 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><p>The directives that accept filenames as arguments now 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><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 |
| <code>\Apache\modules</code> directory. To activate these, or other |
| modules, the new <a href="mod/mod_dll.html#loadmodule">LoadModule</a> |
| directive must be used. For example, to active the status module, |
| use the following (in addition to the status-activating directives |
| in <code>access.conf</code>):</p> |
| <pre> |
| LoadModule status_module modules/ApacheModuleStatus.dll |
| </pre> |
| <p>Information on <a href="mod/mod_dll.html#creating">creating module |
| DLLs</a> is also available.</p> |
| <li><p>Apache can also load ISAPI Extensions (i.e., Internet Server |
| Applications), such as those used by Microsoft's IIS, and other |
| Windows servers. <a href="mod/mod_isapi.html">More information |
| is available.</a> |
| </ul> |
| |
| <p>Once Apache is configured correctly, it is nearly ready to be |
| run. However, we recommend you copy the <code>icons</code> and |
| <code>htdocs</code> subdirectories from the Apache distribution to |
| <code>\Apache</code>. The latter is especially important, as it contains |
| the document root (what the server actually serves). |
| |
| <p>Apache can be executed in one of two ways, directly from the command |
| line, or as a Windows NT service. To run it from the command line, use |
| the following command: |
| <pre> |
| C:\Apache> <b>apache -s</b> |
| </pre> |
| |
| <p>Apache will then execute, and will remain running until it is |
| exited. To use Apache as a Windows NT service, use the following:</p> |
| <pre> |
| C:\Apache> <b>apache -i</b> |
| </pre> |
| <p>Then open the Services control panel, and start the Apache service.</p> |
| |
| <p>If you installed Apache in a server root other than |
| <code>\Apache</code>, you must use the <code>-f</code> command-line |
| option to specify the httpd.conf file, or the <code>-d</code> option |
| to specify the server root.</p> |
| |
| <!--#include virtual="footer.html" --> |
| </BODY> |
| </HTML> |