on Unix and Unix-like systems only. For compiling and
installation on Windows, see <a
href="platform/windows.html">Using Apache HTTP Server with Microsoft
- Windows</a>. For other platforms, see the <a
+ Windows</a> and <a
+ href="platform/win_compiling.html">Compiling Apache for 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>
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
+ example, 2.4.8 to 2.4.9), please skip down to the <a
href="#upgrading">upgrading</a> section.</p>
</summary>
<tr>
<td><a href="#download">Download</a></td>
- <td><code>$ lynx http://httpd.apache.org/download.cgi</code>
+ <td>Download the latest release from <a href="http://httpd.apache.org/download.cgi#apache24">http://httpd.apache.org/download.cgi</a>
</td>
</tr>
<p>The following requirements exist for building Apache httpd:</p>
<dl>
+ <dt>APR and APR-Util</dt>
+ <dd>Make sure you have APR and APR-Util already installed on
+ your system. If you don't, or prefer to not use the system-provided
+ versions, download the latest versions of both APR and APR-Util
+ from <a href="http://apr.apache.org/">Apache APR</a>, unpack
+ them into <code>/httpd_source_tree_root/srclib/apr</code> and /httpd_source_tree_root<code>/srclib/apr-util</code>
+ (be sure the directory names do not have version numbers; for example,
+ the APR distribution must be under /httpd_source_tree_root/srclib/apr/) and use
+ <code>./configure</code>'s <code>--with-included-apr</code>
+ option. On some platforms, you may have to install the
+ corresponding <code>-dev</code> packages to allow httpd to build
+ against your installed copy of APR and APR-Util.</dd>
+
+ <dt>Perl-Compatible Regular Expressions Library (PCRE)</dt>
+ <dd>This library is required but not longer bundled with httpd.
+ Download the source code from <a href="http://www.pcre.org/">http://www.pcre.org</a>,
+ or install a Port or Package. If your build system can't find
+ the pcre-config script installed by the PCRE build, point to it
+ using the <code>--with-pcre</code> parameter. On some platforms,
+ you may have to install the corresponding <code>-dev</code>
+ package to allow httpd to build against your installed copy
+ of PCRE.</dd>
+
<dt>Disk Space</dt>
<dd>Make sure you have at least 50 MB of temporary free disk
space available. After installation the server 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>
+ configuration options, any third-party modules, and, of course,
+ the size of the web site or sites that you have on the server.</dd>
<dt>ANSI-C Compiler and Build System</dt>
<dd>Make sure you have an ANSI-C compiler installed. The <a
<dd>For some of the support scripts like <program>
apxs</program> or <program>dbmmanage</program> (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 <program>configure</program>.
- If no Perl 5 interpreter is found by the
- <program>configure</program> script, you will not be able to use
- the affected support scripts. Of course, you will still be able to
+ 5.003 or newer are sufficient). If no Perl 5 interpreter is found by the
+ <program>configure</program> 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>
</section>
<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
+ href="mod/">modules</a>. Apache comes with a wide range of modules
+ included by default. They will be compiled as
+ <a href="dso.html">shared objects (DSOs)</a> which can be loaded
+ or unloaded at runtime.
+ You can also choose to compile modules statically by using the option
+ <code>--enable-<var>module</var>=static</code>.</p>
+
+ <p>Additional 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-mods-shared</code>. Similarly, you can
- disable Base modules with the
+ to a dash. Similarly, you can disable modules with the
<code>--disable-<var>module</var></code> option. Be careful when
using these options, since <program>configure</program> cannot warn you
if the module you specify does not exist; it will simply ignore the
<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 <module>mod_rewrite</module> and
- <module>mod_speling</module> for
- later loading through the DSO mechanism:</p>
+ plus the two additional modules <module>mod_ldap</module> and
+ <module>mod_lua</module>:</p>
<example>
$ CC="pgcc" CFLAGS="-O2" \<br />
./configure --prefix=/sw/pkg/apache \<br />
- --enable-rewrite \<br />
- --enable-speling \<br />
- --enable-mods-shared="rewrite speling"
+ --enable-ldap=shared \<br />
+ --enable-lua=shared
</example>
<p>When <program>configure</program> is run it will take several minutes to
<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>
+ have enabled.</p>
</section>
<section id="install"><title>Install</title>
<example>$ vi <em>PREFIX</em>/conf/httpd.conf</example>
- <p>Have a look at the Apache manual under
+ <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/&httpd.docs;/"
>http://httpd.apache.org/docs/&httpd.docs;/</a> for the most recent
<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),
+ major releases (for example, from 2.0 to 2.2 or from 2.2 to 2.4),
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
+ modules will also need to be upgraded to accommodate changes in the
module API.</p>
<p>Upgrading from one minor version to the next (for example, from
$ ./config.nice --prefix=/home/test/apache --with-port=90
</example>
</section>
+<section id="thirdp"><title>Third-party packages</title>
+
+ <p>A large number of third parties provide their own packaged
+ distributions of the Apache HTTP Server for installation on
+ particular platforms. This includes the various Linux distributions,
+ various third-party Windows packages, Mac OS X, Solaris, and many
+ more.</p>
+
+ <p>Our software license not only permits, but encourages, this kind
+ of redistribution. However, it does result in a situation where the
+ configuration layout and defaults on your installation of the server
+ may differ from what is stated in the documentation. While
+ unfortunate, this situation is not likely to change any time
+ soon.</p>
+
+ <p>A <a
+ href="http://wiki.apache.org/httpd/DistrosDefaultLayout">description
+ of these third-party distrubutions</a> is maintained in the HTTP
+ Server wiki, and should reflect the current state of these
+ third-party distributions. However, you will need to familiarize
+ yourself with your particular platform's package management and
+ installation procedures.</p>
+
+</section>
</manualpage>