<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>Server-Wide Configuration</TITLE>
</HEAD>

<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
<BODY
 BGCOLOR="#FFFFFF"
 TEXT="#000000"
 LINK="#0000FF"
 VLINK="#000080"
 ALINK="#FF0000"
>
<!--#include virtual="header.html" -->
<h1 align="center">Server-Wide Configuration</h1>

<p>This document explains some of the directives provided by the
<a href="mod/core.html">core</A> server which are used to configure
the basic operations of the server.</p>

<ul>
<li><a href="#identification">Server Identification</a></li>
<li><a href="#locations">File Locations</a></li>
<li><a href="#resource">Limiting Resource Usage</a></li>
</ul>

<hr>

<h2><a name="identification">Server Identification</a></h2>

<table border="1">
<tr><td valign="top">
<strong>Related Directives</strong><br><br>

<A HREF="mod/core.html#servername">ServerName</A><br>
<A HREF="mod/core.html#serveradmin">ServerAdmin</A><br>
<A HREF="mod/core.html#serversignature">ServerSignature</A><br>
<A HREF="mod/core.html#servertokens">ServerTokens</A><br>
<A HREF="mod/core.html#usecanonicalname">UseCanonicalName</A><br>
</td></tr></table>

<p>The <code>ServerAdmin</code> and <code>ServerTokens</code>
directives control what information about the server will be presented
in server-generated documents such as error messages.
The <code>ServerTokens</code> directive sets the value of the 
Server HTTP response header field.</p>

<p>The <code>ServerName</code> and <code>UseCanonicalName</code>
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, Apache 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>

<hr>

<h2><a name="locations">File Locations</a></h2>

<table border="1">
<tr><td valign="top">
<strong>Related Directives</strong><br><br>

<a href="mod/core.html#coredumpdirectory">CoreDumpDirectory</a><br>
<a href="mod/core.html#documentroot">DocumentRoot</a><br>
<a href="mod/core.html#errorlog">ErrorLog</a><br>
<a href="mod/core.html#lockfile">Lockfile</a><br>
<a href="mod/core.html#pidfile">PidFile</a><br>
<a href="mod/core.html#scoreboardfile">ScoreBoardFile</a><br>
<a href="mod/core.html#serverroot">ServerRoot</a><br>
</td></tr></table>

<p>These directives control the locations of the various files that
Apache needs for proper operation.  When the pathname used does not
begin with a slash "/", the files are located relative to the
<code>ServerRoot</code>.  Be careful about locating files in paths
which are writable by non-root users.  See the <a
href="misc/security_tips.html">security tips</a> documentation for
more details.</p>

<hr>
<h2><a name="resource">Limiting Resource Usage</a></h2>
<table border="1">
<tr><td valign="top">
<strong>Related Directives</strong><br><br>

<a href="mod/core.html#limitrequestbody">LimitRequestBody</a><br>
<a href="mod/core.html#limitrequestfields">LimitRequestFields</a><br>
<a href="mod/core.html#limitrequestfieldsize">LimitRequestFieldsize</a><br>
<a href="mod/core.html#limitrequestline">LimitRequestLine</a><br>
<a href="mod/core.html#rlimitcpu">RLimitCPU</a><br>
<a href="mod/core.html#rlimitmem">RLimitMEM</a><br>
<a href="mod/core.html#rlimitnproc">RLimitNPROC</a><br>
<a href="mod/core.html#threadstacksize">ThreadStackSize</a><br>
</td></tr></table>

<p>The <code>LimitRequest</code>* directives are used to place limits
on the amount of resources Apache will use in reading requests
from clients.  By limiting these values, some kinds of denial
of service attacks can be mitigated.</p>

<p>The <code>RLimit</code>* directives are used to limit the amount
of resources which can be used by processes forked off from
the Apache children.  In particular, this will control
resources used by CGI scripts and SSI exec commands.</p>

<p>The <code>ThreadStackSize</code> directive is used only
on Netware to control the stack size.</p>

<!--#include virtual="footer.html" -->
</BODY>
</HTML>
