mpm_common.xml revision 10237492cb0500e2c0351db6e52775578a2af624
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<?xml-stylesheet type="text/xsl" href="/style/manual.xsl"?>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<modulesynopsis>
ac7985784d08a3655291f24f711812b4d8b1cbcffuankg<description>A collection of directives that are implemented by
bb2b38cd44b032118359afbc743efbea12f48e61bnicholesmore than one multi-processing module (MPM)</description>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<directivesynopsis>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<description>Sets the directory where Apache attempts to
bb2b38cd44b032118359afbc743efbea12f48e61bnicholesswitch before dumping core</description>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<syntax>CoreDumpDirectory <em>directory</em></syntax>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<default>CoreDumpDirectory <em>ServerRoot</em></default>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<contextlist><context>server config</context></contextlist>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<modulelist><module>worker</module><module>perchild</module>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes</modulelist>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes <p>This controls the directory to which Apache attempts to
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes switch before dumping core. The default is in the
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes <directive module="core">ServerRoot</directive> directory, however
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes since this should not be writable by the user the server runs
70953fb44a7140fe206c3a5f011e24209c8c5c6abnicholes as, core dumps won't normally get written. If you want a core
70953fb44a7140fe206c3a5f011e24209c8c5c6abnicholes dump for debugging, you can use this directive to place it in a
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes different location.</p>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes</directivesynopsis>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<directivesynopsis>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<description>Sets the group under which the server will answer
bb2b38cd44b032118359afbc743efbea12f48e61bnicholesrequests</description>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<contextlist><context>server config</context><context>virtual host</context>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes</contextlist>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<modulelist><module>worker</module><module>perchild</module>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes <p>The <directive>Group</directive> directive sets the group under
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes which the server will answer requests. In order to use this
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes directive, the stand-alone server must be run initially as root.
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes <p>It is recommended that you set up a new group specifically for
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes running the server. Some admins use user <code>nobody</code>,
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes but this is not always possible or desirable.</p>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes <p>Note: if you start the server as a non-root user, it will
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes fail to change to the specified group, and will instead
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes continue to run as the group of the original user.</p>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes <p>Special note: Use of this directive in <VirtualHost< is
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes no longer supported. To implement the <a
ac7985784d08a3655291f24f711812b4d8b1cbcffuankg href="/suexec.html">suEXEC wrapper</a> with Apache 2.0, use the
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes <directive module="mod_suexec">SuexecUserGroup</directive>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes directive. SECURITY: See <directive
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes module="mpm_common">User</directive> for a discussion of the
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes security considerations.</p>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes</directivesynopsis>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<directivesynopsis>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<description>Sets the file where the server records the process ID
bb2b38cd44b032118359afbc743efbea12f48e61bnicholesof the daemon</description>
ac7985784d08a3655291f24f711812b4d8b1cbcffuankg<contextlist><context>server config</context></contextlist>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<modulelist><module>worker</module><module>perchilde</module>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes</modulelist>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes <p>The <directive>PidFile</directive> directive sets the file to
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes which the server records the process id of the daemon. If the
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes filename does not begin with a slash (/) then it is assumed to be
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes relative to the <directive module="core">ServerRoot</directive>.</p>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes <p>It is often useful to be able to send the server a signal,
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes so that it closes and then reopens its <directive
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes module="core">ErrorLog</directive> and TransferLog, and
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes re-reads its configuration files. This is done by sending a
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes SIGHUP (kill -1) signal to the process id listed in the
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes PidFile.</p>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes <p>The PidFile is subject to the same warnings about log file
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes placement and <a
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes href="/misc/security_tips.html#serverroot">security</a>.</p>
ac7985784d08a3655291f24f711812b4d8b1cbcffuankg</directivesynopsis>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<directivesynopsis>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<description>Sets the IP addresses and ports that the server
bb2b38cd44b032118359afbc743efbea12f48e61bnicholeslistens to</description>
0a39e7683f6611d66c55712f50bb240428d832a1bnicholes<syntax>Listen [<em>IP-address</em>:]<em>portnumber</em></syntax>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<contextlist><context>server config</context></contextlist>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<modulelist><module>worker</module><module>perchild</module>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes</modulelist>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes <p>The <directive>Listen</directive> directive instructs Apache to
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes listen to only specific IP addresses or ports; by default it
ac7985784d08a3655291f24f711812b4d8b1cbcffuankg responds to requests on all IP interfaces. The Listen directive is
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes now a required directive. If it is not in the config file, the
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes server will fail to start. This is a change from previous versions
ac7985784d08a3655291f24f711812b4d8b1cbcffuankg of Apache.</p>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes <p>The Listen directive tells the server to accept incoming
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes requests on the specified port or address-and-port combination.
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes If only a port number is specified, the server listens to the
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes given port on all interfaces. If an IP address is given as well
ac7985784d08a3655291f24f711812b4d8b1cbcffuankg as a port, the server will listen on the given port and
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes interface.</p>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes <p>Multiple Listen directives may be used to specify a number
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes of addresses and ports to listen to. The server will respond to
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes requests from any of the listed addresses and ports.</p>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes <p>For example, to make the server accept connections on both
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes port 80 and port 8000, use:</p>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes Listen 80<br />
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes To make the server accept connections on two specified
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes interfaces and port numbers, use
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes Listen 192.170.2.1:80<br />
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes Listen 192.170.2.5:8000
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes IPv6 addresses must be surrounded in square brackets, as in the
ac7985784d08a3655291f24f711812b4d8b1cbcffuankg following example:
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes Listen [fe80::a00:20ff:fea7:ccea]:80
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<seealso><a href="/dns-caveats.html">DNS Issues</a></seealso>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes which addresses and ports Apache uses</a></seealso>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes</directivesynopsis>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<directivesynopsis>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<description>Maximum length of the queue of pending connections</description>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<contextlist><context>server config</context></contextlist>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<modulelist><module>worker</module><module>perchild</module>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes</modulelist>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes <p>The maximum length of the queue of pending connections.
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes Generally no tuning is needed or desired, however on some
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes systems it is desirable to increase this when under a TCP SYN
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes flood attack. See the backlog parameter to the
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes <p>This will often be limited to a smaller number by the
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes operating system. This varies from OS to OS. Also note that
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes many OSes do not use exactly what is specified as the backlog,
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes but use a number based on (but normally larger than) what is
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes</directivesynopsis>
ac7985784d08a3655291f24f711812b4d8b1cbcffuankg<directivesynopsis>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<description>Location of the accept serialization lock file</description>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<contextlist><context>server config</context></contextlist>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<modulelist><module>worker</module><module>perchild</module>
9046ab142ed19505e034af0afb8c15be512b8526bnicholes <p>The <directive>LockFile</directive> directive sets the path to
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes the lockfile used when Apache is compiled with either
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes USE_FCNTL_SERIALIZED_ACCEPT or USE_FLOCK_SERIALIZED_ACCEPT. This
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes directive should normally be left at its default value. The main
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes reason for changing it is if the <code>logs</code> directory is
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes NFS mounted, since <strong>the lockfile must be stored on a local
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes disk</strong>. The PID of the main server process is
ac7985784d08a3655291f24f711812b4d8b1cbcffuankg automatically appended to the filename.</p>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes <p><strong>SECURITY:</strong> It is best to avoid putting this
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes file in a world writable directory such as
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes <code>/var/tmp</code> because someone could create a denial of
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes service attack and prevent the server from starting by creating
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes a lockfile with the same name as the one the server will try to
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes</directivesynopsis>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<directivesynopsis>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<description>Maximum number of child processes that will be created
bb2b38cd44b032118359afbc743efbea12f48e61bnicholesto serve requests</description>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<default>>MaxClients
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes 8 (with threads) MaxClients 256</default>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<contextlist><context>server config</context></contextlist>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<modulelist><module>worker</module><module>prefork</module>
ac7985784d08a3655291f24f711812b4d8b1cbcffuankg</modulelist>
609ef720afd62ca63391c9fdb415cd2faf29aa46bnicholes <p>The <directive>MaxClients</directive> directive sets the limit
ac7985784d08a3655291f24f711812b4d8b1cbcffuankg on the number of child processes that will be created to serve
609ef720afd62ca63391c9fdb415cd2faf29aa46bnicholes requests. When the server is built without threading, no more than
ac7985784d08a3655291f24f711812b4d8b1cbcffuankg this number of clients can be served simultaneously. To configure
ac7985784d08a3655291f24f711812b4d8b1cbcffuankg more than 256 clients with the prefork MPM, you must use the
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes <directive module="mpm_common">ServerLimit</directive> directive.
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes To configure more than 1024 clients with the worker MPM, you must
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes use the <directive module="mpm_common">ServerLimit</directive> and
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes <directive module="mpm_common">ThreadLimit</directive> directives.</p>
ac7985784d08a3655291f24f711812b4d8b1cbcffuankg <p>Any connection attempts over the
ac7985784d08a3655291f24f711812b4d8b1cbcffuankg <directive>MaxClients</directive> limit will normally be queued,
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes up to a number based on the <directive module="mpm_common"
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes >ListenBacklog</directive> directive. Once a child
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes process is freed at the end of a different request, the connection
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes will then be serviced.</p>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes <p>When the server is compiled with threading, then the maximum
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes number of simultaneous requests that can be served is obtained
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes from the value of this directive multiplied by
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes <directive module="mpm_common">ThreadsPerChild</directive>.</p>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes</directivesynopsis>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<directivesynopsis>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<description>Limit on the number of requests that an individual child server
ac7985784d08a3655291f24f711812b4d8b1cbcffuankgwill handle during its life</description>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<syntax>MaxRequestsPerChild <em>number</em></syntax>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes<contextlist><context>server config</context></contextlist>
f2f3f241c00a7a4bd597e57a19023940e072918abnicholes<modulelist><module>worker</module><module>perchild</module>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes</modulelist>
8410c53aaf5e0372a19d5f4d2bc696b9c609ce3cbnicholes <p>The <directive>MaxRequestsPerChild</directive> directive sets
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes the limit on the number of requests that an individual child
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes server process will handle. After
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes <directive>MaxRequestsPerChild</directive> requests, the child
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes process will die. If <directive>MaxRequestsPerChild</directive> is
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes 0, then the process will never expire.</p>
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes <p>Setting <directive>MaxRequestsPerChild</directive> to a
bb2b38cd44b032118359afbc743efbea12f48e61bnicholes non-zero limit has two beneficial effects:</p>