mirror of
				https://github.com/apache/httpd.git
				synced 2025-11-03 17:53:20 +03:00 
			
		
		
		
	git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@96736 13f79535-47bb-0310-9956-ffa450edef68
		
			
				
	
	
		
			567 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			567 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
<?xml version="1.0" encoding="ISO-8859-1"?>
 | 
						|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 | 
						|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><!--
 | 
						|
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 | 
						|
              This file is generated from xml source: DO NOT EDIT
 | 
						|
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 | 
						|
      --><title>Compiling and Installing - Apache HTTP Server</title><link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /><link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" /><link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link href="./images/favicon.ico" rel="shortcut icon" /></head><body id="manual-page"><div id="page-header"><p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/directives.html">Directives</a> | <a href="./faq/">FAQ</a> | <a href="./glossary.html">Glossary</a> | <a href="./sitemap.html">Sitemap</a></p><p class="apache">Apache HTTP Server Version 2.0</p><img alt="" src="./images/feather.gif" /></div><div class="up"><a href="./"><img title="<-" alt="<-" src="./images/left.gif" /></a></div><div id="path"><a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs-project/">Documentation</a> > <a href="./">Version 2.0</a></div><div id="page-content"><div id="preamble"><h1>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>
 | 
						|
 | 
						|
</div><div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#overview">Overview for the
 | 
						|
    impatient</a></li><li><img alt="" src="./images/down.gif" /> <a href="#requirements">Requirements</a></li><li><img alt="" src="./images/down.gif" /> <a href="#download">Download</a></li><li><img alt="" src="./images/down.gif" /> <a href="#extract">Extract</a></li><li><img alt="" src="./images/down.gif" /> <a href="#configure">Configuring the source tree</a></li><li><img alt="" src="./images/down.gif" /> <a href="#compile">Build</a></li><li><img alt="" src="./images/down.gif" /> <a href="#install">Install</a></li><li><img alt="" src="./images/down.gif" /> <a href="#customize">Customize</a></li><li><img alt="" src="./images/down.gif" /> <a href="#test">Test</a></li></ul></div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div><div class="section"><h2><a name="overview" id="overview">Overview for the
 | 
						|
    impatient</a></h2>
 | 
						|
 | 
						|
    <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>
 | 
						|
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div><div class="section"><h2><a name="requirements" id="requirements">Requirements</a></h2>
 | 
						|
 | 
						|
    <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>
 | 
						|
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div><div class="section"><h2><a name="download" id="download">Download</a></h2>
 | 
						|
 | 
						|
    <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>
 | 
						|
 | 
						|
<div class="example"><p><code>$ pgp < KEYS</code></p></div>
 | 
						|
 | 
						|
    <p>or </p>
 | 
						|
 | 
						|
<div class="example"><p><code>$ gpg --import KEYS</code></p></div>
 | 
						|
 | 
						|
    <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>
 | 
						|
 | 
						|
<div class="example"><p><code>$ pgp httpd-2_0_<em>NN</em>.tar.gz.asc</code></p></div>
 | 
						|
    
 | 
						|
    <p>or</p>
 | 
						|
 | 
						|
<div class="example"><p><code>$ gpg --verify httpd-2_0_<em>NN</em>.tar.gz.asc</code></p></div>
 | 
						|
    
 | 
						|
    <p>You should receive a message like</p>
 | 
						|
 | 
						|
<div class="example"><p><code>Good signature from user "Martin Kraemer
 | 
						|
      <martin@apache.org>".</code></p></div>
 | 
						|
 | 
						|
    <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>
 | 
						|
 | 
						|
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div><div class="section"><h2><a name="extract" id="extract">Extract</a></h2>
 | 
						|
 | 
						|
    <p>Extracting the source from the Apache HTTPD tarball is a
 | 
						|
    simple matter of uncompressing, and then untarring:</p>
 | 
						|
 | 
						|
<div class="example"><p><code>
 | 
						|
      $ gzip -d httpd-2_0_<em>NN</em>.tar.gz<br />
 | 
						|
       $ tar xvf httpd-2_0_<em>NN</em>.tar
 | 
						|
</code></p></div>
 | 
						|
 | 
						|
    <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>
 | 
						|
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div><div class="section"><h2><a name="configure" id="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
 | 
						|
    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>
 | 
						|
 | 
						|
