summaryrefslogtreecommitdiff
path: root/docs/manual/install.html
diff options
context:
space:
mode:
authorRich Bowen <rbowen@apache.org>2001-09-22 18:53:20 +0000
committerRich Bowen <rbowen@apache.org>2001-09-22 18:53:20 +0000
commit1bf05b9838e25403ff49e68c7ce8e26af90b6bd5 (patch)
tree8d0f0997663688543686f0dea197117a28730949 /docs/manual/install.html
parent64670c57ff3c8a851b66d37a4c9d1fe730e57c48 (diff)
downloadhttpd-1bf05b9838e25403ff49e68c7ce8e26af90b6bd5.tar.gz
Ran w3c tidy on these as 'tidy -mi -asxml' to get xhtml. Please verify,
in particular, the non-english files, to make sure I did not screw anything up. They look fine to me. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@91112 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'docs/manual/install.html')
-rw-r--r--docs/manual/install.html1164
1 files changed, 633 insertions, 531 deletions
diff --git a/docs/manual/install.html b/docs/manual/install.html
index 8d8f4178af..b9103318d1 100644
--- a/docs/manual/install.html
+++ b/docs/manual/install.html
@@ -1,532 +1,634 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
-<HEAD>
-<TITLE>Compiling and Installing Apache</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">Compiling and Installing</H1>
-
-
-<p>This document covers compilation and installation of Apache on Unix
-and Unix-like systems only. For compiling and installation on Windows,
-see <A HREF="platform/windows.html">Using Apache with Microsoft
-Windows</A>. For other platforms, see the <a
-href="platform/">platform</a> documentation.</p>
-
-<p>Apache 2.0's configuration and installation environment has changed
-completely from Apache 1.3. Apache 1.3 used a custom set of scripts
-to achieve easy installation. Apache 2.0 now uses libtool and
-autoconf to create an environment that looks like many other Open
-Source projects.</p>
-
-<ul>
-<li><a href="#overview">Overview for the impatient</a></li>
-<li><a href="#requirements">Requirements</a></li>
-<li><a href="#download">Download</a></li>
-<li><a href="#extract">Extract</a></li>
-<li><a href="#configure">Configuring the source tree</a>
- <ul>
- <li><a href="#environment">Environment Variables</a></li>
- <li><a href="#output">autoconf Output Options</a></li>
- <li><a href="#pathnames">Pathnames</a></li>
- <li><a href="#modules">Modules</a></li>
- <li><a href="#suexec">Suexec</a></li>
- </ul></li>
-<li><a href="#compile">Build</a></li>
-<li><a href="#install">Install</a></li>
-<li><a href="#customize">Customize</a></li>
-<li><a href="#test">Test</a></li>
-</ul>
-
-<hr>
-
-<h3><a name="overview">Overview for the impatient</a></h3>
-
-<table>
-<tr><td><a href="#download">Download</a></td>
-<td><code>$ lynx http://www.apache.org/dist/httpd/httpd-2_0_<em>NN</em>.tar.gz
-</code></td></tr>
-
-<tr><td><a href="#extract">Extract</a></td>
-<td><code>$ gzip -d httpd-2_0_<em>NN</em>.tar.gz<br>
-$ tar xvf httpd-2_0_<em>NN</em>.tar
-</code></td></tr>
-
-<tr><td><a href="#configure">Configure</a></td>
-<td><code>$ ./configure --prefix=<em>PREFIX</em>
-</code></td></tr>
-
-<tr><td><a href="#compile">Compile</a></td>
-<td><code>$ make
-</code></td></tr>
-
-<tr><td><a href="#install">Install</a></td>
-<td><code>$ make install
-</code></td></tr>
-
-<tr><td><a href="#customize">Customize</a></td>
-<td><code>$ vi <em>PREFIX</em>/conf/httpd.conf
-</code></td></tr>
-
-<tr><td><a href="#test">Test</a></td>
-<td><code>$ <em>PREFIX</em>/bin/apachectl start
-</code></td></tr>
-
-</table>
-
-<p><em>NN</em> must be replaced with the current minor version number,
-and <em>PREFIX</em> must be replaced with the filesystem path under
-which the server should be installed. If <em>PREFIX</em> is not
-specified, it defaults to <code>/usr/local/apache2</code>.</p>
-
-<p>Each section of the compilation and installation process is
-described in more detail below, beginning with the requirements
-for compiling and installing Apache HTTPD.</p>
-
-<h3><a name="requirements">Requirements</a></h3>
-
-<p>The following requirements exist for building Apache:</p>
-
-<ul>
-
-<li>Disk Space<br><br> Make sure you have at least 50 MB of temporary
-free disk space available. After installation Apache occupies
-approximately 10 MB of disk space. The actual disk space requirements
-will vary considerably based on your chosen configuration options and
-any third-party modules.<br><br></li>
-
-<li>ANSI-C Compiler and Build System<br><br> Make sure you have an
-ANSI-C compiler installed. The <a
-href="http://www.gnu.org/software/gcc/gcc.html">GNU C compiler
-(GCC)</a> from the <a href="http://www.gnu.org/">Free Software
-Foundation (FSF)</a> is recommended (version 2.7.2 is fine). If you
-don't have GCC then at least make sure your vendor's compiler is ANSI
-compliant. In addition, your <code>PATH</code> must contain basic
-build tools such as <code>make</code>.<br><br></li>
-
-<li>Accurate time keeping<br><br> Elements of the HTTP protocol are
-expressed as the time of day. So, it's time to investigate setting
-some time synchronization facility on your system. Usually the ntpdate
-or xntpd programs are used for this purpose which are based on the
-Network Time Protocol (NTP). See the Usenet newsgroup <a
-href="news:comp.protocols.time.ntp">comp.protocols.time.ntp</a> and
-the <a href="http://www.eecis.udel.edu/~ntp/">NTP homepage</a> for more
-details about NTP software and public time servers.<br><br></li>
-
-<li><a href="http://www.perl.org/">Perl 5</a> [OPTIONAL]<br><br> For
-some of the support scripts like <a href="programs/apxs.html">apxs</a>
-or <a href="programs/dbmmanage.html">dbmmanage</a> (which are written
-in Perl) the Perl 5 interpreter is required (versions 5.003 and 5.004
-are fine). If no such interpreter is found by the `configure' script
-there is no harm. Of course, you still can build and install Apache
-2.0. Only those support scripts cannot be used. If you have multiple
-Perl interpreters installed (perhaps a Perl 4 from the vendor and a
-Perl 5 from your own), then it is recommended to use the --with-perl
-option (see below) to make sure the correct one is selected by
-./configure. <br><br></li>
-
-</ul>
-
-<h3><a name="download">Download</a></h3>
-
-<p>Apache can be downloaded from the <a
-href="http://www.apache.org/dist/httpd/">Apache Software Foundation
-download site</a> or from a <a
-href="http://www.apache.org/dyn/closer.cgi">nearby mirror</a>.</p>
-
-<p>Version numbers that end in <code>alpha</code> indicate early
-pre-test versions which may or may not work. Version numbers ending
-in <code>beta</code> indicate more reliable releases that still
-require further testing or bug fixing. If you wish to download the
-best available production release of the Apache HTTP Server, you
-should choose the latest version with neither <code>alpha</code> nor
-<code>beta</code> in its filename.</p>
-
-<p>After downloading, especially if a mirror site is used, it is
-important to verify that you have a complete and unmodified version of
-the Apache HTTP Server. This can be accomplished by testing the
-downloaded tarball against the PGP signature. This, in turn, is a two
-step procedure. First, you must obtain the <code>KEYS</code> file
-from the <a href="http://www.apache.org/dist/">Apache distribution
-site</a>. (To assure that the <code>KEYS</code> file itself has not
-been modified, it may be a good idea to use a file from a previous
-distribution of Apache or import the keys from a public key server.)
-The keys are imported into your personal key ring using
-one of the following commands (depending on your pgp version):</p>
-<blockquote><code>
-$ pgp < KEYS
-</code></blockquote>
-or
-<blockquote><code>
-$ gpg --import KEYS
-</code></blockquote>
-
-<p>The next step is to test the tarball against the PGP signature,
-which should always be obtained from the <a
-href="http://www.apache.org/dist/httpd">main Apache website</a>. The
-signature file has a filename identical to the source tarball with the
-addition of <code>.asc</code>. Then you can check the distribution
-with one of the following commands (again, depending on your pgp
-version):</p>
-<blockquote><code>
-$ pgp httpd-2_0_<em>NN</em>.tar.gz.asc
-</code></blockquote>
-or
-<blockquote><code>
-$ gpg --verify httpd-2_0_<em>NN</em>.tar.gz.asc
-</code></blockquote
-
-<p>You should receive a message like</p>
-<blockquote><code>
-Good signature from user "Martin Kraemer &lt;martin@apache.org&gt;".
-</code></blockquote>
-<p>Depending on the trust relationships contained
-in your key ring, you may also receive a message saying that
-the relationship between the key and the signer of the key
-cannot be verified. This is not a problem if you trust the
-authenticity of the <code>KEYS</code> file.</p>
-
-<h3><a name="extract">Extract</a></h3>
-
-<p>Extracting the source from the Apache HTTPD tarball is a simple
-matter of uncompressing, and then untarring:</p>
-
-<blockquote><code>
-$ gzip -d httpd-2_0_<em>NN</em>.tar.gz<br>
-$ tar xvf httpd-2_0_<em>NN</em>.tar
-</code></blockquote>
-
-<p>This will create a new directory under the current directory
-containing the source code for the distribution. You should
-<code>cd</code> into that directory before proceeding with
-compiling the server.</p>
-
-<h3><a name="configure">Configuring the source tree</a></h3>
-
-<p>The next step is to configure the Apache source tree for your
-particular platform and personal requirements. This is done using the
-script <code>configure</code> included in the root directory of the
-distribution. (Developers downloading the CVS version of the Apache
-source tree will need to have <code>autoconf</code> and
-<code>libtool</code> installed and will need to run
-<code>buildconf</code> before proceeding with the next steps. This is
-not necessary for official releases.)</p>
-
-<p>To configure the source tree using all the default options, simply
-type <code>./configure</code>. To change the default options,
-<code>configure</code> accepts a variety of variables and command line
-options. Environment variables are generally placed before the
-<code>./configure</code> command, while other options are placed
-after. The most important option here is the location prefix where
-Apache is to be installed later, because Apache has to be configured
-for this location to work correctly. But there are a lot of other
-options available for your pleasure.</p>
-
-<p>For a short impression of what possibilities you have, here is a
-typical example which compiles Apache for the installation tree
-/sw/pkg/apache with a particular compiler and flags plus the two
-additional modules mod_rewrite and mod_speling for later loading
-through the DSO mechanism:</p>
-
-<blockquote><code>
- $ CC="pgcc" CFLAGS="-O2" \<br>
- ./configure --prefix=/sw/pkg/apache \<br>
- --enable-rewrite=shared \<br>
- --enable-speling=shared
-</code></blockquote>
-
-<p>When configure is run it will take several minutes to test for
-the availability of features on your system and build Makefiles
-which will later be used to compile the server.</p>
-
-<p>The easiest way to find all of the configuration flags for Apache
-is to run ./configure --help. What follows is a brief description
-of most of the arguments and environment variables.</p>
-
-<h4><a name="environment">Environment Variables</a></h4>
-
-<p>The autoconf build process uses several environment variables to
-configure the build environment. In general, these variables change
-the method used to build Apache, but not the eventual features of the
-server. These variables can be placed in the environment before
-invoking <code>configure</code>, but it is usually easier to specify
-them on the <code>configure</code> command line as demonstrated
-in the example above.</p>
-
-<dl>
-
-<dt><code>CC=...</code></dt>
-<dd>The name of the C compiler command.</dd>
-
-<dt><code>CPPFLAGS=...</code></dt> <dd>Miscellaneous C preprocessor
-and compiler options.</dd>
-
-<dt><code>CFLAGS=...</code></dt>
-<dd>Debugging and optimization options for the C compiler.</dd>
-
-<dt><code>LDFLAGS=...</code></dt>
-<dd>Miscellaneous options to be passed to the linker.</dd>
-
-<dt><code>LIBS=...</code></dt>
-<dd>Library location information ("-L" and "-l" options)
-to pass to the linker.</dd>
-
-<dt><code>INCLUDES=...</code></dt>
-<dd>Header file search directories ("-I<em>dir</em>").</dd>
-
-<dt><code>TARGET=...</code> [Default: apache]</dt>
-<dd>Name of the executable which will be built.</dd>
-
-<dt><code>NOTEST_CPPFLAGS=...</code></dt>
-<dt><code>NOTEST_CFLAGS=...</code></dt>
-<dt><code>NOTEST_LDFLAGS=...</code></dt>
-<dt><code>NOTEST_LIBS=...</code></dt>
-<dd>These variables share the same function as their non-NOTEST namesakes.
-However, the variables are applied to the build process only after
-autoconf has performed its feature testing. This allows the inclusion of
-flags which will cause problems during feature testing, but must be used
-for the final compilation.</dd>
-
-<dt><code>SHLIB_PATH=...</code></dt>
-<dd>Options which specify shared library paths for the compiler and
-linker.</dd>
-
-</dl>
-
-<h4><a name="output">autoconf Output Options</a></h4>
-
-<dl>
-
-<dt><code>--help</code></dt>
-<dd>Prints the usage message including all available options, but
-does not actually configure anything.</dd>
-
-<dt><code>--quiet</code></dt>
-<dd>Prevents the printing of the usual "checking..." messages.</dd>
-
-<dt><code>--verbose</code></dt>
-<dd>Prints much more information during the configuration process,
-including the names of all the files examined.</dd>
-
-</dl>
-
-<h4><a name="pathnames">Pathnames</a></h4>
-
-<p>There are currently two ways to configure the pathnames under
-which Apache will install its files. First, you can specify
-a directory and have Apache install itself under that directory
-in its default locations.</p>
-
-<dl>
-<dt><code>--prefix=<em>PREFIX</em></code> [Default:
-/usr/local/apache2]</dt>
-<dd>Specifies the directory under which the Apache files will be
-installed.</dd>
-</dl>
-
-<p>It is possible to specify that architecture-dependent files should
-be placed under a different directory.</p>
-
-<dl>
-<dt><code>--exec-prefix=<em>EPREFIX</em></code> [Default:
-<em>PREFIX</em>]</dt>
-<dd>Specifies the directory under which architecture-dependent files
-will be placed.</dd>
-</dl>
-
-<p>The second, and more flexible way to configure the install path
-locations for Apache is using the <code>config.layout</code> file.
-Using this method, it is possible to separately specify the location
-for each type of file within the Apache installation. The
-<code>config.layout</code> file contains several example
-configurations, and you can also create your own custom configuration
-following the examples. The different layouts in this file are
-grouped into <code>&lt;Layout FOO&gt;...&lt;/Layout&gt;</code>
-sections and referred to by name as in <code>FOO</code>.</p>
-
-<dl>
-
-<dt><code>--enable-layout=<em>LAYOUT</em></code></dt>
-<dd>Use the named layout in the <code>config.layout</code> file
-to specify the installation paths.</dd>
-
-</dl>
-
-<p>Presently it is not possible to mix the
-<code>--enable-layout</code> and <code>--prefix</code> options. Nor
-is it possible to individually specify detailed pathnames on the
-<code>configure</code> command line. If you want just a basic
-install, you can simply use the <code>--prefix</code> option on its
-own. If you want to customize your install, you should edit the
-<code>config.layout</code> file and use the
-<code>--enable-layout</code> option.</p>
-
-<h4><a name="modules">Modules</a></h4>
-
-<p>Apache is a modular server. Only the most basic functionality is
-included in the core server. Extended features are available in
-various modules. During the configuration process, you must select
-which modules to compile for use with your server. You can view a <a
-href="mod/index-bytype.html">list of modules</a> included in the
-documentation. Those modules with a <a
-href="mod/module-dict.html#Status">status</a>
-of "Base" are included by default and must be specifically disabled if
-you do not want them. Modules with any other status must be
-specifically enabled if you wish to use them.</p>
-
-<p>There are two ways for a module to be compiled and used with
-Apache. Modules may be <em>statically compiled</em>, which means that
-they are permanently included in the Apache binary. Alternatively, if
-your operating system supports Dynamic Shared Objects (DSOs) and
-autoconf can detect that support, then modules may be <em>dynamically
-compiled</em>. DSO modules are stored separately from the Apache
-binary, and may be included or excluded from the server using the
-run-time configuration directives provided by <a
-href="mod/mod_so.html">mod_so</a>. The mod_so is automatically
-included in the server if any dynamic modules are included in the
-compilation. If you would like to make your server capable of loading
-DSOs without actually compiling any dynamic modules, you can
-explicitly <code>--enable-so</code>.</p>
-
-<dl>
-
-<dt><code>--enable-<em>MODULE</em>[=shared]</code></dt> <dd>Compile
-and include the module <em>MODULE</em>. The identifier
-<em>MODULE</em> is the <a
-href="mod/module-dict.html#ModuleIdentifier"
->Module Identifier</a> from the module documentation without the
-"_module" string. To compile the module as a DSO, add the
-option <code>=shared</code>.</dd>
-
-<dt><code>--disable-<em>MODULE</em></code></dt>
-<dd>Remove the module <em>MODULE</em> which would otherwise be
-compiled and included.</dd>
-
-<dt><code>--enable-modules=<em>MODULE-LIST</em></code> <dd>Compile and
-include the modules listed in the space-separated
-<em>MODULE-LIST</em>.</dd>
-
-<dt><code>--enable-mods-shared=<em>MODULE-LIST</em></code> <dd>Compile
-and include the modules in the space-separated <em>MODULE-LIST</em> as
-dynamically loadable (DSO) modules.</dd>
-
-</dl>
-
-<p>The <em>MODULE-LIST</em> in the <code>--enable-modules</code> and
-<code>--enable-mods-shared</code> options is usually a space-separated list
-of module identifiers. For example, to enable mod_dav and mod_info, you
-can either use</p>
-<blockquote><code>
-./configure --enable-dav --enable-info
-</code></blockquote>
-<p>or, equivalently,</p>
-<blockquote><code>
-./configure --enable-modules="dav info"
-</code></blockquote>
-<p>In addition, the special keywords <code>all</code>
-or <code>most</code> can be used to add all or most of the modules
-in one step. You can then remove any modules that you do not want
-with the <code>--disable-<em>MODULE</em></code> option. For example,
-to include all modules as DSOs with the exception of mod_info, you can use</p>
-<blockquote><code>
-./configure --enable-mods-shared=all --disable-info
-</code></blockquote>
-
-<p>In addition to the standard set of modules, Apache 2.0 also
-includes a choice of <a href="mpm.html">Multi-Processing Modules</a>
-(MPMs). One, and only one MPM must be included in the compilation
-process. The default MPMs for each platform are listed on the <a
-href="mpm.html">MPM documentation page</a>, but can be overridden
-on the <code>configure</code> command line.
-
-<dl>
-
-<dt><code>--with-mpm=<em>NAME</em></code></dt>
-<dd>Choose the mpm <em>NAME</em>.
-
-</dl>
-
-<h4><a name="suexec">Suexec</a></h4>
-
-<p>Apache includes a support program called <a
-href="suexec.html">suexec</a> which can be used to isolate user CGI
-programs. However, if suexec is improperly configured, it can cause
-serious security problems. Therefore, you should carefully read and
-consider the <a href="suexec.html">suexec documentation</a> before
-implementing this feature.</p>
-
-
-<h3><a name="compile">Build</a></h3>
-
-<p>Now you can build the various parts which form the Apache package
-by simply running the command:</p>
-
-<blockquote><code>
- $ make
-</code></blockquote>
-
-<p>Please be patient here, since a base configuration takes
-approximately 3 minutes to compile under a Pentium III/Linux 2.2
-system, but this will vary widely depending on your hardware and the
-number of modules which you have enabled.</p>
-
-
-<h3><a name="install">Install</a></h3>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Compiling and Installing Apache</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">Compiling and Installing</h1>
+
+ <p>This document covers compilation and installation of Apache
+ on Unix and Unix-like systems only. For compiling and
+ installation on Windows, see <a
+ href="platform/windows.html">Using Apache with Microsoft
+ Windows</a>. For other platforms, see the <a
+ href="platform/">platform</a> documentation.</p>
+
+ <p>Apache 2.0's configuration and installation environment has
+ changed completely from Apache 1.3. Apache 1.3 used a custom
+ set of scripts to achieve easy installation. Apache 2.0 now
+ uses libtool and autoconf to create an environment that looks
+ like many other Open Source projects.</p>
+
+ <ul>
+ <li><a href="#overview">Overview for the impatient</a></li>
+
+ <li><a href="#requirements">Requirements</a></li>
+
+ <li><a href="#download">Download</a></li>
+
+ <li><a href="#extract">Extract</a></li>
+
+ <li>
+ <a href="#configure">Configuring the source tree</a>
+
+ <ul>
+ <li><a href="#environment">Environment Variables</a></li>
+
+ <li><a href="#output">autoconf Output Options</a></li>
+
+ <li><a href="#pathnames">Pathnames</a></li>
+
+ <li><a href="#modules">Modules</a></li>
+
+ <li><a href="#suexec">Suexec</a></li>
+ </ul>
+ </li>
+
+ <li><a href="#compile">Build</a></li>
+
+ <li><a href="#install">Install</a></li>
+
+ <li><a href="#customize">Customize</a></li>
+
+ <li><a href="#test">Test</a></li>
+ </ul>
+ <hr />
+
+ <h3><a id="overview" name="overview">Overview for the
+ impatient</a></h3>
+
+ <table>
+ <tr>
+ <td><a href="#download">Download</a></td>
+
+ <td><code>$ lynx
+ http://www.apache.org/dist/httpd/httpd-2_0_<em>NN</em>.tar.gz</code>
+ </td>
+ </tr>
+
+ <tr>
+ <td><a href="#extract">Extract</a></td>
+
+ <td><code>$ gzip -d httpd-2_0_<em>NN</em>.tar.gz<br />
+ $ tar xvf httpd-2_0_<em>NN</em>.tar</code> </td>
+ </tr>
+
+ <tr>
+ <td><a href="#configure">Configure</a></td>
+
+ <td><code>$ ./configure --prefix=<em>PREFIX</em></code>
+ </td>
+ </tr>
+
+ <tr>
+ <td><a href="#compile">Compile</a></td>
+
+ <td><code>$ make</code> </td>
+ </tr>
+
+ <tr>
+ <td><a href="#install">Install</a></td>
+
+ <td><code>$ make install</code> </td>
+ </tr>
+
+ <tr>
+ <td><a href="#customize">Customize</a></td>
+
+ <td><code>$ vi <em>PREFIX</em>/conf/httpd.conf</code> </td>
+ </tr>
+
+ <tr>
+ <td><a href="#test">Test</a></td>
+
+ <td><code>$ <em>PREFIX</em>/bin/apachectl start</code>
+ </td>
+ </tr>
+ </table>
+
+ <p><em>NN</em> must be replaced with the current minor version
+ number, and <em>PREFIX</em> must be replaced with the
+ filesystem path under which the server should be installed. If
+ <em>PREFIX</em> is not specified, it defaults to
+ <code>/usr/local/apache2</code>.</p>
+
+ <p>Each section of the compilation and installation process is
+ described in more detail below, beginning with the requirements
+ for compiling and installing Apache HTTPD.</p>
+
+ <h3><a id="requirements"
+ name="requirements">Requirements</a></h3>
+
+ <p>The following requirements exist for building Apache:</p>
+
+ <ul>
+ <li>Disk Space<br />
+ <br />
+ Make sure you have at least 50 MB of temporary free disk
+ space available. After installation Apache occupies
+ approximately 10 MB of disk space. The actual disk space
+ requirements will vary considerably based on your chosen
+ configuration options and any third-party modules.<br />
+ <br />
+ </li>
+
+ <li>ANSI-C Compiler and Build System<br />
+ <br />
+ Make sure you have an ANSI-C compiler installed. The <a
+ href="http://www.gnu.org/software/gcc/gcc.html">GNU C
+ compiler (GCC)</a> from the <a
+ href="http://www.gnu.org/">Free Software Foundation (FSF)</a>
+ is recommended (version 2.7.2 is fine). If you don't have GCC
+ then at least make sure your vendor's compiler is ANSI
+ compliant. In addition, your <code>PATH</code> must contain
+ basic build tools such as <code>make</code>.<br />
+ <br />
+ </li>
+
+ <li>Accurate time keeping<br />
+ <br />
+ Elements of the HTTP protocol are expressed as the time of
+ day. So, it's time to investigate setting some time
+ synchronization facility on your system. Usually the ntpdate
+ or xntpd programs are used for this purpose which are based
+ on the Network Time Protocol (NTP). See the Usenet newsgroup
+ <a
+ href="news:comp.protocols.time.ntp">comp.protocols.time.ntp</a>
+ and the <a href="http://www.eecis.udel.edu/~ntp/">NTP
+ homepage</a> for more details about NTP software and public
+ time servers.<br />
+ <br />
+ </li>
+
+ <li><a href="http://www.perl.org/">Perl 5</a>
+ [OPTIONAL]<br />
+ <br />
+ For some of the support scripts like <a
+ href="programs/apxs.html">apxs</a> or <a
+ href="programs/dbmmanage.html">dbmmanage</a> (which are
+ written in Perl) the Perl 5 interpreter is required (versions
+ 5.003 and 5.004 are fine). If no such interpreter is found by
+ the `configure' script there is no harm. Of course, you still
+ can build and install Apache 2.0. Only those support scripts
+ cannot be used. If you have multiple Perl interpreters
+ installed (perhaps a Perl 4 from the vendor and a Perl 5 from
+ your own), then it is recommended to use the --with-perl
+ option (see below) to make sure the correct one is selected
+ by ./configure.<br />
+ <br />
+ </li>
+ </ul>
+
+ <h3><a id="download" name="download">Download</a></h3>
+
+ <p>Apache can be downloaded from the <a
+ href="http://www.apache.org/dist/httpd/">Apache Software
+ Foundation download site</a> or from a <a
+ href="http://www.apache.org/dyn/closer.cgi">nearby
+ mirror</a>.</p>
+
+ <p>Version numbers that end in <code>alpha</code> indicate
+ early pre-test versions which may or may not work. Version
+ numbers ending in <code>beta</code> indicate more reliable
+ releases that still require further testing or bug fixing. If
+ you wish to download the best available production release of
+ the Apache HTTP Server, you should choose the latest version
+ with neither <code>alpha</code> nor <code>beta</code> in its
+ filename.</p>
+
+ <p>After downloading, especially if a mirror site is used, it
+ is important to verify that you have a complete and unmodified
+ version of the Apache HTTP Server. This can be accomplished by
+ testing the downloaded tarball against the PGP signature. This,
+ in turn, is a two step procedure. First, you must obtain the
+ <code>KEYS</code> file from the <a
+ href="http://www.apache.org/dist/">Apache distribution
+ site</a>. (To assure that the <code>KEYS</code> file itself has
+ not been modified, it may be a good idea to use a file from a
+ previous distribution of Apache or import the keys from a
+ public key server.) The keys are imported into your personal
+ key ring using one of the following commands (depending on your
+ pgp version):</p>
+
+ <blockquote>
+ <code>$ pgp &lt; KEYS</code>
+ </blockquote>
+ or
+
+ <blockquote>
+ <code>$ gpg --import KEYS</code>
+ </blockquote>
+
+ <p>The next step is to test the tarball against the PGP
+ signature, which should always be obtained from the <a
+ href="http://www.apache.org/dist/httpd">main Apache
+ website</a>. The signature file has a filename identical to the
+ source tarball with the addition of <code>.asc</code>. Then you
+ can check the distribution with one of the following commands
+ (again, depending on your pgp version):</p>
+
+ <blockquote>
+ <code>$ pgp httpd-2_0_<em>NN</em>.tar.gz.asc</code>
+ </blockquote>
+ or
+
+ <blockquote>
+ <code>$ gpg --verify httpd-2_0_<em>NN</em>.tar.gz.asc</code>
+ </blockquote>
+ You should receive a message like<br />
+ <br />
-<p>Now its time to install the package under the configured
-installation <em>PREFIX</em> (see <code>--prefix</code> option above)
-by running:</h3> <blockquote><code> $ make install
-</code></blockquote>
-
-<p>If you are upgrading, the installation will not overwrite
-your configuration files or documents.</p>
-
-
-<h3><a name="customize">Customize</a></h3>
-
-<p>Next, you can customize your Apache HTTP server by editing the <a
-href="configuring.html">configuration files</a> under
-<em>PREFIX</em>/conf/.</p>
-
-<blockquote><code>
-$ vi <em>PREFIX</em>/conf/httpd.conf
-</code></blockquote>
-
-<p>Have a look at the Apache manual under <a
-href="./">docs/manual/</a> or <a
-href="http://httpd.apache.org/docs/">http://httpd.apache.org/docs/</a>
-for a complete reference of available <a
-href="mod/directives.html">configuration directives</a>.</p>
-
-<h3><a name="test">Test</a></h3>
-
-<p>Now you can <a href="invoking.html">start</a> your Apache HTTP
-server by immediately running:</p>
-
-<blockquote><code>
- $ <em>PREFIX</em>/bin/apachectl start
-</code></blockquote>
-
-<p>and then you should be able to request your first document via URL
-http://localhost/. The web page you see is located under the <a
-href="mod/core.html#documentroot">DocumentRoot</a> which will usually
-be <code><em>PREFIX</em>/htdocs/</code>. Then <a
-href="stopping.html">stop</a> the server again by running:</p>
-
-<blockquote><code> $ <em>PREFIX</em>/bin/apachectl stop
-</code></blockquote>
-
-
-<!--#include virtual="footer.html" -->
-</BODY>
-</HTML>
+
+ <blockquote>
+ <code>Good signature from user "Martin Kraemer
+ &lt;martin@apache.org&gt;".</code>
+ </blockquote>
+
+ <p>Depending on the trust relationships contained in your key
+ ring, you may also receive a message saying that the
+ relationship between the key and the signer of the key cannot
+ be verified. This is not a problem if you trust the
+ authenticity of the <code>KEYS</code> file.</p>
+
+ <h3><a id="extract" name="extract">Extract</a></h3>
+
+ <p>Extracting the source from the Apache HTTPD tarball is a
+ simple matter of uncompressing, and then untarring:</p>
+
+ <blockquote>
+ <code>$ gzip -d httpd-2_0_<em>NN</em>.tar.gz<br />
+ $ tar xvf httpd-2_0_<em>NN</em>.tar</code>
+ </blockquote>
+
+ <p>This will create a new directory under the current directory
+ containing the source code for the distribution. You should
+ <code>cd</code> into that directory before proceeding with
+ compiling the server.</p>
+
+ <h3><a id="configure" name="configure">Configuring the source
+ tree</a></h3>
+
+ <p>The next step is to configure the Apache source tree for
+ your particular platform and personal requirements. This is
+ done using the script <code>configure</code> included in the
+ root directory of the distribution. (Developers downloading the
+ CVS version of the Apache source tree will need to have
+ <code>autoconf</code> and <code>libtool</code> installed and
+ will need to run <code>buildconf</code> before proceeding with
+ the next steps. This is not necessary for official
+ releases.)</p>
+
+ <p>To configure the source tree using all the default options,
+ simply type <code>./configure</code>. To change the default
+ options, <code>configure</code> accepts a variety of variables
+ and command line options. Environment variables are generally
+ placed before the <code>./configure</code> command, while other
+ options are placed after. The most important option here is the
+ location prefix where Apache is to be installed later, because
+ Apache has to be configured for this location to work
+ correctly. But there are a lot of other options available for
+ your pleasure.</p>
+
+ <p>For a short impression of what possibilities you have, here
+ is a typical example which compiles Apache for the installation
+ tree /sw/pkg/apache with a particular compiler and flags plus
+ the two additional modules mod_rewrite and mod_speling for
+ later loading through the DSO mechanism:</p>
+
+ <blockquote>
+ <code>$ CC="pgcc" CFLAGS="-O2" \<br />
+ ./configure --prefix=/sw/pkg/apache \<br />
+ --enable-rewrite=shared \<br />
+ --enable-speling=shared</code>
+ </blockquote>
+
+ <p>When configure is run it will take several minutes to test
+ for the availability of features on your system and build
+ Makefiles which will later be used to compile the server.</p>
+
+ <p>The easiest way to find all of the configuration flags for
+ Apache is to run ./configure --help. What follows is a brief
+ description of most of the arguments and environment
+ variables.</p>
+
+ <h4><a id="environment" name="environment">Environment
+ Variables</a></h4>
+
+ <p>The autoconf build process uses several environment
+ variables to configure the build environment. In general, these
+ variables change the method used to build Apache, but not the
+ eventual features of the server. These variables can be placed
+ in the environment before invoking <code>configure</code>, but
+ it is usually easier to specify them on the
+ <code>configure</code> command line as demonstrated in the
+ example above.</p>
+
+ <dl>
+ <dt><code>CC=...</code></dt>
+
+ <dd>The name of the C compiler command.</dd>
+
+ <dt><code>CPPFLAGS=...</code></dt>
+
+ <dd>Miscellaneous C preprocessor and compiler options.</dd>
+
+ <dt><code>CFLAGS=...</code></dt>
+
+ <dd>Debugging and optimization options for the C
+ compiler.</dd>
+
+ <dt><code>LDFLAGS=...</code></dt>
+
+ <dd>Miscellaneous options to be passed to the linker.</dd>
+
+ <dt><code>LIBS=...</code></dt>
+
+ <dd>Library location information ("-L" and "-l" options) to
+ pass to the linker.</dd>
+
+ <dt><code>INCLUDES=...</code></dt>
+
+ <dd>Header file search directories ("-I<em>dir</em>").</dd>
+
+ <dt><code>TARGET=...</code> [Default: apache]</dt>
+
+ <dd>Name of the executable which will be built.</dd>
+
+ <dt><code>NOTEST_CPPFLAGS=...</code></dt>
+
+ <dt><code>NOTEST_CFLAGS=...</code></dt>
+
+ <dt><code>NOTEST_LDFLAGS=...</code></dt>
+
+ <dt><code>NOTEST_LIBS=...</code></dt>
+
+ <dd>These variables share the same function as their
+ non-NOTEST namesakes. However, the variables are applied to
+ the build process only after autoconf has performed its
+ feature testing. This allows the inclusion of flags which
+ will cause problems during feature testing, but must be used
+ for the final compilation.</dd>
+
+ <dt><code>SHLIB_PATH=...</code></dt>
+
+ <dd>Options which specify shared library paths for the
+ compiler and linker.</dd>
+ </dl>
+
+ <h4><a id="output" name="output">autoconf Output
+ Options</a></h4>
+
+ <dl>
+ <dt><code>--help</code></dt>
+
+ <dd>Prints the usage message including all available options,
+ but does not actually configure anything.</dd>
+
+ <dt><code>--quiet</code></dt>
+
+ <dd>Prevents the printing of the usual "checking..."
+ messages.</dd>
+
+ <dt><code>--verbose</code></dt>
+
+ <dd>Prints much more information during the configuration
+ process, including the names of all the files examined.</dd>
+ </dl>
+
+ <h4><a id="pathnames" name="pathnames">Pathnames</a></h4>
+
+ <p>There are currently two ways to configure the pathnames
+ under which Apache will install its files. First, you can
+ specify a directory and have Apache install itself under that
+ directory in its default locations.</p>
+
+ <dl>
+ <dt><code>--prefix=<em>PREFIX</em></code> [Default:
+ /usr/local/apache2]</dt>
+
+ <dd>Specifies the directory under which the Apache files will
+ be installed.</dd>
+ </dl>
+
+ <p>It is possible to specify that architecture-dependent files
+ should be placed under a different directory.</p>
+
+ <dl>
+ <dt><code>--exec-prefix=<em>EPREFIX</em></code> [Default:
+ <em>PREFIX</em>]</dt>
+
+ <dd>Specifies the directory under which
+ architecture-dependent files will be placed.</dd>
+ </dl>
+
+ <p>The second, and more flexible way to configure the install
+ path locations for Apache is using the
+ <code>config.layout</code> file. Using this method, it is
+ possible to separately specify the location for each type of
+ file within the Apache installation. The
+ <code>config.layout</code> file contains several example
+ configurations, and you can also create your own custom
+ configuration following the examples. The different layouts in
+ this file are grouped into <code>&lt;Layout
+ FOO&gt;...&lt;/Layout&gt;</code> sections and referred to by
+ name as in <code>FOO</code>.</p>
+
+ <dl>
+ <dt><code>--enable-layout=<em>LAYOUT</em></code></dt>
+
+ <dd>Use the named layout in the <code>config.layout</code>
+ file to specify the installation paths.</dd>
+ </dl>
+
+ <p>Presently it is not possible to mix the
+ <code>--enable-layout</code> and <code>--prefix</code> options.
+ Nor is it possible to individually specify detailed pathnames
+ on the <code>configure</code> command line. If you want just a
+ basic install, you can simply use the <code>--prefix</code>
+ option on its own. If you want to customize your install, you
+ should edit the <code>config.layout</code> file and use the
+ <code>--enable-layout</code> option.</p>
+
+ <h4><a id="modules" name="modules">Modules</a></h4>
+
+ <p>Apache is a modular server. Only the most basic
+ functionality is included in the core server. Extended features
+ are available in various modules. During the configuration
+ process, you must select which modules to compile for use with
+ your server. You can view a <a
+ href="mod/index-bytype.html">list of modules</a> included in
+ the documentation. Those modules with a <a
+ href="mod/module-dict.html#Status">status</a> of "Base" are
+ included by default and must be specifically disabled if you do
+ not want them. Modules with any other status must be
+ specifically enabled if you wish to use them.</p>
+
+ <p>There are two ways for a module to be compiled and used with
+ Apache. Modules may be <em>statically compiled</em>, which
+ means that they are permanently included in the Apache binary.
+ Alternatively, if your operating system supports Dynamic Shared
+ Objects (DSOs) and autoconf can detect that support, then
+ modules may be <em>dynamically compiled</em>. DSO modules are
+ stored separately from the Apache binary, and may be included
+ or excluded from the server using the run-time configuration
+ directives provided by <a href="mod/mod_so.html">mod_so</a>.
+ The mod_so is automatically included in the server if any
+ dynamic modules are included in the compilation. If you would
+ like to make your server capable of loading DSOs without
+ actually compiling any dynamic modules, you can explicitly
+ <code>--enable-so</code>.</p>
+
+ <dl>
+ <dt><code>--enable-<em>MODULE</em>[=shared]</code></dt>
+
+ <dd>Compile and include the module <em>MODULE</em>. The
+ identifier <em>MODULE</em> is the <a
+ href="mod/module-dict.html#ModuleIdentifier">Module
+ Identifier</a> from the module documentation without the
+ "_module" string. To compile the module as a DSO, add the
+ option <code>=shared</code>.</dd>
+
+ <dt><code>--disable-<em>MODULE</em></code></dt>
+
+ <dd>Remove the module <em>MODULE</em> which would otherwise
+ be compiled and included.</dd>
+
+ <dt><code>--enable-modules=<em>MODULE-LIST</em></code></dt>
+
+ <dd>Compile and include the modules listed in the
+ space-separated <em>MODULE-LIST</em>.</dd>
+
+ <dt>
+ <code>--enable-mods-shared=<em>MODULE-LIST</em></code></dt>
+
+ <dd>Compile and include the modules in the space-separated
+ <em>MODULE-LIST</em> as dynamically loadable (DSO)
+ modules.</dd>
+ </dl>
+
+ <p>The <em>MODULE-LIST</em> in the
+ <code>--enable-modules</code> and
+ <code>--enable-mods-shared</code> options is usually a
+ space-separated list of module identifiers. For example, to
+ enable mod_dav and mod_info, you can either use</p>
+
+ <blockquote>
+ <code>./configure --enable-dav --enable-info</code>
+ </blockquote>
+
+ <p>or, equivalently,</p>
+
+ <blockquote>
+ <code>./configure --enable-modules="dav info"</code>
+ </blockquote>
+
+ <p>In addition, the special keywords <code>all</code> or
+ <code>most</code> can be used to add all or most of the modules
+ in one step. You can then remove any modules that you do not
+ want with the <code>--disable-<em>MODULE</em></code> option.
+ For example, to include all modules as DSOs with the exception
+ of mod_info, you can use</p>
+
+ <blockquote>
+ <code>./configure --enable-mods-shared=all
+ --disable-info</code>
+ </blockquote>
+
+ <p>In addition to the standard set of modules, Apache 2.0 also
+ includes a choice of <a href="mpm.html">Multi-Processing
+ Modules</a> (MPMs). One, and only one MPM must be included in
+ the compilation process. The default MPMs for each platform are
+ listed on the <a href="mpm.html">MPM documentation page</a>,
+ but can be overridden on the <code>configure</code> command
+ line.</p>
+
+ <dl>
+ <dt><code>--with-mpm=<em>NAME</em></code></dt>
+
+ <dd>Choose the mpm <em>NAME</em>.</dd>
+ </dl>
+
+ <h4><a id="suexec" name="suexec">Suexec</a></h4>
+
+ <p>Apache includes a support program called <a
+ href="suexec.html">suexec</a> which can be used to isolate user
+ CGI programs. However, if suexec is improperly configured, it
+ can cause serious security problems. Therefore, you should
+ carefully read and consider the <a href="suexec.html">suexec
+ documentation</a> before implementing this feature.</p>
+
+ <h3><a id="compile" name="compile">Build</a></h3>
+
+ <p>Now you can build the various parts which form the Apache
+ package by simply running the command:</p>
+
+ <blockquote>
+ <code>$ make</code>
+ </blockquote>
+
+ <p>Please be patient here, since a base configuration takes
+ approximately 3 minutes to compile under a Pentium III/Linux
+ 2.2 system, but this will vary widely depending on your
+ hardware and the number of modules which you have enabled.</p>
+
+ <h3><a id="install" name="install">Install</a></h3>
+
+ <p>Now its time to install the package under the configured
+ installation <em>PREFIX</em> (see <code>--prefix</code> option
+ above) by running:</p>
+
+ <blockquote>
+ <code>$ make install</code>
+ </blockquote>
+
+ <p>If you are upgrading, the installation will not overwrite
+ your configuration files or documents.</p>
+
+ <h3><a id="customize" name="customize">Customize</a></h3>
+
+ <p>Next, you can customize your Apache HTTP server by editing
+ the <a href="configuring.html">configuration files</a> under
+ <em>PREFIX</em>/conf/.</p>
+
+ <blockquote>
+ <code>$ vi <em>PREFIX</em>/conf/httpd.conf</code>
+ </blockquote>
+
+ <p>Have a look at the Apache manual under <a
+ href="./">docs/manual/</a> or <a
+ href="http://httpd.apache.org/docs/">http://httpd.apache.org/docs/</a>
+ for a complete reference of available <a
+ href="mod/directives.html">configuration directives</a>.</p>
+
+ <h3><a id="test" name="test">Test</a></h3>
+
+ <p>Now you can <a href="invoking.html">start</a> your Apache
+ HTTP server by immediately running:</p>
+
+ <blockquote>
+ <code>$ <em>PREFIX</em>/bin/apachectl start</code>
+ </blockquote>
+
+ <p>and then you should be able to request your first document
+ via URL http://localhost/. The web page you see is located
+ under the <a href="mod/core.html#documentroot">DocumentRoot</a>
+ which will usually be <code><em>PREFIX</em>/htdocs/</code>.
+ Then <a href="stopping.html">stop</a> the server again by
+ running:</p>
+
+ <blockquote>
+ <code>$ <em>PREFIX</em>/bin/apachectl stop</code>
+ </blockquote>
+ <!--#include virtual="footer.html" -->
+ </body>
+</html>
+