install.xml revision 26932bb82a7d30e9cfb22fba22bcfe0cc5df53fb
16c3dab75292d97eca6698f695f5012c16f86011slive<?xml version='1.0' encoding='UTF-8' ?>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd<!DOCTYPE manualpage SYSTEM "/style/manualpage.dtd">
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd<?xml-stylesheet type="text/xsl" href="/style/manual.en.xsl"?>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd<manualpage>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd<relativepath href="."/>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <title>Compiling and Installing</title>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd<summary>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen <p>This document covers compilation and installation of Apache
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen on Unix and Unix-like systems only. For compiling and
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen installation on Windows, see <a
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen href="platform/windows.html">Using Apache with Microsoft
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd Windows</a>. For other platforms, see the <a
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd href="platform/">platform</a> documentation.</p>
af33a4994ae2ff15bc67d19ff1a7feb906745bf8rbowen
3f08db06526d6901aa08c110b5bc7dde6bc39905nd <p>Apache 2.0's configuration and installation environment has
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd changed completely from Apache 1.3. Apache 1.3 used a custom
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd set of scripts to achieve easy installation. Apache 2.0 now
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd uses libtool and autoconf to create an environment that looks
3f08db06526d6901aa08c110b5bc7dde6bc39905nd like many other Open Source projects.</p>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
ad74a0524a06bfe11b7de9e3b4ce7233ab3bd3f7nd</summary>
ad74a0524a06bfe11b7de9e3b4ce7233ab3bd3f7nd
ecc5150d35c0dc5ee5119c2717e6660fa331abbftakashi<section id="overview"><title>Overview for the
ecc5150d35c0dc5ee5119c2717e6660fa331abbftakashi impatient</title>
ad74a0524a06bfe11b7de9e3b4ce7233ab3bd3f7nd
fac8c35bfb158112226ab43ddf84d59daca5dc30nd <table>
f086b4b402fa9a2fefc7dda85de2a3cc1cd0a654rjung <tr>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <td><a href="#download">Download</a></td>
4b575a6b6704b516f22d65a3ad35696d7b9ba372rpluem
4b575a6b6704b516f22d65a3ad35696d7b9ba372rpluem <td><code>$ lynx
16c3dab75292d97eca6698f695f5012c16f86011slive http://www.apache.org/dist/httpd/httpd-2_0_<em>NN</em>.tar.gz</code>
16c3dab75292d97eca6698f695f5012c16f86011slive </td>
16c3dab75292d97eca6698f695f5012c16f86011slive </tr>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <tr>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <td><a href="#extract">Extract</a></td>
16c3dab75292d97eca6698f695f5012c16f86011slive
16c3dab75292d97eca6698f695f5012c16f86011slive <td><code>$ gzip -d httpd-2_0_<em>NN</em>.tar.gz<br />
16c3dab75292d97eca6698f695f5012c16f86011slive $ tar xvf httpd-2_0_<em>NN</em>.tar</code> </td>
16c3dab75292d97eca6698f695f5012c16f86011slive </tr>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <tr>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <td><a href="#configure">Configure</a></td>
71fccc298df6a1540d408151a26aa22beed55d0bnd
71fccc298df6a1540d408151a26aa22beed55d0bnd <td><code>$ /configure --prefix=<em>PREFIX</em></code>
71fccc298df6a1540d408151a26aa22beed55d0bnd </td>
71fccc298df6a1540d408151a26aa22beed55d0bnd </tr>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <tr>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <td><a href="#compile">Compile</a></td>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <td><code>$ make</code> </td>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd </tr>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <tr>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <td><a href="#install">Install</a></td>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
71fccc298df6a1540d408151a26aa22beed55d0bnd <td><code>$ make install</code> </td>
30471a4650391f57975f60bbb6e4a90be7b284bfhumbedooh </tr>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <tr>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <td><a href="#customize">Customize</a></td>
16c3dab75292d97eca6698f695f5012c16f86011slive
16c3dab75292d97eca6698f695f5012c16f86011slive <td><code>$ vi <em>PREFIX</em>/conf/httpd.conf</code> </td>
71fccc298df6a1540d408151a26aa22beed55d0bnd </tr>
16c3dab75292d97eca6698f695f5012c16f86011slive
16c3dab75292d97eca6698f695f5012c16f86011slive <tr>
16c3dab75292d97eca6698f695f5012c16f86011slive <td><a href="#test">Test</a></td>
71fccc298df6a1540d408151a26aa22beed55d0bnd
16c3dab75292d97eca6698f695f5012c16f86011slive <td><code>$ <em>PREFIX</em>/bin/apachectl start</code>
16c3dab75292d97eca6698f695f5012c16f86011slive </td>
16c3dab75292d97eca6698f695f5012c16f86011slive </tr>
16c3dab75292d97eca6698f695f5012c16f86011slive </table>
16c3dab75292d97eca6698f695f5012c16f86011slive
16c3dab75292d97eca6698f695f5012c16f86011slive <p><em>NN</em> must be replaced with the current minor version
4e191199a0aeab09d78df8f5579e745572e8b7bcwsanchez number, and <em>PREFIX</em> must be replaced with the
4e191199a0aeab09d78df8f5579e745572e8b7bcwsanchez filesystem path under which the server should be installed. If
16c3dab75292d97eca6698f695f5012c16f86011slive <em>PREFIX</em> is not specified, it defaults to
16c3dab75292d97eca6698f695f5012c16f86011slive <code>/usr/local/apache2</code>.</p>
16c3dab75292d97eca6698f695f5012c16f86011slive
16c3dab75292d97eca6698f695f5012c16f86011slive <p>Each section of the compilation and installation process is
16c3dab75292d97eca6698f695f5012c16f86011slive described in more detail below, beginning with the requirements
16c3dab75292d97eca6698f695f5012c16f86011slive for compiling and installing Apache HTTPD.</p>
16c3dab75292d97eca6698f695f5012c16f86011slive</section>
16c3dab75292d97eca6698f695f5012c16f86011slive
16c3dab75292d97eca6698f695f5012c16f86011slive<section id="requirements"><title>Requirements</title>
16c3dab75292d97eca6698f695f5012c16f86011slive
16c3dab75292d97eca6698f695f5012c16f86011slive <p>The following requirements exist for building Apache:</p>
16c3dab75292d97eca6698f695f5012c16f86011slive
16c3dab75292d97eca6698f695f5012c16f86011slive <ul>
16c3dab75292d97eca6698f695f5012c16f86011slive <li>Disk Space<br />
16c3dab75292d97eca6698f695f5012c16f86011slive <br />
16c3dab75292d97eca6698f695f5012c16f86011slive Make sure you have at least 50 MB of temporary free disk
16c3dab75292d97eca6698f695f5012c16f86011slive space available. After installation Apache occupies
16c3dab75292d97eca6698f695f5012c16f86011slive approximately 10 MB of disk space. The actual disk space
16c3dab75292d97eca6698f695f5012c16f86011slive requirements will vary considerably based on your chosen
16c3dab75292d97eca6698f695f5012c16f86011slive configuration options and any third-party modules.<br />
16c3dab75292d97eca6698f695f5012c16f86011slive <br />
16c3dab75292d97eca6698f695f5012c16f86011slive </li>
16c3dab75292d97eca6698f695f5012c16f86011slive
16c3dab75292d97eca6698f695f5012c16f86011slive <li>ANSI-C Compiler and Build System<br />
16c3dab75292d97eca6698f695f5012c16f86011slive <br />
16c3dab75292d97eca6698f695f5012c16f86011slive Make sure you have an ANSI-C compiler installed. The <a
16c3dab75292d97eca6698f695f5012c16f86011slive href="http://www.gnu.org/software/gcc/gcc.html">GNU C
16c3dab75292d97eca6698f695f5012c16f86011slive compiler (GCC)</a> from the <a
16c3dab75292d97eca6698f695f5012c16f86011slive href="http://www.gnu.org/">Free Software Foundation (FSF)</a>
16c3dab75292d97eca6698f695f5012c16f86011slive is recommended (version 2.7.2 is fine). If you don't have GCC
16c3dab75292d97eca6698f695f5012c16f86011slive then at least make sure your vendor's compiler is ANSI
16c3dab75292d97eca6698f695f5012c16f86011slive compliant. In addition, your <code>PATH</code> must contain
16c3dab75292d97eca6698f695f5012c16f86011slive basic build tools such as <code>make</code>.<br />
16c3dab75292d97eca6698f695f5012c16f86011slive <br />
16c3dab75292d97eca6698f695f5012c16f86011slive </li>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <li>Accurate time keeping<br />
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <br />
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd Elements of the HTTP protocol are expressed as the time of
16c3dab75292d97eca6698f695f5012c16f86011slive day. So, it's time to investigate setting some time
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd synchronization facility on your system. Usually the ntpdate
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd or xntpd programs are used for this purpose which are based
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd on the Network Time Protocol (NTP). See the Usenet newsgroup
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <a
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd href="news:comp.protocols.time.ntp">comp.protocols.time.ntp</a>
16c3dab75292d97eca6698f695f5012c16f86011slive and the <a href="http://www.eecis.udel.edu/~ntp/">NTP
16c3dab75292d97eca6698f695f5012c16f86011slive homepage</a> for more details about NTP software and public
16c3dab75292d97eca6698f695f5012c16f86011slive time servers.<br />
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <br />
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd </li>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
16c3dab75292d97eca6698f695f5012c16f86011slive <li><a href="http://www.perl.org/">Perl 5</a>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd [OPTIONAL]<br />
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <br />
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd For some of the support scripts like <a
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd href="programs/apxs.html">apxs</a> or <a
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd href="programs/dbmmanage.html">dbmmanage</a> (which are
16c3dab75292d97eca6698f695f5012c16f86011slive written in Perl) the Perl 5 interpreter is required (versions
16c3dab75292d97eca6698f695f5012c16f86011slive 5.003 or newer are sufficient). If no such interpreter is found by
16c3dab75292d97eca6698f695f5012c16f86011slive the `configure' script there is no harm. Of course, you still
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd can build and install Apache 2.0. Only those support scripts
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd cannot be used. If you have multiple Perl interpreters
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd installed (perhaps a Perl 4 from the vendor and a Perl 5 from
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd your own), then it is recommended to use the --with-perl
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd option (see below) to make sure the correct one is selected
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd by /configure.<br />
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <br />
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd </li>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd </ul>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd</section>
71fccc298df6a1540d408151a26aa22beed55d0bnd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd<section id="download"><title>Download</title>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <p>Apache can be downloaded from the <a
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd href="http://www.apache.org/dist/httpd/">Apache Software
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd Foundation download site</a> or from a <a
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd href="http://www.apache.org/dyn/closer.cgi/httpd/">nearby
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd mirror</a>.</p>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <p>Version numbers that end in <code>alpha</code> indicate
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd early pre-test versions which may or may not work. Version
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd numbers ending in <code>beta</code> indicate more reliable
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd releases that still require further testing or bug fixing. If
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd you wish to download the best available production release of
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd the Apache HTTP Server, you should choose the latest version
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd with neither <code>alpha</code> nor <code>beta</code> in its
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd filename.</p>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <p>After downloading, especially if a mirror site is used, it
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd is important to verify that you have a complete and unmodified
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd version of the Apache HTTP Server. This can be accomplished by
71fccc298df6a1540d408151a26aa22beed55d0bnd testing the downloaded tarball against the PGP signature. This,
71fccc298df6a1540d408151a26aa22beed55d0bnd in turn, is a two step procedure. First, you must obtain the
71fccc298df6a1540d408151a26aa22beed55d0bnd <code>KEYS</code> file from the <a
71fccc298df6a1540d408151a26aa22beed55d0bnd href="http://www.apache.org/dist/httpd/">Apache distribution
71fccc298df6a1540d408151a26aa22beed55d0bnd site</a>. (To assure that the <code>KEYS</code> file itself has
71fccc298df6a1540d408151a26aa22beed55d0bnd not been modified, it may be a good idea to use a file from a
71fccc298df6a1540d408151a26aa22beed55d0bnd previous distribution of Apache or import the keys from a
71fccc298df6a1540d408151a26aa22beed55d0bnd public key server.) The keys are imported into your personal
16c3dab75292d97eca6698f695f5012c16f86011slive key ring using one of the following commands (depending on your
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd pgp version):</p>
71fccc298df6a1540d408151a26aa22beed55d0bnd
71fccc298df6a1540d408151a26aa22beed55d0bnd<example>$ pgp &lt; KEYS</example>
71fccc298df6a1540d408151a26aa22beed55d0bnd
16c3dab75292d97eca6698f695f5012c16f86011slive <p>or </p>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd<example>$ gpg --import KEYS</example>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
16c3dab75292d97eca6698f695f5012c16f86011slive <p>The next step is to test the tarball against the PGP
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd signature, which should always be obtained from the <a
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd href="http://www.apache.org/dist/httpd/">main Apache
16c3dab75292d97eca6698f695f5012c16f86011slive website</a>. The signature file has a filename identical to the
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd source tarball with the addition of <code>.asc</code>. Then you
71fccc298df6a1540d408151a26aa22beed55d0bnd can check the distribution with one of the following commands
71fccc298df6a1540d408151a26aa22beed55d0bnd (again, depending on your pgp version):</p>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
16c3dab75292d97eca6698f695f5012c16f86011slive<example>$ pgp httpd-2_0_<em>NN</em>.tar.gz.asc</example>
16c3dab75292d97eca6698f695f5012c16f86011slive
16c3dab75292d97eca6698f695f5012c16f86011slive <p>or</p>
16c3dab75292d97eca6698f695f5012c16f86011slive
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd<example>$ gpg --verify httpd-2_0_<em>NN</em>.tar.gz.asc</example>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <p>You should receive a message like</p>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd<example>Good signature from user "Martin Kraemer
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd &lt;martin@apache.org&gt;".</example>
71fccc298df6a1540d408151a26aa22beed55d0bnd
71fccc298df6a1540d408151a26aa22beed55d0bnd <p>Depending on the trust relationships contained in your key
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd ring, you may also receive a message saying that the
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd relationship between the key and the signer of the key cannot
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd be verified. This is not a problem if you trust the
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd authenticity of the <code>KEYS</code> file.</p>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd</section>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
71fccc298df6a1540d408151a26aa22beed55d0bnd<section id="extract"><title>Extract</title>
71fccc298df6a1540d408151a26aa22beed55d0bnd
71fccc298df6a1540d408151a26aa22beed55d0bnd <p>Extracting the source from the Apache HTTPD tarball is a
71fccc298df6a1540d408151a26aa22beed55d0bnd simple matter of uncompressing, and then untarring:</p>
71fccc298df6a1540d408151a26aa22beed55d0bnd
71fccc298df6a1540d408151a26aa22beed55d0bnd<example>
71fccc298df6a1540d408151a26aa22beed55d0bnd $ gzip -d httpd-2_0_<em>NN</em>.tar.gz<br />
71fccc298df6a1540d408151a26aa22beed55d0bnd $ tar xvf httpd-2_0_<em>NN</em>.tar
71fccc298df6a1540d408151a26aa22beed55d0bnd</example>
71fccc298df6a1540d408151a26aa22beed55d0bnd
71fccc298df6a1540d408151a26aa22beed55d0bnd <p>This will create a new directory under the current directory
71fccc298df6a1540d408151a26aa22beed55d0bnd containing the source code for the distribution. You should
71fccc298df6a1540d408151a26aa22beed55d0bnd <code>cd</code> into that directory before proceeding with
71fccc298df6a1540d408151a26aa22beed55d0bnd compiling the server.</p>
71fccc298df6a1540d408151a26aa22beed55d0bnd</section>
71fccc298df6a1540d408151a26aa22beed55d0bnd
71fccc298df6a1540d408151a26aa22beed55d0bnd<section id="configure"><title>Configuring the source tree</title>
71fccc298df6a1540d408151a26aa22beed55d0bnd
71fccc298df6a1540d408151a26aa22beed55d0bnd <p>The next step is to configure the Apache source tree for
71fccc298df6a1540d408151a26aa22beed55d0bnd your particular platform and personal requirements. This is
71fccc298df6a1540d408151a26aa22beed55d0bnd done using the script <code>configure</code> included in the
71fccc298df6a1540d408151a26aa22beed55d0bnd root directory of the distribution. (Developers downloading the
71fccc298df6a1540d408151a26aa22beed55d0bnd CVS version of the Apache source tree will need to have
71fccc298df6a1540d408151a26aa22beed55d0bnd <code>autoconf</code> and <code>libtool</code> installed and
71fccc298df6a1540d408151a26aa22beed55d0bnd will need to run <code>buildconf</code> before proceeding with
71fccc298df6a1540d408151a26aa22beed55d0bnd the next steps. This is not necessary for official
16c3dab75292d97eca6698f695f5012c16f86011slive releases.)</p>
16c3dab75292d97eca6698f695f5012c16f86011slive
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <p>To configure the source tree using all the default options,
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd simply type <code>/configure</code>. To change the default
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd options, <code>configure</code> accepts a variety of variables
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd and command line options. Environment variables are generally
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd placed before the <code>/configure</code> command, while other
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd options are placed after. The most important option here is the
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd location prefix where Apache is to be installed later, because
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd Apache has to be configured for this location to work
16c3dab75292d97eca6698f695f5012c16f86011slive correctly. But there are a lot of other options available for
16c3dab75292d97eca6698f695f5012c16f86011slive your pleasure.</p>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <p>For a short impression of what possibilities you have, here
16c3dab75292d97eca6698f695f5012c16f86011slive is a typical example which compiles Apache for the installation
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd tree /sw/pkg/apache with a particular compiler and flags plus
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd the two additional modules mod_rewrite and mod_speling for
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd later loading through the DSO mechanism:</p>
16c3dab75292d97eca6698f695f5012c16f86011slive
71fccc298df6a1540d408151a26aa22beed55d0bnd<example>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd $ CC="pgcc" CFLAGS="-O2" \<br />
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd /configure --prefix=/sw/pkg/apache \<br />
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd --enable-rewrite=shared \<br />
16c3dab75292d97eca6698f695f5012c16f86011slive --enable-speling=shared
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd</example>
16c3dab75292d97eca6698f695f5012c16f86011slive
16c3dab75292d97eca6698f695f5012c16f86011slive <p>When configure is run it will take several minutes to test
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd for the availability of features on your system and build
16c3dab75292d97eca6698f695f5012c16f86011slive Makefiles which will later be used to compile the server.</p>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <p>The easiest way to find all of the configuration flags for
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd Apache is to run /configure --help. What follows is a brief
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd description of most of the arguments and environment
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd variables.</p>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd<section id="environment"><title>Environment Variables</title>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <p>The autoconf build process uses several environment
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd variables to configure the build environment. In general, these
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd variables change the method used to build Apache, but not the
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd eventual features of the server. These variables can be placed
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd in the environment before invoking <code>configure</code>, but
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd it is usually easier to specify them on the
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <code>configure</code> command line as demonstrated in the
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd example above.</p>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <dl>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <dt><code>CC=...</code></dt>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <dd>The name of the C compiler command.</dd>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <dt><code>CPPFLAGS=...</code></dt>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <dd>Miscellaneous C preprocessor and compiler options.</dd>
6df89e6e4adeb986b41b7ec6b7593a887e031ce7nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <dt><code>CFLAGS=...</code></dt>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <dd>Debugging and optimization options for the C
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd compiler.</dd>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <dt><code>LDFLAGS=...</code></dt>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <dd>Miscellaneous options to be passed to the linker.</dd>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <dt><code>LIBS=...</code></dt>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <dd>Library location information ("-L" and "-l" options) to
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd pass to the linker.</dd>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <dt><code>INCLUDES=...</code></dt>
71fccc298df6a1540d408151a26aa22beed55d0bnd
71fccc298df6a1540d408151a26aa22beed55d0bnd <dd>Header file search directories ("-I<em>dir</em>").</dd>
71fccc298df6a1540d408151a26aa22beed55d0bnd
71fccc298df6a1540d408151a26aa22beed55d0bnd <dt><code>TARGET=...</code> [Default: apache]</dt>
71fccc298df6a1540d408151a26aa22beed55d0bnd
71fccc298df6a1540d408151a26aa22beed55d0bnd <dd>Name of the executable which will be built.</dd>
71fccc298df6a1540d408151a26aa22beed55d0bnd
71fccc298df6a1540d408151a26aa22beed55d0bnd <dt><code>NOTEST_CPPFLAGS=...</code></dt>
71fccc298df6a1540d408151a26aa22beed55d0bnd
71fccc298df6a1540d408151a26aa22beed55d0bnd <dt><code>NOTEST_CFLAGS=...</code></dt>
71fccc298df6a1540d408151a26aa22beed55d0bnd
71fccc298df6a1540d408151a26aa22beed55d0bnd <dt><code>NOTEST_LDFLAGS=...</code></dt>
71fccc298df6a1540d408151a26aa22beed55d0bnd
71fccc298df6a1540d408151a26aa22beed55d0bnd <dt><code>NOTEST_LIBS=...</code></dt>
71fccc298df6a1540d408151a26aa22beed55d0bnd
71fccc298df6a1540d408151a26aa22beed55d0bnd <dd>These variables share the same function as their
71fccc298df6a1540d408151a26aa22beed55d0bnd non-NOTEST namesakes. However, the variables are applied to
71fccc298df6a1540d408151a26aa22beed55d0bnd the build process only after autoconf has performed its
71fccc298df6a1540d408151a26aa22beed55d0bnd feature testing. This allows the inclusion of flags which
71fccc298df6a1540d408151a26aa22beed55d0bnd will cause problems during feature testing, but must be used
71fccc298df6a1540d408151a26aa22beed55d0bnd for the final compilation.</dd>
71fccc298df6a1540d408151a26aa22beed55d0bnd
71fccc298df6a1540d408151a26aa22beed55d0bnd <dt><code>SHLIB_PATH=...</code></dt>
71fccc298df6a1540d408151a26aa22beed55d0bnd
71fccc298df6a1540d408151a26aa22beed55d0bnd <dd>Options which specify shared library paths for the
71fccc298df6a1540d408151a26aa22beed55d0bnd compiler and linker.</dd>
71fccc298df6a1540d408151a26aa22beed55d0bnd </dl>
71fccc298df6a1540d408151a26aa22beed55d0bnd</section>
71fccc298df6a1540d408151a26aa22beed55d0bnd
71fccc298df6a1540d408151a26aa22beed55d0bnd<section id="output"><title>autoconf Output Options</title>
71fccc298df6a1540d408151a26aa22beed55d0bnd
71fccc298df6a1540d408151a26aa22beed55d0bnd <dl>
71fccc298df6a1540d408151a26aa22beed55d0bnd <dt><code>--help</code></dt>
71fccc298df6a1540d408151a26aa22beed55d0bnd
71fccc298df6a1540d408151a26aa22beed55d0bnd <dd>Prints the usage message including all available options,
71fccc298df6a1540d408151a26aa22beed55d0bnd but does not actually configure anything.</dd>
71fccc298df6a1540d408151a26aa22beed55d0bnd
71fccc298df6a1540d408151a26aa22beed55d0bnd <dt><code>--quiet</code></dt>
71fccc298df6a1540d408151a26aa22beed55d0bnd
71fccc298df6a1540d408151a26aa22beed55d0bnd <dd>Prevents the printing of the usual "checking..."
71fccc298df6a1540d408151a26aa22beed55d0bnd messages.</dd>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <dt><code>--verbose</code></dt>
ad74a0524a06bfe11b7de9e3b4ce7233ab3bd3f7nd
ad74a0524a06bfe11b7de9e3b4ce7233ab3bd3f7nd <dd>Prints much more information during the configuration
ecc5150d35c0dc5ee5119c2717e6660fa331abbftakashi process, including the names of all the files examined.</dd>
ecc5150d35c0dc5ee5119c2717e6660fa331abbftakashi </dl>
ad74a0524a06bfe11b7de9e3b4ce7233ab3bd3f7nd</section>
fac8c35bfb158112226ab43ddf84d59daca5dc30nd
f086b4b402fa9a2fefc7dda85de2a3cc1cd0a654rjung<section id="pathnames"><title>Pathnames</title>
727872d18412fc021f03969b8641810d8896820bhumbedooh
0d0ba3a410038e179b695446bb149cce6264e0abnd <p>There are currently two ways to configure the pathnames
727872d18412fc021f03969b8641810d8896820bhumbedooh under which Apache will install its files. First, you can
cc7e1025de9ac63bd4db6fe7f71c158b2cf09fe4humbedooh specify a directory and have Apache install itself under that
0d0ba3a410038e179b695446bb149cce6264e0abnd directory in its default locations.</p>
cc7e1025de9ac63bd4db6fe7f71c158b2cf09fe4humbedooh
727872d18412fc021f03969b8641810d8896820bhumbedooh <dl>
0d0ba3a410038e179b695446bb149cce6264e0abnd <dt><code>--prefix=<em>PREFIX</em></code> [Default:
0d0ba3a410038e179b695446bb149cce6264e0abnd /usr/local/apache2]</dt>
0d0ba3a410038e179b695446bb149cce6264e0abnd
ac082aefa89416cbdc9a1836eaf3bed9698201c8humbedooh <dd>Specifies the directory under which the Apache files will
0d0ba3a410038e179b695446bb149cce6264e0abnd be installed.</dd>
0d0ba3a410038e179b695446bb149cce6264e0abnd </dl>
0d0ba3a410038e179b695446bb149cce6264e0abnd
727872d18412fc021f03969b8641810d8896820bhumbedooh <p>It is possible to specify that architecture-dependent files
0d0ba3a410038e179b695446bb149cce6264e0abnd should be placed under a different directory.</p>
0d0ba3a410038e179b695446bb149cce6264e0abnd
30471a4650391f57975f60bbb6e4a90be7b284bfhumbedooh <dl>
1a1356f375e36db7bee379ea0684ab389579f798rbowen <dt><code>--exec-prefix=<em>EPREFIX</em></code> [Default:
af33a4994ae2ff15bc67d19ff1a7feb906745bf8rbowen <em>PREFIX</em>]</dt>
0d0ba3a410038e179b695446bb149cce6264e0abnd
7fec19672a491661b2fe4b29f685bc7f4efa64d4nd <dd>Specifies the directory under which
7fec19672a491661b2fe4b29f685bc7f4efa64d4nd architecture-dependent files will be placed.</dd>
7fec19672a491661b2fe4b29f685bc7f4efa64d4nd </dl>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
<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="dbm"><title>DBM</title>
<p>Several Apache features, including
<module>mod_auth_dbm</module> and <module>mod_rewrite</module>'s
DBM <directive module="mod_rewrite">RewriteMap</directive> use
simple key/value databases for quick lookups of information. Apache
includes SDBM with its source-code, so this database is always
available. If you would like to use other database types, the
following <code>configure</code> options are available:</p>
<dl>
<dt><code>--with-gdbm[=<em>path</em>]</code></dt>
<dt><code>--with-ndbm[=<em>path</em>]</code></dt>
<dt><code>--with-berkeley-db[=<em>path</em>]</code></dt>
<dd>If no <em>path</em> is specified, Apache will search for the
include files and libraries in the usual search paths. An explict
<em>path</em> will cause Apache to look in
<em>path</em><code>/lib</code> and
<em>path</em><code>/include</code> for the relevant files. Finally,
the <em>path</em> may specify specific include and library paths
seperated by a colon.</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>