mirror of
https://github.com/apache/httpd.git
synced 2025-08-29 04:02:02 +03:00
previously removed text also removed, and 1.3.0 --> 1.3.1. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@81807 13f79535-47bb-0310-9956-ffa450edef68
442 lines
17 KiB
HTML
442 lines
17 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 install, configure and run
|
|
Apache 1.3 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><STRONG>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.</STRONG></P>
|
|
|
|
<P>
|
|
|
|
Most of this document assumes that you are installing Windows from a
|
|
binary distribution. If you want to compile Apache yourself (possibly
|
|
to help with development, or to track down bugs), see the section on
|
|
<A HREF="#comp">Compiling Apache for Windows</A> below.
|
|
|
|
<HR>
|
|
|
|
<UL>
|
|
<LI><A HREF="#req">Requirements</A>
|
|
<LI><A HREF="#down">Downloading Apache for Windows</A>
|
|
<LI><A HREF="#inst">Installing Apache for Windows (binary install)</A>
|
|
<LI><A HREF="#run">Running Apache for Windows</A>
|
|
<LI><A HREF="#use">Using Apache for Windows</A>
|
|
<LI><A HREF="#cmdline">Running Apache for Windows from the Command Line</A>
|
|
<LI><A HREF="#comp">Compiling Apache for Windows</A>
|
|
</UL>
|
|
|
|
<HR>
|
|
|
|
<H2><A NAME="req">Requirements</A></H2>
|
|
|
|
Apache 1.3 is designed to run on Windows NT 4.0. The binary installer
|
|
will only work in Intel processors. Apache may also run on Windows 95
|
|
and Windows NT 3.5.1, but these have not been tested. In all cases
|
|
TCP/IP networking must be installed.
|
|
|
|
<P>
|
|
|
|
If running on Windows 95, using the "Winsock2" upgrade is recommended
|
|
but may not be necessary. If running on NT 4.0, installing Service Pack 2
|
|
is recommended.
|
|
|
|
<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 releases,
|
|
together with details of mirror web and anonymous ftp sites.</P>
|
|
|
|
<P>
|
|
|
|
You should download the version of Apache for Windows with the
|
|
<CODE>.exe</CODE> extension. This is a single file containing Apache,
|
|
ready to install and run. There may also be a <CODE>.zip</CODE> file
|
|
containing the source code, to compile Apache yourself. (If there is
|
|
no <SAMP>.zip</SAMP> file, the source will be available in a
|
|
<SAMP>.tar.gz</SAMP> file but this will contain Unix line endings. You
|
|
will have to convert at least the <SAMP>.mak</SAMP> and
|
|
<SAMP>.dsp</SAMP> files to have DOS line endings before MSVC will
|
|
understand them).
|
|
|
|
<H2><A NAME="inst">Installing Apache for Windows</A></H2>
|
|
|
|
Run the Apache <SAMP>.exe</SAMP> file you downloaded above. This will
|
|
ask for:
|
|
|
|
<UL>
|
|
|
|
<LI>the directory to install Apache into (the default is
|
|
<CODE>\Program Files\Apache Group\Apache</CODE> although you can
|
|
change this to any other directory)
|
|
|
|
<LI>the start menu name (default is "Apache Web Server")
|
|
|
|
<LI>the installation type. The "Typical" option installs
|
|
everything except the source code. The "Minimum" option does not
|
|
install the manuals or source code. Choose the "Custom" install if
|
|
you want to install the source code.
|
|
|
|
</UL>
|
|
|
|
<P>
|
|
|
|
During the installation, Apache will configure the files in the
|
|
<SAMP>conf</SAMP> directory for your chosen installation
|
|
directory. However if any of the files in this directory already exist
|
|
they will <STRONG>not</STRONG> be overwritten. Instead the new copy of
|
|
the corresponding file will be left with the extension
|
|
<SAMP>.default</SAMP>. So, for example, if
|
|
<SAMP>conf\httpd.conf</SAMP> already exists it will not be altered,
|
|
but the version which would have been installed will be left in
|
|
<SAMP>conf\httpd.conf.default</SAMP>. After the installation has
|
|
finished you should manually check to see what in new in the
|
|
<SAMP>.default</SAMP> file, and if necessary update your existing
|
|
configuration files.
|
|
|
|
<P>
|
|
|
|
Also, if you already have a file called <SAMP>htdocs\index.html</SAMP>
|
|
then it will not be overwritten (no <SAMP>index.html.default</SAMP>
|
|
file will be installed either). This should mean it a safe to install
|
|
Apache over an existing installation (but you will have to stop the
|
|
existing server running before doing the installation, then start the
|
|
new one after the installation is finished).
|
|
|
|
<P>
|
|
|
|
<BLOCKQUOTE>
|
|
<STRONG>Important note for 1.3b6 installs</STRONG>: the above only
|
|
applies for 1.3b7 and later. In 1.3b6 the installer would overwrite
|
|
any existing <SAMP>httpd.conf</SAMP>, <SAMP>access.conf</SAMP>,
|
|
<SAMP>srm.conf</SAMP> or <SAMP>mime.types</SAMP> files in the
|
|
<SAMP>conf</SAMP>, and will also overwrite your
|
|
<SAMP>index.html</SAMP> file in the <SAMP>htdocs</SAMP> directory. You
|
|
should copy these files or directories before installing Apache 1.3b6
|
|
or install into a new directory.
|
|
</BLOCKQUOTE>
|
|
|
|
<P>
|
|
|
|
After installing Apache, you should edit the configuration files in
|
|
the <SAMP>conf</SAMP> directory as required. These files will be
|
|
configured during the install ready for Apache to be run from the
|
|
directory where it was installed, with the documents served from the
|
|
subdirectory <SAMP>htdocs</SAMP>. There are lots of other options
|
|
which should be set before you start really using Apache. However to
|
|
get started quickly the files should work as installed.
|
|
|
|
<H2><A NAME="run">Running Apache for Windows</A></H2>
|
|
|
|
There are two ways you can run Apache:
|
|
|
|
<UL>
|
|
<LI>As a "service" (available on NT only). This is the best option if
|
|
you want Apache to automatically start when you machine boots, and to
|
|
keep Apache running when you log-off.
|
|
|
|
<LI>From a <a ref="#cmdline">console window</a>. This is the only option available for
|
|
Windows 95 users.
|
|
</UL>
|
|
|
|
To start Apache as a service, you first need to install it as a
|
|
service. Run the "Install Apache as Service" option from the Start
|
|
menu. Once this is done you can start Apache by opening the Services
|
|
window (in the Control Panel), selecting Apache, then clicking on
|
|
Start. Apache will now be running in the background. You can later
|
|
stop Apache by clicking on Stop. As an alternative to using the
|
|
Services window, you can start and stop Apache from the control line
|
|
with
|
|
|
|
<PRE>
|
|
NET START APACHE
|
|
NET STOP APACHE
|
|
</PRE>
|
|
|
|
To run Apache from a console window, select the "Apache Server" option
|
|
from the Start menu. This will open a console window and start Apache
|
|
running inside it. The window will remain active until you stop
|
|
Apache. To stop Apache running, press Control-C within the console
|
|
window.
|
|
|
|
<P>
|
|
|
|
After starting Apache running (either in a console window or as a
|
|
service) if will be listening to port 80 (unless you changed the
|
|
<SAMP>Port</SAMP>, <SAMP>Listen</SAMP> or <SAMP>BindAddress</SAMP>
|
|
directives in the configuration files). To connect to the server and
|
|
access the default page, launch a browser and enter this URL:
|
|
|
|
<PRE>
|
|
http://localhost/
|
|
</PRE>
|
|
|
|
This should respond with a welcome page, and a link to the Apache
|
|
manual. If nothing happens or you get an error, look in the
|
|
<SAMP>error_log</SAMP> file in the <SAMP>logs</SAMP> directory.
|
|
|
|
<P>
|
|
|
|
Once your basic installation is working, you should configure it
|
|
properly by editing the files in the <SAMP>conf</SAMP> directory.
|
|
|
|
<H2><A NAME="use">Configuring Apache for Windows</A></H2>
|
|
|
|
Apache is configured by files in the <SAMP>conf</SAMP>
|
|
directory. These are the same as files used to configure the Unix
|
|
version, but there are a few different directives for Apache on
|
|
Windows. See the <A HREF="./">Apache documentation</A> for all the
|
|
available directives.
|
|
|
|
<P>
|
|
|
|
The main differences in Apache for Windows are:
|
|
|
|
<UL>
|
|
<LI><P>Because Apache for Windows is multithreaded, it does not use a
|
|
separate process for each request, as Apache does with
|
|
Unix. Instead there are usually only two Apache processes running:
|
|
a parent process, and a child which handles the requests. Within
|
|
the child each request is handled by a separate thread.
|
|
<P>
|
|
|
|
So the "process"-management directives are different:
|
|
<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="mod/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_so.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_so.html#creating">creating loadable
|
|
modules</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>
|
|
|
|
<H2><A NAME="cmdline">Running Apache for Windows from the Command Line</A></H2>
|
|
|
|
The Start menu icons and the NT Service manager can provide an simple
|
|
interafce for administering Apache. But in some cases it is easier to
|
|
work from the command line.
|
|
|
|
<P>
|
|
When working with Apache it is important to know how it will find the
|
|
configuration files. Apache will try one of the following, in this order.
|
|
|
|
<ul>
|
|
<li>A ServerRoot directive via a -C switch.
|
|
<li>The -f switch on the command line.
|
|
<li>The -d switch on the command line.
|
|
<li>A registry entry, created if you did a binary install.
|
|
<li>The server root compiled into the server.
|
|
</ul>
|
|
|
|
<P>
|
|
The server root compiled into the server is usually "/apache".
|
|
invoking apache with the -v switch will display this value
|
|
labeled as HTTPD_ROOT.
|
|
|
|
<P>
|
|
Your current working directory when Apache is started up has no
|
|
effect on Apache's behavior.
|
|
|
|
<P>
|
|
Under windows, when invoked from the start menu or the Service Manager Apache is
|
|
usually passed no arguments. So using the registry entry is the perfered
|
|
technique.
|
|
|
|
<P>
|
|
During a binary installation, a registry key will have
|
|
been installed, for example:
|
|
<PRE>
|
|
HKEY_LOCAL_MACHINE\Software\Apache Group\Apache\1.3.1\ServerRoot
|
|
</PRE>
|
|
|
|
<P>
|
|
This key is compiled into the server and can enable you to test
|
|
new versions without affecting the current version. Of course
|
|
you must take care not to install the new version on top of the
|
|
old version in the file system. You can not run two invocations
|
|
of Apache on Windows simultaneously.
|
|
|
|
<P>
|
|
If you did not do a binary install then Apache will in some
|
|
senarios complain that about the missing registry key. This
|
|
warning can be ignored if it otherwise was able to find it's
|
|
configuration files.
|
|
|
|
<P>
|
|
The value of this key is the "ServerRoot" directory, containing the
|
|
<SAMP>conf</SAMP> directory. When Apache starts it will read the
|
|
<SAMP>httpd.conf</SAMP> file from this directory. If this file
|
|
contains a <SAMP>ServerRoot</SAMP> directive which is different from
|
|
the directory obtained from the registry key above, Apache will forget
|
|
the registry key and use the directory from the configuration file.
|
|
If you copy the Apache directory or configuration files to a new
|
|
location it is vital that you update the <SAMP>ServerRoot</SAMP>
|
|
directory in the <SAMP>httpd.conf</SAMP> file to the new location.
|
|
|
|
<P>
|
|
To run Apache from the command line as a console application, use the
|
|
following command:
|
|
|
|
<PRE>
|
|
apache -s
|
|
</PRE>
|
|
|
|
Apache will execute, and will remain running until it is stopped by pressing
|
|
control-C. (The -s option is not required by Windows 95, but on Windows NT it
|
|
prevents Apache waiting to see if Apache is running as a service.)
|
|
|
|
<P>
|
|
|
|
To install Apache as a Windows NT service as follows:
|
|
|
|
<PRE>
|
|
apache -i
|
|
</PRE>
|
|
|
|
and to remove the Apache service, use
|
|
|
|
<PRE>
|
|
apache -u
|
|
</PRE>
|
|
|
|
|
|
<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.
|
|
Project files (<CODE>.DSP</CODE>) are included for each of the
|
|
portions of Apache. To build Apache from the these projects files
|
|
you will need to build the following projects <i>in this order</i>:
|
|
|
|
<OL>
|
|
<LI><CODE>os\win32\ApacheOS.dsp</CODE>
|
|
<LI><CODE>regex\regex.dsp</CODE>
|
|
<LI><CODE>ap\ap.dsp</CODE>
|
|
<LI><CODE>main\gen_uri_delims.dsp</CODE>
|
|
<LI><CODE>main\gen_test_char.dsp</CODE>
|
|
<LI><CODE>ApacheCore.dsp</CODE>
|
|
<LI><CODE>Apache.dsp</CODE>
|
|
</OL>
|
|
|
|
In addition, the <CODE>src\os\win32</CODE> subdirectory contains
|
|
project files for the optional modules (see below).</P>
|
|
|
|
<P>Once Apache has been compiled, it needs to be installed in its server
|
|
root directory. The default is the <CODE>\Apache</CODE>
|
|
directory, on the current hard drive. </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 INSTDIR=<EM>dir</EM></CODE>
|
|
(for release build)
|
|
<LI><CODE>nmake /f Makefile.nt installd INSTDIR=<EM>dir</EM></CODE>
|
|
(for debug build)
|
|
</UL>
|
|
|
|
The dir argument to INSTDIR gives the installation directory. The can
|
|
be omitted if Apache is to be installed into <SAMP>\Apache</SAMP>.
|
|
|
|
<P>This will install the following:</P>
|
|
|
|
<UL>
|
|
<LI><CODE><EM>dir</EM>\Apache.exe</CODE> - Apache executable
|
|
<LI><CODE><EM>dir</EM>\ApacheCore.dll</CODE> - Main Apache shared library
|
|
<LI><CODE><EM>dir</EM>\modules\ApacheModule*.dll</CODE> - Optional Apache
|
|
modules (7 files)
|
|
<LI><CODE><EM>dir</EM>\conf</CODE> - Empty configuration directory
|
|
<LI><CODE><EM>dir</EM>\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>
|
|
|
|
<P>
|
|
Before running the server you must fill out the conf directory.
|
|
Copy the *.conf-dist-win from the distribution conf directory
|
|
and rename *.conf. Edit the @@ServerRoot@@ entries to your
|
|
actual server root (for example "C:\apache"). Copy over
|
|
the conf/magic and conf/mime.types files as well.
|
|
|
|
<!--#include virtual="footer.html" -->
|
|
</BODY>
|
|
</HTML>
|