mirror of
https://github.com/apache/httpd.git
synced 2025-08-26 05:42:34 +03:00
Reviewed by: Brian Behlendorf, Randy Terbush, Paul Sutton git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@79022 13f79535-47bb-0310-9956-ffa450edef68
240 lines
10 KiB
HTML
240 lines
10 KiB
HTML
<!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>
|