<!-- $LastChangedRevision$ -->
<!--
- Copyright 2003-2005 The Apache Software Foundation or its licensors,
- as applicable.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
<p>This script, included in the root directory of the source
distribution, is for compilation on Unix and Unix-like systems
only. For other platforms, see the <a
- href="../platform/">platform</a> documentation.</p>
+ href="../platform/">platform</a> documentation.</p>
</summary>
<seealso><a href="../install.html">Compiling and Installing</a></seealso>
<dt><code>--srcdir=<var>DIR</var></code></dt>
<dd>Defines directory <var>DIR</var> to be the source file directory.
- Default is the directory, where configure is located, or the parent
- directory <code>..</code>.</dd>
+ Default is the directory where <code>configure</code> is located, or
+ the parent directory.</dd>
<dt><code>--silent</code></dt>
<dd>Same as <code>--quiet</code></dd>
</dl>
</section>
- <section id="installationdirectories"><title>Installation
+ <section id="installationdirectories"><title>Installation
directories</title>
<p>These options define the installation directory. The installation
<section id="directoryfinetuning"><title>Fine tuning of the installation
directories</title>
-
+
<p>For better control of the installation directories, use the options
below. Please note that the directory defaults are set by
- <code>autoconf</code> and be overwritten by the corresponding layout
+ <code>autoconf</code> and are overwritten by the corresponding layout
setting.</p>
<dl>
By default <code>infodir</code> is set to
<code><var>PREFIX</var>/info</code>. This option is currently
unused.</dd>
-
+
<dt><code>--libdir=<var>DIR</var></code></dt>
<dd>Install object code libraries in <var>DIR</var>. By default
<code>libdir</code> is set to
<code>autoconf</code> and currently unused.</dd>
<dt><code>--mandir=<var>DIR</var></code></dt>
- <dd>Install the man documentation in <var>DIR</var>. By default
+ <dd>Install the man documentation in <var>DIR</var>. By default
<code>mandir</code> is set to
<code><var>EPREFIX</var>/man</code>.</dd>
-
+
<dt><code>--oldincludedir=<var>DIR</var></code></dt>
<dd>Install C header files for non-gcc in <var>DIR</var>.
By default <code>oldincludedir</code> is set to
<code>/usr/include</code>. This option is offered by
<code>autoconf</code> and currently unused.</dd>
-
+
<dt><code>--sbindir=<var>DIR</var></code></dt>
<dd>Install the system administrator executables in <var>DIR</var>.
Those are server programs like <program>httpd</program>,
<dd>Install read-only single-machine data like the server configuration
files <code>httpd.conf</code>, <code>mime.types</code>, etc. in
<var>DIR</var>. By default <code>sysconfdir</code> is set to
- <code><var>PREFIX</var>/etc</code>.</dd>
- </dl>
+ <code><var>PREFIX</var>/conf</code>.</dd>
+ </dl>
</section>
</section>
-
+
<section id="systemtypes"><title>System types</title>
<p>These options are used to cross-compile the Apache HTTP Server to run on
<code>--enable-<var>FEATURE</var>=no</code>.</dd>
<dt><code>--enable-<var>FEATURE</var>[=<var>ARG</var>]</code></dt>
- <dd>Include <var>FEATURE</var>. The default value for <var>ARG</var>
+ <dd>Include <var>FEATURE</var>. The default value for <var>ARG</var>
is <code>yes</code>.</dd>
<dt><code>--enable-<var>MODULE</var>=shared</code></dt>
<dd>The corresponding module will be build as DSO module.</dd>
<dt><code>--enable-<var>MODULE</var>=static</code></dt>
- <dd>By default enabled modules are linked statically. You can force
+ <dd>By default enabled modules are linked statically. You can force
this explicitly.</dd>
</dl>
<p>Some modules are compiled by default and have to be disabled
explicitly. Use the following options to remove discrete modules from
the compilation process.</p>
-
+
<dl>
<dt><code>--disable-actions</code></dt>
<dd>Disable action triggering on requests, which is provided by
<dt><code>--disable-auth</code></dt>
<dd>Disable user-based access control provided by
- <module>mod_auth</module>. This module provides for HTTP Basic
+ <module>mod_authn_file</module>. This module provides for HTTP Basic
Authentication, where the usernames and passwords are stored in
plain text files.</dd>
<dt><code>--disable-access</code></dt>
<dd>Disable host-based access control provided by
- <module>mod_access</module>.</dd>
+ <module>mod_authz_host</module>.</dd>
<dt><code>--disable-cgi</code></dt>
<dd><module>mod_cgi</module>, which provides support for CGI scripts,
is enabled by default when using a non-threaded MPM. Use this
option to disable CGI support.</dd>
-
+
<dt><code>--disable-cgid</code></dt>
- <dd>When using the threaded MPMs <module>worker</module> or
- <module>perchild</module> support for CGI scripts is provided by
- <module>mod_cgid</module> by default. To disable CGI support use
- this option.</dd>
+ <dd>When using the threaded MPM <module>worker</module>,
+ support for CGI scripts is provided by <module>mod_cgid</module>
+ by default. To disable CGI support use this option.</dd>
<dt><code>--disable-charset-lite</code></dt>
<dd>Disable character set translation provided by
<module>mod_dir</module>.</dd>
<dt><code>--disable-env</code></dt>
- <dd>Enable setting and clearing of environment variables, which is
+ <dd>Disable setting and clearing of environment variables, which is
provided by <module>mod_env</module>.</dd>
<!-- configure mentions enable-http, but disable-http would make much
another protocol module instead. <strong>Don't disable this
module unless you are really sure what you are doing.</strong>
<br/>
- Note: This module will always be linked statically.</dd>
+ Note: This module will always be linked statically.</dd>
- <dt><code>--disable-imap</code></dt>
+ <dt><code>--disable-imagemap</code></dt>
<dd>Disable support for server based imagemaps, which provided by
- <module>mod_imap</module>.</dd>
+ <module>mod_imagemap</module>.</dd>
<dt><code>--disable-include</code></dt>
<dd>Disable Server Side Includes provided by
to the server without this module.</dd>
<dt><code>--disable-mime</code></dt>
- <dd><module>mod_mime</module> associates the requested filename's
- extensions with the file's behavior and content (mime-type,
- language, character set and encoding). Disabling the mapping of
- file-extensions to MIME is normally not recommended.</dd>
+ <dd><module>mod_mime</module> associates the requested
+ filename's extensions with the file's behavior and content
+ (<glossary>mime-type</glossary>, language, character set and
+ encoding). Disabling this module is normally not recommended.</dd>
<dt><code>--disable-negotiation</code></dt>
<dd>Disable content negotiation provided by
which is provided by <module>mod_setenvif</module>.</dd>
<dt><code>--disable-status</code></dt>
- <dd>Enable the process/thread monitoring, which is provided by
+ <dd>Disable the process/thread monitoring, which is provided by
<module>mod_status</module>.</dd>
<dt><code>--disable-userdir</code></dt>
below.</p>
<dl>
- <dt><code>--enable-auth-anon</code></dt>
+ <dt><code>--enable-authn-anon</code></dt>
<dd>Enable anonymous user access provided by
- <module>mod_auth_anon</module>.</dd>
+ <module>mod_authn_anon</module>.</dd>
- <dt><code>--enable-auth-dbm</code></dt>
- <dd><module>mod_auth_dbm</module> provides for HTTP Basic
+ <dt><code>--enable-authn-dbm</code></dt>
+ <dd><module>mod_authn_dbm</module> provides for HTTP Basic
Authentication, where the usernames and passwords are stored in DBM
type database files. Use this option to enable the module.</dd>
+ <dt><code>--enable-authz-dbm</code></dt>
+ <dd><module>mod_authz_dbm</module> provides for HTTP Basic
+ Authorization, where the usernames and groups are stored in DBM
+ type database files. Use this option to enable the module.</dd>
+
<dt><code>--enable-auth-digest</code></dt>
<dd>Enable RFC2617 Digest authentication provided by
<module>mod_auth_digest</module>. This module uses plain text files
<dt><code>--enable-authnz-ldap</code></dt>
<dd>Enable LDAP based authentication provided by
<module>mod_authnz_ldap</module>.</dd>
-
+
<dt><code>--enable-cache</code></dt>
<dd>Enable dynamic file caching provided by
<module>mod_cache</module>. This experimental module may be
interesting for servers with high load or caching proxy servers. At
least one storage management module (e.g.
- <module>mod_disk_cache</module> or <module>mod_mem_cache</module>)
- is also necessary.</dd>
+ <module>mod_disk_cache</module>) is also necessary.</dd>
<dt><code>--enable-cern-meta</code></dt>
<dd>Enable the CERN-type meta files support provided by
<dt><code>--enable-dav</code></dt>
<dd>Enable the WebDAV protocol handling provided by
<module>mod_dav</module>. Support for filesystem resources is
- provided by the seperate module <module>mod_dav_fs</module>. This
+ provided by the separate module <module>mod_dav_fs</module>. This
module is also automatically enabled with
<code>--enable-dav</code>.<br/>
Note: <module>mod_dav</module> can only be used together with the
<dd>Enable DAV support for filesystem resources, which is provided by
<module>mod_dav_fs</module>. This module is a provider for the
<module>mod_dav</module> module, so you should also use
- <code>--enable-dav</code>.</dd>
+ <code>--enable-dav</code>.</dd>
<dt><code>--enable-dav-lock</code></dt>
<dd>Enable <module>mod_dav_lock</module> which provides generic DAV
<module>mod_disk_cache</module>.</dd>
<dt><code>--enable-expires</code></dt>
- <dd>Enable Expires header control provided by
+ <dd>Enable <code>Expires</code> header control provided by
<module>mod_expires</module>.</dd>
<dt><code>--enable-ext-filter</code></dt>
<dd>Enable logging of input and output bytes including headers provided
by <module>mod_logio</module>.</dd>
- <dt><code>--enable-mem-cache</code></dt>
- <dd>Enable memory caching provided by
- <module>mod_mem_cache</module>.</dd>
-
<dt><code>--enable-mime-magic</code></dt>
- <dd>Enable automatical determining of MIME types, which is provided by
- <module>mod_mime_magic</module>.</dd>
+ <dd>Enable
+ automatical determining of <glossary ref="mime-type">MIME
+ types</glossary>, which is provided by
+ <module>mod_mime_magic</module>.</dd>
<dt><code>--enable-isapi</code></dt>
<dd>Enable the isapi extension support provided by
<dd>Enable the proxy/gateway functionality provided by
<module>mod_proxy</module>. The proxying capabilities for
<code>AJP13</code>, <code>CONNECT</code>, <code>FTP</code>,
- <code>HTTP</code> and the balancer are provided by the seperate
+ <code>HTTP</code> and the balancer are provided by the separate
modules <module>mod_proxy_ajp</module>,
<module>mod_proxy_connect</module>, <module>mod_proxy_ftp</module>,
<module>mod_proxy_http</module> and
<!-- module doc needed -->
<dt><code>--enable-optional-fn-export</code></dt>
<dd>Enable the example for an optional function exporter, which is
- provided by <code>mod_optional_fn_export</code>.</dd>
+ provided by <code>mod_optional_fn_export</code>.</dd>
<!-- module doc needed -->
<dt><code>--enable-optional-fn-import</code></dt>
</dl>
</section>
- <section id="modules"><title>MPMs and third-party modules</title>
- <p>To add the necessary Multi Processing Module and additional third-party
- modules use the following options:</p>
+ <section id="mpms"><title>Multi-Processing Modules</title>
+ <p><a href="../mpm.html">Multi-Processing Modules</a>, or MPMs, implement
+ the basic behavior of the server. A single MPM must be active in order
+ for the server to function. The list of available MPMs appears on the
+ <a href="../mod/">module index page</a>.</p>
+
+ <p>MPMs can be built as DSOs for dynamic loading or statically linked with
+ the server, and are enabled using the following options:</p>
+
+ <dl>
+ <dt><code>--with-mpm=MPM</code></dt>
+ <dd>
+ <p>Choose the default MPM for your server. If MPMs are built as DSO
+ modules (see <code>--enable-mpms-shared</code>), this directive
+ selects the MPM which will be loaded in the default configuration
+ file. Otherwise, this directive selects the only available MPM,
+ which will be statically linked into the server.</p>
+ <p>If this option is omitted, the <a href="../mpm.html#defaults">default
+ MPM</a> for your operating system will be used.</p>
+ </dd>
+
+ <dt><code>--enable-mpms-shared=<var>MPM-LIST</var></code></dt>
+ <dd>
+ <p>Enable a list of MPMs as dynamic shared modules. One of these
+ modules must be loaded dynamically using the
+ <directive module="mod_so">LoadModule</directive> directive.</p>
+ <p><var>MPM-LIST</var> is a space-separated list of MPM names
+ enclosed by quotation marks. For example:</p>
+ <example>
+ --enable-mpms-shared='prefork worker'
+ </example>
+ <p>Additionally you can use the special keyword <code>all</code>,
+ which will select all MPMs which support dynamic loading on the
+ current platform and build them as DSO modules. For example:</p>
+ <example>
+ --enable-mpms-shared=all
+ </example>
+ </dd>
+ </dl>
+ </section>
+
+ <section id="modules"><title>Third-party modules</title>
+ <p>To add additional third-party modules use the following options:</p>
<dl>
<dt><code>--with-module=<var>module-type</var>:<var>module-file</var>[,
If you want to build a DSO module instead of a statically linked
use <program>apxs</program>.</note>
</dd>
-
- <dt><code>--with-mpm=MPM</code></dt>
- <dd>Choose the process model for your server. You have to select
- exactly one <a href="../mpm.html">Multi-Processing Module</a>.
- Otherwise the <a href="../mpm.html#defaults">default MPM</a> for
- your operating system will be taken. Possible MPMs are
- <module>beos</module>, <module>leader</module>,
- <module>mpmt_os2</module>, <module>perchild</module>,
- <module>prefork</module>, <module>threadpool</module> and
- <module>worker</module>.</dd>
</dl>
</section>
<p>will compile most modules and build them as DSO modules.
<!-- See <a href="../install/enabledmodules.html">Overview of
enabled modules</a> for further information. --></p>
+ <p><strong>Caveat:</strong>
+ <code>--enable-mods-shared=all</code> does not actually build all
+ modules. To build all modules then, one might use:</p>
+ <example>
+ ./configure \<br />
+ <indent>
+ --with-ldap \<br />
+ --enable-mods-shared="all ssl ldap cache proxy authn_alias file_cache authnz_ldap charset_lite dav_lock disk_cache"
+ </indent>
+ </example>
</dd>
-
+
<dt><code>--enable-modules=<var>MODULE-LIST</var></code></dt>
- <dd>This option behaves similar to <code>--enable-mods-shared</code>,
+ <dd>This option behaves similar to <code>--enable-mods-shared</code>,
but will link the given modules statically. This mean, these modules
will always be present while running <program>httpd</program>. They need
not be loaded with <directive
<dl>
<dt><code>--with-<var>PACKAGE</var>[=<var>ARG</var>]</code></dt>
<dd>Use the package <var>PACKAGE</var>. The default value for
- <var>ARG</var> is<code>yes</code>.</dd>
+ <var>ARG</var> is <code>yes</code>.</dd>
<dt><code>--without-<var>PACKAGE</var></code></dt>
<dd>Do not use the package <var>PACKAGE</var>. This is the same as
</dl>
</section>
- <!-- options not known are passed to packasges?
+ <!-- options not known are passed to packages?
are there other important options for packages? -->
<section id="packageopt"><title>Specific packages</title>
<dl>
<dt><code>--with-apr=<var>DIR</var>|<var>FILE</var></code></dt>
- <dd>The Apache Portable Runtime (APR) is part of the httpd
+ <dd>The <glossary ref="apr">Apache Portable Runtime</glossary> (APR)
+ is part of the httpd
source distribution and will automatically be build together with the
HTTP server. If you want to use an already installed APR instead you
have to tell <code>configure</code> the path to the
<code>apr-config</code> script. You may set the absolute path and name
or the directory to the installed APR. <code>apr-config</code> must
- exists within this directory or the subdirectory
+ exist within this directory or the subdirectory
<code>bin</code>.</dd>
-
+
<dt><code>--with-apr-util=<var>DIR</var>|<var>FILE</var></code></dt>
<dd>The Apache Portable Runtime Utilities (APU) are part of the
httpd source distribution and will automatically be build
APU instead you have to tell <code>configure</code> the path to the
<code>apu-config</code> script. You may set the absolute path and name
or the directory to the installed APU. <code>apu-config</code> must
- exists within this directory or the subdirectory
+ exist within this directory or the subdirectory
<code>bin</code>.</dd>
<dt><code>--with-ssl=<var>DIR</var></code></dt>
in the APU, so this database is always available. If you would like to
use other database types, use the following options to enable
them:</p>
-
+
<dl>
<dt><code>--with-gdbm[=<var>path</var>]</code></dt>
<dd>If no <var>path</var> is specified, <code>configure</code> will
<code><var>path</var>/include</code> for the relevant files.
Finally, the <var>path</var> may specify specific include and
library paths separated by a colon.</dd>
-
+
<dt><code>--with-ndbm[=<var>path</var>]</code></dt>
- <dd>Like <code>--with-gdbm</code>, bur searches for a New DBM
+ <dd>Like <code>--with-gdbm</code>, but searches for a New DBM
installation.</dd>
-
+
<dt><code>--with-berkeley-db[=<var>path</var>]</code></dt>
<dd>Like <code>--with-gdbm</code>, but searches for a Berkeley DB
installation.</dd>
</note>
</section>
</section>
-
+
<section id="supportopt"><title>Options for support programs</title>
<dl>
<dt><code>--enable-static-support</code></dt>
option unless you understand all the security implications of
running a suid binary on your server.</strong> Further options
to configure <program>suexec</program> are described <a
- href="#suexec">below</a>.</dd> </dl>
+ href="#suexec">below</a>.</dd>
+ </dl>
<p>It is possible to create a statically linked binary of a single
support program by using the following options:</p>
<dt><code>--enable-static-checkgid</code></dt>
<dd>Build a statically linked version of <code>checkgid</code>.</dd>
- <!-- missing documentation for htdbm -->
<dt><code>--enable-static-htdbm</code></dt>
- <dd>Build a statically linked version of <code>htdbm</code>.</dd>
+ <dd>Build a statically linked version of <program>
+ htdbm</program>.</dd>
<dt><code>--enable-static-htdigest</code></dt>
<dd>Build a statically linked version of <program>
htdigest</program>.</dd>
-
+
<dt><code>--enable-static-htpasswd</code></dt>
<dd>Build a statically linked version of <program>
htpasswd</program>.</dd>
rotatelogs</program>.</dd>
</dl>
- <section id="suexec"><title>suexec configuration options</title>
+ <section id="suexec">
+ <title><code>suexec</code> configuration options</title>
<p>The following options are used to fine tune the behavior of <program>
suexec</program>. See <a
href="suexec.html#install">Configuring and installing suEXEC</a>
<dl>
<dt><code>--with-suexec-bin</code></dt>
- <dd>This defines the path to suexec binary. Default is
- <code>--sbindir</code> (see <a href="directoryfinetuning">Fine
- tuning of installation directories</a>).</dd>
+ <dd>This defines the path to <program>suexec</program> binary.
+ Default is <code>--sbindir</code> (see <a href="#directoryfinetuning"
+ >Fine tuning of installation directories</a>).</dd>
<dt><code>--with-suexec-caller</code></dt>
<dd>This defines the user allowed to call <program>suexec</program>.
- It should be the same as the user under which <program>httpd</program>
- normally runs.</dd>
+ It should be the same as the user under which
+ <program>httpd</program> normally runs.</dd>
<dt><code>--with-suexec-docroot</code></dt>
<dd>This defines the directory tree under which <program>
<dt><code>LDFLAGS</code></dt>
<dd>Set linker flags, e.g. <code>-L<var>libdir</var></code> if you have
- libraries in a nonstandard directory <var>libdir</var>.</dd>
+ libraries in a nonstandard directory <var>libdir</var>.</dd>
</dl>
</section>
</manualpage>