<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "/style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="/style/manual.en.xsl"?>
<!-- $LastChangedRevision$ -->
<!--
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
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<manualpage metafile="server-wide.xml.meta">
<title>Server-Wide Configuration</title>
<summary>
<p>This document explains some of the directives provided by
the <module>core</module> server which are used to configure
the basic operations of the server.</p>
</summary>
<section id="identification">
<title>Server Identification</title>
<related>
<directivelist>
<directive module="core">ServerName</directive>
<directive module="core">ServerAdmin</directive>
<directive module="core">ServerSignature</directive>
<directive module="core">ServerTokens</directive>
<directive module="core">UseCanonicalName</directive>
<directive module="core">UseCanonicalPhysicalPort</directive>
</directivelist>
</related>
<p>The <directive module="core">ServerAdmin</directive> and
<directive module="core">ServerTokens</directive> directives
control what information about the server will be presented
in server-generated documents such as error messages. The
<directive module="core">ServerTokens</directive> directive
sets the value of the Server HTTP response header field.</p>
<p>The <directive module="core">ServerName</directive>,
<directive module="core">UseCanonicalName</directive> and
<directive module="core">UseCanonicalPhysicalPort</directive>
directives are used by the server to determine how to construct
self-referential URLs. For example, when a client requests a
directory, but does not include the trailing slash in the
directory name, httpd must redirect the client to the full
name including the trailing slash so that the client will
correctly resolve relative references in the document.</p>
</section>
<section id="locations">
<title>File Locations</title>
<related>
<directivelist>
<directive module="mpm_common">CoreDumpDirectory</directive>
<directive module="core">DocumentRoot</directive>
<directive module="core">ErrorLog</directive>
<directive module="core">Mutex</directive>
<directive module="mpm_common">PidFile</directive>
<directive module="mpm_common">ScoreBoardFile</directive>
<directive module="core">ServerRoot</directive>
</directivelist>
</related>
<p>These directives control the locations of the various files
that httpd needs for proper operation. When the pathname used
does not begin with a slash (/), the files are located relative
to the <directive module="core">ServerRoot</directive>. Be careful
about locating files in paths which are writable by non-root users.
See the <a href="misc/security_tips.html#serverroot">security tips</a>
documentation for more details.</p>
</section>
<section id="resource">
<title>Limiting Resource Usage</title>
<related>
<directivelist>
<directive module="core">LimitRequestBody</directive>
<directive module="core">LimitRequestFields</directive>
<directive module="core">LimitRequestFieldsize</directive>
<directive module="core">LimitRequestLine</directive>
<directive module="core">RLimitCPU</directive>
<directive module="core">RLimitMEM</directive>
<directive module="core">RLimitNPROC</directive>
<directive module="mpm_common">ThreadStackSize</directive>
</directivelist>
</related>
<p>The <directive>LimitRequest</directive>*
directives are used to place limits on the amount of resources
httpd will use in reading requests from clients. By limiting
these values, some kinds of denial of service attacks can be
mitigated.</p>
<p>The <directive>RLimit</directive>* directives
are used to limit the amount of resources which can be used by
processes forked off from the httpd children. In particular,
this will control resources used by CGI scripts and SSI exec
commands.</p>
<p>The <directive module="mpm_common">ThreadStackSize</directive>
directive is used with some platforms to control the stack size.</p>
</section>
<section id="implementation">
<title>Implementation Choices</title>
<related>
<directivelist>
<directive module="core">Mutex</directive>
</directivelist>
</related>
<p>The <directive>Mutex</directive> directive can be used to change
the underlying implementation used for mutexes, in order to relieve
functional or performance problems with <glossary>APR</glossary>'s
default choice.</p>
</section>
</manualpage>