<div class="example"><p><code>
 | 
						|
      $ CC="pgcc" CFLAGS="-O2" \<br />
 | 
						|
       ./configure --prefix=/sw/pkg/apache \<br />
 | 
						|
       --enable-rewrite=shared \<br />
 | 
						|
       --enable-speling=shared
 | 
						|
</code></p></div>
 | 
						|
 | 
						|
    <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>
 | 
						|
 | 
						|
<h3><a name="environment" id="environment">Environment Variables</a></h3>
 | 
						|
 | 
						|
    <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>
 | 
						|
 | 
						|
 | 
						|
<h3><a name="output" id="output">autoconf Output Options</a></h3>
 | 
						|
 | 
						|
    <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>
 | 
						|
 | 
						|
 | 
						|
<h3><a name="pathnames" id="pathnames">Pathnames</a></h3>
 | 
						|
 | 
						|
    <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>
 | 
						|
 | 
						|
 | 
						|
<h3><a name="modules" id="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
 | 
						|
    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 <code class="module"><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
 | 
						|
    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>
 | 
						|
 | 
						|
<div class="example"><p><code>./configure --enable-dav --enable-info</code></p></div>
 | 
						|
 | 
						|
    <p>or, equivalently,</p>
 | 
						|
 | 
						|
<div class="example"><p><code>./configure --enable-modules="dav info"</code></p></div>
 | 
						|
 | 
						|
    <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>
 | 
						|
 | 
						|
<div class="example"><p><code>
 | 
						|
      ./configure --enable-mods-shared=all
 | 
						|
      --disable-info
 | 
						|
</code></p></div>
 | 
						|
 | 
						|
    <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>
 | 
						|
 | 
						|
 | 
						|
<h3><a name="dbm" id="dbm">DBM</a></h3>
 | 
						|
 | 
						|
    <p>Several Apache features, including
 | 
						|
    <code class="module"><a href="./mod/mod_auth_dbm.html">mod_auth_dbm</a></code> and <code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code>'s
 | 
						|
    DBM <code class="directive"><a href="./mod/mod_rewrite.html#rewritemap">RewriteMap</a></code> 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>
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<h3><a name="suexec" id="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>
 | 
						|
 | 
						|
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div><div class="section"><h2><a name="compile" id="compile">Build</a></h2>
 | 
						|
 | 
						|
    <p>Now you can build the various parts which form the Apache
 | 
						|
    package by simply running the command:</p>
 | 
						|
 | 
						|
<div class="example"><p><code>$ make</code></p></div>
 | 
						|
 | 
						|
    <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>
 | 
						|
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div><div class="section"><h2><a name="install" id="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>
 | 
						|
 | 
						|
<div class="example"><p><code>$ make install</code></p></div>
 | 
						|
 | 
						|
    <p>If you are upgrading, the installation will not overwrite
 | 
						|
    your configuration files or documents.</p>
 | 
						|
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div><div class="section"><h2><a name="customize" id="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>
 | 
						|
 | 
						|
<div class="example"><p><code>$ vi <em>PREFIX</em>/conf/httpd.conf</code></p></div>
 | 
						|
 | 
						|
    <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>
 | 
						|
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div><div class="section"><h2><a name="test" id="test">Test</a></h2>
 | 
						|
 | 
						|
    <p>Now you can <a href="invoking.html">start</a> your Apache
 | 
						|
    HTTP server by immediately running:</p>
 | 
						|
 | 
						|
<div class="example"><p><code>$ <em>PREFIX</em>/bin/apachectl start</code></p></div>
 | 
						|
 | 
						|
    <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 <code class="directive"><a href="./mod/core.html#documentroot">DocumentRoot</a></code>
 | 
						|
    which will usually be <code><em>PREFIX</em>/htdocs/</code>.
 | 
						|
    Then <a href="stopping.html">stop</a> the server again by
 | 
						|
    running:</p>
 | 
						|
 | 
						|
<div class="example"><p><code>$ <em>PREFIX</em>/bin/apachectl stop</code></p></div>
 | 
						|
</div></div><div id="footer"><p class="apache">Maintained by the <a href="http://httpd.apache.org/docs-project/">Apache HTTP Server Documentation Project</a></p><p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/directives.html">Directives</a> | <a href="./faq/">FAQ</a> | <a href="./glossary.html">Glossary</a> | <a href="./sitemap.html">Sitemap</a></p></div></body></html> |