mirror of
https://github.com/apache/httpd.git
synced 2025-05-25 14:22:34 +03:00
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@571782 13f79535-47bb-0310-9956-ffa450edef68
394 lines
21 KiB
XML
394 lines
21 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.3</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/">Documentation</a> > <a href="./">Version 2.3</a></div><div id="page-content"><div id="preamble"><h1>Compiling and Installing</h1>
|
|
<div class="toplang">
|
|
<p><span>Available Languages: </span><a href="./de/install.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
|
|
<a href="./en/install.html" title="English"> en </a> |
|
|
<a href="./es/install.html" hreflang="es" rel="alternate" title="Español"> es </a> |
|
|
<a href="./fr/install.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
|
|
<a href="./ja/install.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
|
|
<a href="./ko/install.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p>
|
|
</div>
|
|
|
|
|
|
<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 httpd uses <code>libtool</code> and <code>autoconf</code>
|
|
to create a build environment that looks like many other Open Source
|
|
projects.</p>
|
|
|
|
<p>If you are upgrading from one minor version to the next (for
|
|
example, 2.2.50 to 2.2.51), please skip down to the <a href="#upgrading">upgrading</a> section.</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>
|
|
<li><img alt="" src="./images/down.gif" /> <a href="#upgrading">Upgrading</a></li>
|
|
</ul><h3>See also</h3><ul class="seealso"><li><a href="programs/configure.html">Configure the source tree</a></li><li><a href="invoking.html">Starting Apache</a></li><li><a href="stopping.html">Stopping and Restarting</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://httpd.apache.org/download.cgi</code>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td><a href="#extract">Extract</a></td>
|
|
|
|
<td><code>$ gzip -d httpd-<em>NN</em>.tar.gz<br />
|
|
$ tar xvf httpd-<em>NN</em>.tar<br />
|
|
$ cd httpd-<em>NN</em></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 -k start</code>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p><em>NN</em> must be replaced with the current 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>
|
|
|
|
<dl>
|
|
<dt>Disk Space</dt>
|
|
<dd>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.</dd>
|
|
|
|
<dt>ANSI-C Compiler and Build System</dt>
|
|
<dd>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. 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>.</dd>
|
|
|
|
<dt>Accurate time keeping</dt>
|
|
<dd>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
|
|
<code>ntpdate</code> or <code>xntpd</code> programs are used for
|
|
this purpose which are based on the Network Time Protocol (NTP).
|
|
See the <a href="http://www.ntp.org">NTP
|
|
homepage</a> for more details about NTP software and public
|
|
time servers.</dd>
|
|
|
|
<dt><a href="http://www.perl.org/">Perl 5</a>
|
|
[OPTIONAL]</dt>
|
|
<dd>For some of the support scripts like <code class="program"><a href="./programs/apxs.html">apxs</a></code> or <code class="program"><a href="./programs/dbmmanage.html">dbmmanage</a></code> (which are
|
|
written in Perl) the Perl 5 interpreter is required (versions
|
|
5.003 or newer are sufficient). If you have multiple Perl
|
|
interpreters (for example, a systemwide install of Perl 4, and
|
|
your own install of Perl 5), you are advised to use the
|
|
<code>--with-perl</code> option (see below) to make sure the
|
|
correct one is used by <code class="program"><a href="./programs/configure.html">configure</a></code>.
|
|
If no Perl 5 interpreter is found by the
|
|
<code class="program"><a href="./programs/configure.html">configure</a></code> script, you will not be able to use
|
|
the affected support scripts. Of course, you will still be able to
|
|
build and use Apache httpd.</dd>
|
|
</dl>
|
|
</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>The Apache HTTP Server can be downloaded from the <a href="http://httpd.apache.org/download.cgi">Apache HTTP Server
|
|
download site</a>, which lists several mirrors. Most users of
|
|
Apache on unix-like systems will be better off downloading and
|
|
compiling a source version. The build process (described below) is
|
|
easy, and it allows you to customize your server to suit your needs.
|
|
In addition, binary releases are often not up to date with the latest
|
|
source releases. If you do download a binary, follow the instructions
|
|
in the <code>INSTALL.bindist</code> file inside the distribution.</p>
|
|
|
|
<p>After downloading, 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. Details on how to do this are available on the <a href="http://httpd.apache.org/download.cgi#verify">download
|
|
page</a> and an extended example is available describing the <a href="http://httpd.apache.org/dev/verification.html">use of
|
|
PGP</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="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-<em>NN</em>.tar.gz<br />
|
|
$ tar xvf httpd-<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 class="program"><a href="./programs/configure.html">configure</a></code> included in
|
|
the root directory of the distribution. (Developers downloading
|
|
an unreleased 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 class="program"><a href="./programs/configure.html">configure</a></code> accepts a variety of variables
|
|
and command line options.</p>
|
|
|
|
<p>The most important option is the location <code>--prefix</code>
|
|
where Apache is to be installed later, because Apache has to be
|
|
configured for this location to work correctly. More fine-tuned
|
|
control of the location of files is possible with additional <a href="programs/configure.html#installationdirectories">configure
|
|
options</a>.</p>
|
|
|
|
<p>Also at this point, you can specify which <a href="programs/configure.html#optionalfeatures">features</a> you
|
|
want included in Apache by enabling and disabling <a href="mod/">modules</a>. Apache comes with a <a href="mod/module-dict.html#Status">Base</a> set of modules included by
|
|
default. Other modules are enabled using the
|
|
<code>--enable-<var>module</var></code> option, where
|
|
<var>module</var> is the name of the module with the
|
|
<code>mod_</code> string removed and with any underscore converted
|
|
to a dash. You can also choose to compile modules as <a href="dso.html">shared objects (DSOs)</a> -- which can be loaded
|
|
or unloaded at runtime -- by using the option
|
|
<code>--enable-<var>module</var>=shared</code>. Similarly, you can
|
|
disable Base modules with the
|
|
<code>--disable-<var>module</var></code> option. Be careful when
|
|
using these options, since <code class="program"><a href="./programs/configure.html">configure</a></code> cannot warn you
|
|
if the module you specify does not exist; it will simply ignore the
|
|
option.</p>
|
|
|
|
<p>In addition, it is sometimes necessary to provide the
|
|
<code class="program"><a href="./programs/configure.html">configure</a></code> script with extra information about the
|
|
location of your compiler, libraries, or header files. This is
|
|
done by passing either environment variables or command line
|
|
options to <code class="program"><a href="./programs/configure.html">configure</a></code>. For more information, see the
|
|
<code class="program"><a href="./programs/configure.html">configure</a></code> manual page. Or invoke
|
|
<code class="program"><a href="./programs/configure.html">configure</a></code> using the <code>--help</code> option.</p>
|
|
|
|
<p>For a short impression of what possibilities you have, here
|
|
is a typical example which compiles Apache for the installation
|
|
tree <code>/sw/pkg/apache</code> with a particular compiler and flags
|
|
plus the two additional modules <code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code> and
|
|
<code class="module"><a href="./mod/mod_speling.html">mod_speling</a></code> 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 <code class="program"><a href="./programs/configure.html">configure</a></code> 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>Details on all the different <code class="program"><a href="./programs/configure.html">configure</a></code> options are
|
|
available on the <code class="program"><a href="./programs/configure.html">configure</a></code> manual page.</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
|
|
several minutes to compile and the time will vary widely
|
|
depending on your hardware and the number of modules that 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 it's 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>This step will typically require root privileges, since
|
|
<em>PREFIX</em> is usually a directory with restricted write
|
|
permissions.</p>
|
|
|
|
<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
|
|
<code><em>PREFIX</em>/conf/</code>.</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
|
|
<code><em>PREFIX</em>/docs/manual/</code> or consult <a href="http://httpd.apache.org/docs/trunk/">http://httpd.apache.org/docs/trunk/</a> for the most recent
|
|
version of this manual and 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 -k start</code></p></div>
|
|
|
|
<p>You should then be able to request your first document
|
|
via the URL <code>http://localhost/</code>. 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 -k stop</code></p></div>
|
|
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
|
|
<div class="section">
|
|
<h2><a name="upgrading" id="upgrading">Upgrading</a></h2>
|
|
|
|
<p>The first step in upgrading is to read the release announcement
|
|
and the file <code>CHANGES</code> in the source distribution to
|
|
find any changes that may affect your site. When changing between
|
|
major releases (for example, from 1.3 to 2.0 or from 2.0 to 2.2),
|
|
there will likely be major differences in the compile-time and
|
|
run-time configuration that will require manual adjustments. All
|
|
modules will also need to be upgraded to accomodate changes in the
|
|
module API.</p>
|
|
|
|
<p>Upgrading from one minor version to the next (for example, from
|
|
2.2.55 to 2.2.57) is easier. The <code>make install</code>
|
|
process will not overwrite any of your existing documents, log
|
|
files, or configuration files. In addition, the developers make
|
|
every effort to avoid incompatible changes in the
|
|
<code class="program"><a href="./programs/configure.html">configure</a></code> options, run-time configuration, or the
|
|
module API between minor versions. In most cases you should be able to
|
|
use an identical <code class="program"><a href="./programs/configure.html">configure</a></code> command line, an identical
|
|
configuration file, and all of your modules should continue to
|
|
work.</p>
|
|
|
|
<p>To upgrade across minor versions, start by finding the file
|
|
<code>config.nice</code> in the <code>build</code> directory of
|
|
your installed server or at the root of the source tree for your
|
|
old install. This will contain the exact
|
|
<code class="program"><a href="./programs/configure.html">configure</a></code> command line that you used to
|
|
configure the source tree. Then to upgrade from one version to
|
|
the next, you need only copy the <code>config.nice</code> file to
|
|
the source tree of the new version, edit it to make any desired
|
|
changes, and then run:</p>
|
|
|
|
<div class="example"><p><code>
|
|
$ ./config.nice<br />
|
|
$ make<br />
|
|
$ make install<br />
|
|
$ <em>PREFIX</em>/bin/apachectl -k graceful-stop<br />
|
|
$ <em>PREFIX</em>/bin/apachectl -k start<br />
|
|
</code></p></div>
|
|
|
|
<div class="warning">You should always test any new version in your
|
|
environment before putting it into production. For example, you
|
|
can install and run the new version along side the old one by
|
|
using a different <code>--prefix</code> and a
|
|
different port (by adjusting the <code class="directive"><a href="./mod/mpm_common.html#listen">Listen</a></code> directive) to test for any
|
|
incompatibilities before doing the final upgrade.</div>
|
|
|
|
<p>You can pass additional arguments to <code>config.nice</code>,
|
|
which will be appended to your original <code class="program"><a href="./programs/configure.html">configure</a></code>
|
|
options:</p>
|
|
|
|
<div class="example"><p><code>
|
|
$ ./config.nice --prefix=/home/test/apache --with-port=90
|
|
</code></p></div>
|
|
</div></div>
|
|
<div class="bottomlang">
|
|
<p><span>Available Languages: </span><a href="./de/install.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
|
|
<a href="./en/install.html" title="English"> en </a> |
|
|
<a href="./es/install.html" hreflang="es" rel="alternate" title="Español"> es </a> |
|
|
<a href="./fr/install.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
|
|
<a href="./ja/install.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
|
|
<a href="./ko/install.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p>
|
|
</div><div id="footer">
|
|
<p class="apache">Copyright 2007 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</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> |