You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by sl...@apache.org on 2002/08/15 16:49:54 UTC

cvs commit: httpd-2.0/docs/manual install.xml install.html.en

slive       2002/08/15 07:49:54

  Modified:    docs/manual install.html.en
  Added:       docs/manual install.xml
  Log:
  New XML.
  
  Revision  Changes    Path
  1.42      +97 -192   httpd-2.0/docs/manual/install.html.en
  
  Index: install.html.en
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/docs/manual/install.html.en,v
  retrieving revision 1.41
  retrieving revision 1.42
  diff -u -d -b -u -r1.41 -r1.42
  --- install.html.en	25 Jul 2002 21:46:38 -0000	1.41
  +++ install.html.en	15 Aug 2002 14:49:54 -0000	1.42
  @@ -1,26 +1,13 @@
  -<!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>
  +<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><!--
  +        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  +              This file is generated from xml source: DO NOT EDIT
  +        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  +      --><title>Compiling and Installing - Apache HTTP Server</title><link href="./style/manual.css" type="text/css" rel="stylesheet"></head><body><blockquote><div align="center"><img src="./images/sub.gif" alt="[APACHE DOCUMENTATION]"><h3>Apache HTTP Server Version 2.0</h3></div><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>
  +    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
  @@ -28,43 +15,9 @@
       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>
  +<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><h2><a name="overview">Overview for the
  +    impatient</a></h2>
   
       <table>
         <tr>
  @@ -78,7 +31,7 @@
         <tr>
           <td><a href="#extract">Extract</a></td>
   
  -        <td><code>$ gzip -d httpd-2_0_<em>NN</em>.tar.gz<br />
  +        <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>
   
  @@ -124,57 +77,50 @@
       <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>
  +<h2><a name="requirements">Requirements</a></h2>
   
       <p>The following requirements exist for building Apache:</p>
   
       <ul>
  -      <li>Disk Space<br />
  -      <br />
  +      <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 />
  +      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>
  +      <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 />
  +      basic build tools such as <code>make</code>.<br>
  +      <br>
         </li>
   
  -      <li>Accurate time keeping<br />
  -      <br />
  +      <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>
  +      <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 />
  +      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
  +      [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
  @@ -183,17 +129,14 @@
         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 />
  +      by ./configure.<br>
  +      <br>
         </li>
       </ul>
  +<h2><a name="download">Download</a></h2>
   
  -    <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/httpd/">nearby
  +    <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/httpd/">nearby
       mirror</a>.</p>
   
       <p>Version numbers that end in <code>alpha</code> indicate
  @@ -210,8 +153,7 @@
       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/httpd/">Apache distribution
  +    <code>KEYS</code> file from the <a href="http://www.apache.org/dist/httpd/">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
  @@ -219,39 +161,29 @@
       key ring using one of the following commands (depending on your
       pgp version):</p>
   
  -    <blockquote>
  -      <code>$ pgp &lt; KEYS</code>
  -    </blockquote>
  -    or 
  +<blockquote><table cellpadding="10"><tr><td bgcolor="#eeeeee"><code>$ pgp &lt; KEYS</code></td></tr></table></blockquote>
   
  -    <blockquote>
  -      <code>$ gpg --import KEYS</code>
  -    </blockquote>
  +    <p>or </p>
  +
  +<blockquote><table cellpadding="10"><tr><td bgcolor="#eeeeee"><code>$ gpg --import KEYS</code></td></tr></table></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
  +    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><table cellpadding="10"><tr><td bgcolor="#eeeeee"><code>$ pgp httpd-2_0_<em>NN</em>.tar.gz.asc</code></td></tr></table></blockquote>
   
  -    <blockquote>
  -      <code>$ gpg --verify httpd-2_0_<em>NN</em>.tar.gz.asc</code>
  -    </blockquote>
  -    You should receive a message like<br />
  -     <br />
  +    <p>or</p>
        
  +<blockquote><table cellpadding="10"><tr><td bgcolor="#eeeeee"><code>$ gpg --verify httpd-2_0_<em>NN</em>.tar.gz.asc</code></td></tr></table></blockquote>
   
  -    <blockquote>
  -      <code>Good signature from user "Martin Kraemer
  -      &lt;martin@apache.org&gt;".</code>
  -    </blockquote>
  +    <p>You should receive a message like</p>
  +
  +<blockquote><table cellpadding="10"><tr><td bgcolor="#eeeeee"><code>Good signature from user "Martin Kraemer
  +      &lt;martin@apache.org&gt;".</code></td></tr></table></blockquote>
   
       <p>Depending on the trust relationships contained in your key
       ring, you may also receive a message saying that the
  @@ -259,23 +191,21 @@
       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>
  +<h2><a name="extract">Extract</a></h2>
   
       <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>
  +<blockquote><table cellpadding="10"><tr><td bgcolor="#eeeeee"><code>
  +      $ gzip -d httpd-2_0_<em>NN</em>.tar.gz<br>
  +       $ tar xvf httpd-2_0_<em>NN</em>.tar
  +</code></td></tr></table></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>
  +<h2><a name="configure">Configuring the source tree</a></h2>
   
       <p>The next step is to configure the Apache source tree for
       your particular platform and personal requirements. This is
  @@ -304,12 +234,12 @@
       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>
  +<blockquote><table cellpadding="10"><tr><td bgcolor="#eeeeee"><code>
  +      $ CC="pgcc" CFLAGS="-O2" \<br>
  +       ./configure --prefix=/sw/pkg/apache \<br>
  +       --enable-rewrite=shared \<br>
  +       --enable-speling=shared
  +</code></td></tr></table></blockquote>
   
       <p>When configure is run it will take several minutes to test
       for the availability of features on your system and build
  @@ -320,8 +250,7 @@
       description of most of the arguments and environment
       variables.</p>
   
  -    <h4><a id="environment" name="environment">Environment
  -    Variables</a></h4>
  +<h3><a name="environment">Environment Variables</a></h3>
   
       <p>The autoconf build process uses several environment
       variables to configure the build environment. In general, these
  @@ -384,8 +313,8 @@
         compiler and linker.</dd>
       </dl>
   
  -    <h4><a id="output" name="output">autoconf Output
  -    Options</a></h4>
  +
  +<h3><a name="output">autoconf Output Options</a></h3>
   
       <dl>
         <dt><code>--help</code></dt>
  @@ -404,7 +333,8 @@
         process, including the names of all the files examined.</dd>
       </dl>
   
  -    <h4><a id="pathnames" name="pathnames">Pathnames</a></h4>
  +
  +<h3><a name="pathnames">Pathnames</a></h3>
   
       <p>There are currently two ways to configure the pathnames
       under which Apache will install its files. First, you can
  @@ -458,16 +388,15 @@
       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>
  +
  +<h3><a name="modules">Modules</a></h3>
   
       <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.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
  +    your server. You can view a <a href="mod/index.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>
  @@ -480,7 +409,7 @@
       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>.
  +    directives provided by <code><a href="./mod/mod_so.html">mod_so</a></code>.
       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
  @@ -491,8 +420,7 @@
         <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 <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>
  @@ -521,15 +449,11 @@
       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>
  +<blockquote><table cellpadding="10"><tr><td bgcolor="#eeeeee"><code>./configure --enable-dav --enable-info</code></td></tr></table></blockquote>
   
       <p>or, equivalently,</p>
   
  -    <blockquote>
  -      <code>./configure --enable-modules="dav info"</code>
  -    </blockquote>
  +<blockquote><table cellpadding="10"><tr><td bgcolor="#eeeeee"><code>./configure --enable-modules="dav info"</code></td></tr></table></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
  @@ -538,10 +462,10 @@
       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>
  +<blockquote><table cellpadding="10"><tr><td bgcolor="#eeeeee"><code>
  +      ./configure --enable-mods-shared=all
  +      --disable-info
  +</code></td></tr></table></blockquote>
   
       <p>In addition to the standard set of modules, Apache 2.0 also
       includes a choice of <a href="mpm.html">Multi-Processing
  @@ -557,78 +481,59 @@
         <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
  +<h3><a name="suexec">Suexec</a></h3>
  +
  +    <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>
  +<h2><a name="compile">Build</a></h2>
   
       <p>Now you can build the various parts which form the Apache
       package by simply running the command:</p>
   
  -    <blockquote>
  -      <code>$ make</code>
  -    </blockquote>
  +<blockquote><table cellpadding="10"><tr><td bgcolor="#eeeeee"><code>$ make</code></td></tr></table></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>
  +<h2><a name="install">Install</a></h2>
   
       <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>
  +<blockquote><table cellpadding="10"><tr><td bgcolor="#eeeeee"><code>$ make install</code></td></tr></table></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>
  +<h2><a name="customize">Customize</a></h2>
   
       <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>
  +<blockquote><table cellpadding="10"><tr><td bgcolor="#eeeeee"><code>$ vi <em>PREFIX</em>/conf/httpd.conf</code></td></tr></table></blockquote>
   
  -    <h3><a id="test" name="test">Test</a></h3>
  +    <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-2.0/</a>
  +    for a complete reference of available <a href="mod/directives.html">configuration directives</a>.</p>
  +<h2><a name="test">Test</a></h2>
   
       <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>
  +<blockquote><table cellpadding="10"><tr><td bgcolor="#eeeeee"><code>$ <em>PREFIX</em>/bin/apachectl start</code></td></tr></table></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>
  +    under the <a href="./mod/core.html#documentroot" class="directive"><code class="directive">DocumentRoot</code></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><table cellpadding="10"><tr><td bgcolor="#eeeeee"><code>$ <em>PREFIX</em>/bin/apachectl stop</code></td></tr></table></blockquote>
  +<hr></blockquote><h3 align="center">Apache HTTP Server Version 2.0</h3><a href="./"><img src="./images/index.gif" alt="Index"></a><a href="./"><img src="./images/home.gif" alt="Home"></a></body></html>
  \ No newline at end of file
  
  
  
  1.1                  httpd-2.0/docs/manual/install.xml
  
  Index: install.xml
  ===================================================================
  <?xml version='1.0' encoding='UTF-8' ?>
  <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
  <?xml-stylesheet type="text/xsl" href="./style/manual.en.xsl"?>
  <manualpage>
  <relativepath href="."/>
  
    <title>Compiling and Installing</title>
  
  <summary>
  
      <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>
  
  </summary>
  
  <section id="overview"><title>Overview for the
      impatient</title>
  
      <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>
  </section>
  
  <section id="requirements"><title>Requirements</title>
  
      <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>
  </section>
  
  <section id="download"><title>Download</title>
  
      <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/httpd/">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/httpd/">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>
  
  <example>$ pgp &lt; KEYS</example>
  
      <p>or </p>
  
  <example>$ gpg --import KEYS</example>
  
      <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>
  
  <example>$ pgp httpd-2_0_<em>NN</em>.tar.gz.asc</example>
      
      <p>or</p>
  
  <example>$ gpg --verify httpd-2_0_<em>NN</em>.tar.gz.asc</example>
      
      <p>You should receive a message like</p>
  
  <example>Good signature from user "Martin Kraemer
        &lt;martin@apache.org&gt;".</example>
  
      <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>
  
  </section>
  
  <section id="extract"><title>Extract</title>
  
      <p>Extracting the source from the Apache HTTPD tarball is a
      simple matter of uncompressing, and then untarring:</p>
  
  <example>
        $ gzip -d httpd-2_0_<em>NN</em>.tar.gz<br />
         $ tar xvf httpd-2_0_<em>NN</em>.tar
  </example>
  
      <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>
  </section>
  
  <section id="configure"><title>Configuring the source tree</title>
  
      <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>
  
  <example>
        $ CC="pgcc" CFLAGS="-O2" \<br />
         ./configure --prefix=/sw/pkg/apache \<br />
         --enable-rewrite=shared \<br />
         --enable-speling=shared
  </example>
  
      <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>
  
  <section id="environment"><title>Environment Variables</title>
  
      <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>
  </section>
  
  <section id="output"><title>autoconf Output Options</title>
  
      <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>
  </section>
  
  <section id="pathnames"><title>Pathnames</title>
  
      <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>
  </section>
  
  <section id="modules"><title>Modules</title>
  
      <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.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 <module>mod_so</module>.
      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>
  
  <example>./configure --enable-dav --enable-info</example>
  
      <p>or, equivalently,</p>
  
  <example>./configure --enable-modules="dav info"</example>
  
      <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>
  
  <example>
        ./configure --enable-mods-shared=all
        --disable-info
  </example>
  
      <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>
  </section>
  
  <section id="suexec"><title>Suexec</title>
  
      <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>
  </section>
  </section>
  
  <section id="compile"><title>Build</title>
  
      <p>Now you can build the various parts which form the Apache
      package by simply running the command:</p>
  
  <example>$ make</example>
  
      <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>
  </section>
  
  <section id="install"><title>Install</title>
  
      <p>Now its time to install the package under the configured
      installation <em>PREFIX</em> (see <code>--prefix</code> option
      above) by running:</p>
  
  <example>$ make install</example>
  
      <p>If you are upgrading, the installation will not overwrite
      your configuration files or documents.</p>
  </section>
  
  <section id="customize"><title>Customize</title>
  
      <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>
  
  <example>$ vi <em>PREFIX</em>/conf/httpd.conf</example>
  
      <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-2.0/</a>
      for a complete reference of available <a
      href="mod/directives.html">configuration directives</a>.</p>
  </section>
  
  <section id="test"><title>Test</title>
  
      <p>Now you can <a href="invoking.html">start</a> your Apache
      HTTP server by immediately running:</p>
  
  <example>$ <em>PREFIX</em>/bin/apachectl start</example>
  
      <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 <directive module="core">DocumentRoot</directive>
      which will usually be <code><em>PREFIX</em>/htdocs/</code>.
      Then <a href="stopping.html">stop</a> the server again by
      running:</p>
  
  <example>$ <em>PREFIX</em>/bin/apachectl stop</example>
  </section>
  
  </manualpage>