prefork.html.en revision ea8a727ff298d2f5368b55b7ae8d87091ae106e7
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes<?xml version="1.0" encoding="ISO-8859-1"?>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><!--
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes This file is generated from xml source: DO NOT EDIT
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes --><title>prefork - 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><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="&lt;-" alt="&lt;-" src="/images/left.gif" /></a></div><div id="path"><a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Server</a> &gt; <a href="http://httpd.apache.org/docs-project/">Documentation</a> &gt; <a href="../">Version 2.0</a> &gt; <a href="./">Modules</a></div><div id="page-content"><div id="preamble"><h1>Apache Module prefork</h1><table class="module"><tr><th><a href="module-dict.html#Description">Description:
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes </a></th><td>Implements a non-threaded, pre-forking web server</td></tr><tr><th><a href="module-dict.html#Status">Status:
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes </a></th><td>MPM</td></tr><tr><th><a href="module-dict.html#ModuleIdentifier">Module�Identifier:
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes </a></th><td>mpm_prefork_module</td></tr><tr><th><a href="module-dict.html#SourceFile">Source�File:
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes </a></th><td>prefork.c</td></tr></table><h3>Summary</h3>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes <p>This Multi-Processing Module (MPM) implements a non-threaded,
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes pre-forking web server that handles requests in a manner similar
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes to Apache 1.3. It is appropriate for sites that need to avoid
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes threading for compatibility with non-thread-safe libraries. It
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes is also the best MPM for isolating each request, so that a problem
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes with a single request will not affect any other.</p>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes <p>This MPM is very self-regulating, so it is rarely necessary to
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes adjust its configuration directives. Most important is that
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes <code class="directive"><a href="/mod/mpm_common.html#maxclients">MaxClients</a></code> be big enough to
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes handle as many simultaneous requests as you expect to receive, but
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes small enough to assure that there is enough physical RAM for all
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes processes.</p>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes</div><div id="quickview"><h3 class="directives">Directives</h3><ul id="toc"><li><img alt="" src="/images/down.gif" /> <a href="#acceptmutex">AcceptMutex</a></li>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#coredumpdirectory">CoreDumpDirectory</a></li>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#group">Group</a></li>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#listen">Listen</a></li>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#listenbacklog">ListenBacklog</a></li>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#lockfile">LockFile</a></li>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#maxclients">MaxClients</a></li>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#maxmemfree">MaxMemFree</a></li>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</a></li>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes<li><img alt="" src="/images/down.gif" /> <a href="#maxspareservers">MaxSpareServers</a></li>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes<li><img alt="" src="/images/down.gif" /> <a href="#minspareservers">MinSpareServers</a></li>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#pidfile">PidFile</a></li>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#scoreboardfile">ScoreBoardFile</a></li>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#sendbuffersize">SendBufferSize</a></li>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#serverlimit">ServerLimit</a></li>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#startservers">StartServers</a></li>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#user">User</a></li>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes</ul><h3>Topics</h3><ul id="topics"><li><img alt="" src="/images/down.gif" /> <a href="#how-it-works">How it Works</a></li></ul><h3>See also</h3><ul class="seealso"><li><a href="/bind.html">Setting which addresses and
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes ports Apache uses</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="how-it-works" id="how-it-works">How it Works</a></h2>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes <p>A single control process is responsible for launching child
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes processes which listen for connections and serve them when they
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes arrive. Apache always tries to maintain several <dfn>spare</dfn>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes or idle server processes, which stand ready to serve incoming
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes requests. In this way, clients do not need to wait for a new
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes child processes to be forked before their requests can be
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes served.</p>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes <p>The <code class="directive"><a href="/mod/mpm_common.html#startservers">StartServers</a></code>,
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes <code class="directive"><a href="#minspareservers">MinSpareServers</a></code>,
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes <code class="directive"><a href="#maxspareservers">MaxSpareServers</a></code>, and
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes <code class="directive"><a href="/mod/mpm_common.html#maxclients">MaxClients</a></code> regulate how
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes the parent process creates children to serve requests. In general,
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes Apache is very self-regulating, so most sites do not need to
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes adjust these directives from their default values. Sites which
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes need to serve more than 256 simultaneous requests may need to
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes increase <code class="directive"><a href="/mod/mpm_common.html#maxclients">MaxClients</a></code>,
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes while sites with limited memory may need to decrease <code class="directive"><a href="/mod/mpm_common.html#maxclients">MaxClients</a></code> to keep the server from
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes thrashing (swapping memory to disk and back). More information
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes about tuning process creation is provided in the <a href="/misc/perf-tuning.html">performance hints</a>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes documentation.</p>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes <p>While the parent process is usually started as root under Unix
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes in order to bind to port 80, the child processes are launched by
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes Apache as a less-privileged user. The <code class="directive"><a href="/mod/mpm_common.html#user">User</a></code> and <code class="directive"><a href="/mod/mpm_common.html#group">Group</a></code> directives are used to set
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes the privileges of the Apache child processes. The child processes
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes must be able to read all the content that will be served, but
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes should have as few privileges beyond that as possible.</p>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes <p><code class="directive"><a href="/mod/mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</a></code>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes controls how frequently the server recycles processes by killing
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes old ones and launching new ones.</p>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div><div class="directive-section"><h2><a name="AcceptMutex" id="AcceptMutex">AcceptMutex</a> <a name="acceptmutex" id="acceptmutex">Directive</a></h2><table class="directive"><tr><th><a href="directive-dict.html#Description">Description:
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes </a></th><td>Method that Apache uses to serialize multiple children
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholesaccepting requests on network sockets</td></tr><tr><th><a href="directive-dict.html#Syntax">Syntax:
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes </a></th><td><code>AcceptMutex default|<var>method</var></code></td></tr><tr><th><a href="directive-dict.html#Default">Default:
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes </a></th><td><code>AcceptMutex default</code></td></tr><tr><th><a href="directive-dict.html#Context">Context:
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes </a></th><td>server config</td></tr><tr><th><a href="directive-dict.html#Status">Status:
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes </a></th><td>MPM</td></tr><tr><th><a href="directive-dict.html#Module">Module:
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes </a></th><td>prefork</td></tr></table>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes <p>The <code class="directive">AcceptMutex</code> directives sets the
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes method that Apache uses to serialize multiple children accepting
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes requests on network sockets. Prior to Apache 2.0, the method was
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes selectable only at compile time. The optimal method to use is
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes highly architecture and platform dependent. For further details,
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes see the <a href="/misc/perf-tuning.html">performance tuning</a>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes documentation.</p>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes <p>If this directive is set to <code>default</code>, then the
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes compile-time selected default will be used. Other possible
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes methods are listed below. Note that not all methods are
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes available on all platforms. If a method is specified which is
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes not available, a message will be written to the error log
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes listing the available methods.</p>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes <dl>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes <dt><code>flock</code></dt>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes <dd>uses the <code>flock(2)</code> system call to lock the
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes file defined by the <code class="directive"><a href="/mod/mpm_common.html#lockfile">LockFile</a></code> directive.</dd>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes <dt><code>fcntl</code></dt>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes <dd>uses the <code>fnctl(2)</code> system call to lock the
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes file defined by the <code class="directive"><a href="/mod/mpm_common.html#lockfile">LockFile</a></code> directive.</dd>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes <dt><code>sysvsem</code></dt>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes <dd>uses SySV-style semaphores to implement the mutex.</dd>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes <dt><code>pthread</code></dt>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes <dd>uses POSIX mutexes as implemented by the POSIX Threads
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes (PThreads) specification.</dd>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes </dl>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div><div class="directive-section"><h2><a name="MaxSpareServers" id="MaxSpareServers">MaxSpareServers</a> <a name="maxspareservers" id="maxspareservers">Directive</a></h2><table class="directive"><tr><th><a href="directive-dict.html#Description">Description:
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes </a></th><td>Maximum number of idle child server processes</td></tr><tr><th><a href="directive-dict.html#Syntax">Syntax:
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes </a></th><td><code>MaxSpareServers <var>number</var><br /></code></td></tr><tr><th><a href="directive-dict.html#Default">Default:
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes </a></th><td><code>MaxSpareServers 10</code></td></tr><tr><th><a href="directive-dict.html#Context">Context:
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes </a></th><td>server config</td></tr><tr><th><a href="directive-dict.html#Status">Status:
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes </a></th><td>MPM</td></tr><tr><th><a href="directive-dict.html#Module">Module:
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes </a></th><td>prefork</td></tr></table>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes <p>The <code class="directive">MaxSpareServers</code> directive sets the
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes desired maximum number of <em>idle</em> child server processes. An
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes idle process is one which is not handling a request. If there are
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes more than MaxSpareServers idle, then the parent process will kill
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes off the excess processes.</p>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes <p>Tuning of this parameter should only be necessary on very
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes busy sites. Setting this parameter to a large number is almost
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes always a bad idea.</p>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes<h3>See also</h3><ul><li><code class="directive"><a href="#minspareservers">MinSpareServers</a></code></li><li><code class="directive"><a href="/mod/mpm_common.html#startservers">StartServers</a></code></li></ul></div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div><div class="directive-section"><h2><a name="MinSpareServers" id="MinSpareServers">MinSpareServers</a> <a name="minspareservers" id="minspareservers">Directive</a></h2><table class="directive"><tr><th><a href="directive-dict.html#Description">Description:
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes </a></th><td>Minimum number of idle child server processes</td></tr><tr><th><a href="directive-dict.html#Syntax">Syntax:
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes </a></th><td><code>MinSpareServers <var>number</var></code></td></tr><tr><th><a href="directive-dict.html#Default">Default:
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes </a></th><td><code>MinSpareServers 5</code></td></tr><tr><th><a href="directive-dict.html#Context">Context:
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes </a></th><td>server config</td></tr><tr><th><a href="directive-dict.html#Status">Status:
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes </a></th><td>MPM</td></tr><tr><th><a href="directive-dict.html#Module">Module:
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes </a></th><td>prefork</td></tr></table>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes <p>The <code class="directive">MinSpareServers</code> directive sets the
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes desired minimum number of <em>idle</em> child server processes. An
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes idle process is one which is not handling a request. If there are
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes fewer than MinSpareServers idle, then the parent process creates
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes new children at a maximum rate of 1 per second.</p>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes <p>Tuning of this parameter should only be necessary on very
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes busy sites. Setting this parameter to a large number is almost
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes always a bad idea.</p>
d5b12fe8ae917e654a33247fd4e59dc9e75170aebnicholes<h3>See also</h3><ul><li><code class="directive"><a href="#maxspareservers">MaxSpareServers</a></code></li><li><code class="directive"><a href="/mod/mpm_common.html#startservers">StartServers</a></code></li></ul></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>