| <?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> |
| <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> |
| <meta content="noindex, nofollow" name="robots" /> |
| <!-- |
| 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" /><link href="http://httpd.apache.org/docs/current/install.html" rel="canonical" /></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/">Documentation</a> > <a href="./">Version 2.0</a></div><div id="page-content"><div class="retired"><h4>Please note</h4> |
| <p>This document refers to the <strong>2.0</strong> version of Apache httpd, which <strong>is no longer maintained</strong>. Upgrade, and refer to the current version of httpd instead, documented at:</p> |
| <ul><li><a href="http://httpd.apache.org/docs/current/">Current release version of Apache HTTP Server documentation</a></li></ul><p>You may follow <a href="http://httpd.apache.org/docs/current/install.html">this link</a> to go to the current version of this document.</p></div><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="./ja/install.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | |
| <a href="./ko/install.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | |
| <a href="./ru/install.html" hreflang="ru" rel="alternate" title="Russian"> ru </a> | |
| <a href="./tr/install.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </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 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 <code>libtool</code> and <code>autoconf</code> |
| to create an 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.0.50 to 2.0.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-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> |
| |
| <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 (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>.</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 Usenet newsgroup <a href="news:comp.protocols.time.ntp">comp.protocols.time.ntp</a> |
| and 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 2.0.</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>Apache 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-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 class="program"><a href="./programs/configure.html">configure</a></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 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.</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 |
| 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 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>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 <a href="./">docs/manual/</a> or consult <a href="http://httpd.apache.org/docs/2.0/">http://httpd.apache.org/docs/2.0/</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 start</code></p></div> |
| |
| <p>and then you should be able to request your first document |
| via 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 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.0.55 to 2.0.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. (This is only valid for versions after 2.0.41; earlier |
| versions have incompatible changes.)</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 stop<br /> |
| $ <em>PREFIX</em>/bin/apachectl 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> |
| </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="./ja/install.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | |
| <a href="./ko/install.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | |
| <a href="./ru/install.html" hreflang="ru" rel="alternate" title="Russian"> ru </a> | |
| <a href="./tr/install.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p> |
| </div><div id="footer"> |
| <p class="apache">Copyright 2013 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> |