diff options
author | Rich Bowen <rbowen@apache.org> | 2001-09-22 18:53:20 +0000 |
---|---|---|
committer | Rich Bowen <rbowen@apache.org> | 2001-09-22 18:53:20 +0000 |
commit | 1bf05b9838e25403ff49e68c7ce8e26af90b6bd5 (patch) | |
tree | 8d0f0997663688543686f0dea197117a28730949 /docs/manual/install.html | |
parent | 64670c57ff3c8a851b66d37a4c9d1fe730e57c48 (diff) | |
download | httpd-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.html | 1164 |
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 <martin@apache.org>". -</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><Layout FOO>...</Layout></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 < 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 + <martin@apache.org>".</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><Layout + FOO>...</Layout></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> + |