<?xml version="1.0"?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?> <modulesynopsis metafile="mod_cgid.xml.meta">
<name>mod_cgid</name>
<description>Ausführung von CGI-Skripten mit einem externen
CGI-Daemon</description>
<status>Base</status>
<sourcefile>mod_cgid.c</sourcefile>
<identifier>cgid_module</identifier>
<compatibility>Unix threaded MPMs only</compatibility>
<summary>
<p>Abgesehen von den Optimierungen und der zusätzlichen
<directive module="mod_cgid">ScriptSock</directive>-Direktive
unterscheidet sich das Modul <module>mod_cgid</module> kaum
vom Modul <module>mod_cgi</module>.
Weitere Informationen zu Apache und CGI
<strong>siehe <module>mod_cgi</module>.</strong></p>
<p>Bei bestimmten Unix-Betriebssystemen ist das Forking eines
Prozesses beim Multi-Threading ein sehr aufwändiger Vorgang,
weil der neue Prozess alle Threads des übergeordneten Prozesses
repliziert. Um diesen Aufwand für jeden einzelnen CGI-Aufruf zu
vermeiden,
erzeugt <module>mod_cgid</module> einen externen Daemon, der für
das Forking der Kindprozesse zur Ausführung der CGI-Skripte
verantwortlich
ist. Der Server kommuniziert mit diesem Daemon mit Hilfe eines
Unix-Domain-Socket.</p>
<p>Dieses Modul wird standardmäßig an Stelle des Moduls
<module>mod_cgi</module> verwendet, wenn ein Multi-Thread-MPM
während des Kompilierens gewählt wurde. Auf Benutzerebene
ist die Konfiguration und Arbeitsweise dieses Moduls mit
<module>mod_cgi</module> identisch. Der einzige Unterschied ist die
zusätzliche <code>ScriptSock</code>-Direktive, die den Namen des
Socket für die Kommunikation mit dem CGI-Daemon angibt.</p>
</summary>
<seealso><module>mod_cgi</module></seealso>
<seealso><a href="../suexec.html">CGI-Programme unter unterschiedlichen UIDs
ausführen</a></seealso>
<directivesynopsis location="mod_cgi">
<name>ScriptLog</name>
</directivesynopsis>
<directivesynopsis location="mod_cgi">
<name>ScriptLogLength</name>
</directivesynopsis>
<directivesynopsis location="mod_cgi">
<name>ScriptLogBuffer</name>
</directivesynopsis>
<directivesynopsis>
<name>ScriptSock</name>
<description>Der Name des Socket für die Kommunikation mit dem
CGI-Daemon</description>
<syntax>ScriptSock <var>Dateipfad</var></syntax>
<default>ScriptSock logs/cgisock</default>
<contextlist><context>server config</context>
<context>virtual host</context></contextlist>
<usage>
<p>Diese Direktive gibt den Namen des Socket für die
Kommunikation mit dem CGI-Daemon an. Das Socket wird mit den
Berechtigungen des Benutzers geöffnet, der den Apache gestartet
hat (normalerweise ist das der Benutzer <code>root</code>
). Um die Sicherheit der Kommunikation mit CGI-Skripten zu
gewährleisten, darf kein anderer Benutzer die Berechtigung haben,
in das Verzeichnis zu schreiben, in dem sich das Socket befindet.</p>
<example><title>Beispiel</title>
ScriptSock /var/run/cgid.sock
</example>
</usage>
</directivesynopsis>
</modulesynopsis>
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
<modulesynopsis metafile="mod_charset_lite.xml.meta">
<name>mod_charset_lite</name>
<description>Automatische Konvertierung von
Zeichensätzen</description>
<status>Experimentell</status>
<sourcefile>mod_charset_lite.c</sourcefile>
<identifier>charset_lite_module</identifier>
<summary>
<p>Dieses Modul befindet sich noch in einem
<strong>experimentellen</strong> Stadium und sollte
mit Vorsicht verwendet werden. Experimentieren Sie mit Ihrer
<module>mod_charset_lite</module>-Konfiguration, um zu überprüfen,
ob die gewünschten Ergebnisse erreicht werden.</p>
<p>Mit <module>mod_charset_lite</module> kann der Administrator den
Ausgangszeichensatz von Objekten sowie den Zeichensatz angeben, in den
die Umwandlung vor dem Versenden an den Client erfolgen soll.
<module>mod_charset_lite</module> wandelt die Daten selbst nicht um,
sondern teilt dem Apache mit, welche Art der Umwandlung durchgeführt
werden soll. <module>mod_charset_lite</module> ist für EBCDIC-
und ASCII-Systeme gedacht. In einer EBCDIC-Umgebung wandelt
der Apache normalerweise Text nach ISO-8859-1 um.
Mit <module>mod_charset_lite</module>
können auch andere Konvertierungen durchgeführt werden. In einer
ASCII-Umgebung führt der Apache normalerweise keine
Umwandlungen durch, daher wird <module>mod_charset_lite</module>
benötigt, um Umwandlungen durchführen zu können.</p>
<p>Dieses Modul bietet einige Konfigurationsverfahren an,
die auch von der russischen Apache-Version und dem
dazugehörigen <code>mod_charset</code> implementiert werden.</p>
</summary>
<section id="problems"><title>Allgemeine Probleme</title>
<section><title>Unzulässige Zeichensatzbezeichnungen</title>
<p>Die Parameter für Zeichensatzangaben
<directive module="mod_charset_lite">CharsetSourceEnc</directive> und
<directive module="mod_charset_lite">CharsetDefault</directive>
müssen von der APR-Bibliothek auf dem jeweiligen Betriebssystem,
unter welchem das Modul <module>mod_charset_lite</module>
ausgeführt wird, unterstützt werden. Diese
Zeichensatzbezeichnungen
sind nicht standardisiert und entsprechen normalerweise nicht den
in HTTP-Headern verwendeten. Zur Zeit unterstützt die APR-Bibliothek
nur iconv(3), so dass die Zeichensatzbezeichnungen problemlos mit dem
iconv(1)-Programm getestet werden können:</p>
<example>
iconv -f charsetsourceenc-Wer -t charsetdefault-Wert
</example>
</section>
<section><title>Abweichungen zwischen dem Zeichensatz eines Textes
und den Umwandlungsregeln</title>
<p>Wenn die Umwandlungsregeln für einen Text nicht sinnvoll sind,
kann die Umwandlung aus mehreren Gründen misslingen:</p>
<ul>
<li>Der Umwandlungsmechanismus kann einen falschen Rückgabewert
liefern,
was zum Abbruch der Verbindung führen kann.</li>
<li>Der Umwandlungsmechanismus kann stillschweigend Sonderzeichen
(z.B. Fragezeichen) in den Ausgabepuffer schreiben, wenn er den
Eingabepuffer nicht umwandeln kann.</li>
</ul>
</section>
</section>
<directivesynopsis>
<name>CharsetSourceEnc</name>
<description>Ausgabezeichensatz</description>
<syntax>CharsetSourceEnc <var>Zeichensatz</var></syntax>
<contextlist><context>server config</context>
<context>virtual host</context><context>directory</context>
<context>.htaccess</context>
</contextlist>
<override>FileInfo</override>
<usage>
<p>Die <directive>CharsetSourceEnc</directive>-Direktive gibt den
Ausgabezeichensatz für Dateien aus den entsprechenden Containern
an.</p>
<p>Der Wert des <var>Zeichensatz</var>-Arguments muss
ein gültiger Zeichensatz der APR-Bibliothek sein (in der Regel sind
dies
alle von iconv unterstützten Zeichensätze).</p>
<example><title>Beispiel</title>
<Directory /export/home/trawick/apacheinst/htdocs/convert><br />
<indent>
CharsetSourceEnc UTF-16BE<br />
CharsetDefault ISO-8859-1<br />
</indent>
</Directory>
</example>
<p>Die Zeichensatzbezeichnungen dieses Beispiels funktionieren für die
iconv-Umwandlungen unter Solaris 8.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>CharsetDefault</name>
<description>Der Zeichensatz, in den die Umwandlung erfolgen soll.</description>
<syntax>CharsetDefault <var>Zeichensatz</var></syntax>
<contextlist><context>server config</context>
<context>virtual host</context><context>directory</context>
<context>.htaccess</context>
</contextlist>
<override>FileInfo</override>
<usage>
<p>Die <directive>CharsetDefault</directive>-Direktive gibt den
Zeichensatz an, in den die Dokumente aus den angegebenen Containern
umgewandelt werden sollen.</p>
<p>Der Wert des <var>Zeichensatz</var>-Arguments muss
eine gültiger Zeichensatz der APR-Bibliothek sein (in der Regel sind
dies
alle von iconv unterstützten Zeichensätze).</p>
<example><title>Beispiel</title>
<Directory /export/home/trawick/apacheinst/htdocs/convert><br />
<indent>
CharsetSourceEnc UTF-16BE<br />
CharsetDefault ISO-8859-1<br />
</indent>
</Directory>
</example>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>CharsetOptions</name>
<description>Erlaubt die Konfiguartion des Verhaltens der
Zeichensatz-Übersetzung</description>
<syntax>CharsetOptions <var>Option</var> [<var>Option</var>] ...</syntax>
<default>CharsetOptions DebugLevel=0 NoImplicitAdd</default>
<contextlist><context>server config</context>
<context>virtual host</context><context>directory</context>
<context>.htaccess</context>
</contextlist>
<override>FileInfo</override>
<usage>
<p>Die <directive>CharsetOptions</directive>-Direktive kontrolliert
einige Optionen des Moduls <module>mod_charset_lite</module>.
Als <var>Option</var> kann angegeben werden:</p>
<dl>
<dt><code>DebugLevel=<var>n</var></code></dt>
<dd>Mit dem Schlüsselwort <code>DebugLevel</code> lässt sich
der Umfang der vom Modul erzeugten Debug-Meldungen steuern.
Gemäß Voreinstellung werden keine Meldungen erzeugt. Das
entspricht der Angabe <code>DebugLevel=0</code>.
Je höher der Wert gesetzt wird, um so mehr Meldungen werden
erzeugt und um so mehr geht die Serverleistung zurück. Die
Bedeutung der Zahlenangaben wird am Beginn der Datei
<code>mod_charset_lite.c</code> in Verbindung mit den
Definitionen der <code>DBGLVL_</code>-Konstanten
beschrieben.</dd>
<dt><code>ImplicitAdd | NoImplicitAdd</code></dt>
<dd>Die Option <code>ImplicitAdd</code> gibt an, dass
<module>mod_charset_lite</module> immer die dazugehörigen
Filter aktivieren soll, wenn die Konfiguration eine Umwandlung des
Zeichensatzes vorschreibt. Wird die Filterkette explizit mit der
<directive module="mod_mime">AddOutputFilter</directive>-Direktive
konfiguriert, sollte <code>NoImplicitAdd</code> nicht angegeben
werden, damit <module>mod_charset_lite</module>
die Filter nicht aktiviert.</dd>
</dl>
</usage>
</directivesynopsis>
</modulesynopsis>
Title: Empfohlene Konfiguration
Mit dem DEFLATE-Filter des
Die folgende Beispielkonfiguration ist für Ungeduldige gedacht. Sie sollten sich aber die Zeit nehmen und die ausführliche Beschreibung in den nachstehenden Abschnitten aufmerksam durchlesen.
SetOutputFilter DEFLATE
# Netscape 4.x bereitet Probleme...
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 bereiten noch viel mehr Probleme
BrowserMatch ^Mozilla/4\.0[678] no-gzip
#Der MSIE verkleidet sich als Netscape, funktioniert aber einwandfrei.
# BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# Hinweis: Infolge eines Fehlers in mod_setenvif funktioniert das
#bis zur Apache-Version 2.0.48 nicht. Mit folgender
# Abwandlung erreichen Sie den gewünschten Effekt:
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
# Bilder sollen nicht komprimiert
SetEnvIfNoCase Request_URI \
# Sicherstellen, dass Proxies nicht den falschen Inhalt ausliefern.
Header append Vary User-Agent env=!dont-vary
Die Komprimierung wird vom DEFLATE-
Filter implementiert. Die folgende Direktive
aktiviert die Komprimierung für Dokumente in dem Container, in dem
sie platziert wird:
Einige Browser können mit der Komprimierung sämtlicher Inhaltstypen
nicht umgehen, so dass die 'Note' gzip-only-text/html auf den Wert
1 gesetzt werden sollte, damit HTML-Dateien komprimiert werden
(siehe unten). Jede Einstellung außer 1
wird ignoriert.
Soll die Komprimierung bestimmterMIME-Typen generell
unterbunden werden, kann hierfür die
Für Browser, die die Probleme mit der Komprimierung sämtlicher Dateitypen
haben, sollten Sie die Direktive no-gzip und
gzip-only-text/html können kombiniert werden, um bessere Ergebnisse
zu erzielen. In diesem Fall wird die erste Anweisung von der letzten
überschrieben. Betrachten Sie folgenden Auszug aus dem oben angeführten
Konfigurationsbeispiel:
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Zuerst wird der User-Agent-String daraufhin untersucht, ob er einen
Netscape Browser der Version 4.x anzuzeigen scheint. Diese Versionen
können nur mit der Komprimierung von text/html-Typen
umgehen. Die Versionen 4.06, 4.07 und 4.08 haben sogar Probleme
mit der Dekomprimierung von HTML-Dateien. Deshalb wird der
DEFLATE-Filter für diese Versionen
vollständig deaktiviert.
Die dritte \b bedeutet "Wortgrenze") im
User-Agent-Header vorgenommen und die zuvor festgelegten
Einschränkungen werden aufgehoben.
DEFLATE-Filter wird immer nach
RESSOURCE-Filtern wie PHP oder SSI eingefügt. Er
behandelt niemals interne Subanfragen.
Das Modul gzip-komprimierten Body
einer HTTP-Anfrage
bereit. Er wird durch Einfügen des DEFLATE-Filters mit
Enthält eine Anfrage einen
Content-Encoding: gzip-Header, dann wird der Body
jetzt automatisch dekomprimiert. Allerdings können nur wenige Browser
diese Möglichkeit nutzen. Einige besondere Anwendungen unterstützen
jedoch die Anfragekomprimierung, wie zum Beispiel einige
WebDAV-Clients.
Vertrauen Sie nicht dem Inhalt des Content-Lenght-Headers, wenn Sie den Body der Anfrage selbst auswerten>. Dieser Header gibt die Länge der vom Client eingehenden Daten und nicht die Anzahl der Bytes des dekomprimierten Datenstroms an.
Das Modul Vary: Accept-Encoding,
um Proxies darauf hinzuweisen, dass eine zwischengespeicherte Antwort
nur an Clients gesendet werden soll, die einen entsprechenden
Accept-Encoding-Anfrage-Header schicken. Dadurch wird
verhindert, dass komprimierte Inhalte einem Client übermittelt werden,
der diese nicht interpretieren kann.
Wenn Sie spezielle Ausschlussbedingungen verwenden, wie zum
Beispiel den User-Agent-Header, dann müssen Sie
eine Ergänzung zum Vary-Header manuell hinzufügen,
um den Proxies die zusätzlichen Einschränkungen mitzuteilen. Eine
Konfiguration, in der das Hinzufügen des
DEFLATE-Filters vom User-Agent
abhängt, sollte wie folgt ergänzt werden:
Hängt die Entscheidung für die Komprimierung von anderen
Informationen als denen aus den Anfrage-Headern ab
(z.B. von der HTTP-Version), dann muss der
Vary-Header auf den Wert * gesetzt werden.
Dies verhindert vollständig die Zwischenspeicherung durch die
entsprechenden Proxies.
Die
LogFormat '"%r" %b (%{ratio}n) "%{User-agent}i"' deflate
CustomLog logs/deflate_log deflate
Sollen exaktere Werte aus den Protokollen entnommen werden, kann mit dem Typ-Argument der Datentyp für die zu protokollierende Note angegeben werden. Als Typ kann angegeben werden:
Input- In der Note wird die Anzahl der Bytes des Eingabestroms des Filters gespeichert.
Output- In der Note wird die Anzahl der Bytes des Ausgabestroms des Filters gespeichert.
Ratio- In der Note wird der Komprimierungsquotient
(
output/input * 100) gespeichert. Dies entspricht der Voreinstellung, wenn das Typ-Argument weggelassen wird.
Ein Beispiel:
DeflateFilterNote Output outstream
DeflateFilterNote Ratio ratio
LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
CustomLog logs/deflate_log deflate
Die zlib in einem Durchgang zu komprimierenden
Fragments in Byte an.
zlib-Komprimierung Die zlib-Komprimierung an
(ein Wert zwischen 1 und 15). Generell gilt: Je größer der Wert,
desto höhere Komprimierungsraten dürfen erwartet werden.
Die zlib für die Komprimierung benutzt
(ein Wert zwischen 1 und 9).
Die
Der Wert muss zwischen 1 (geringere Komprimierung) und 9 (stärkere Komprimierung) liegen.
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
<modulesynopsis metafile="mod_dir.xml.meta">
<name>mod_dir</name>
<description>Verzeichnisumleitungen und
Auslieferung einer (bereits vorhandenen) Indexdatei</description>
<status>Base</status>
<sourcefile>mod_dir.c</sourcefile>
<identifier>dir_module</identifier>
<summary>
<p>Ein Verzeichnisindex kann aus zwei Quellen stammen:</p>
<ul>
<li>Aus einer vom Benutzer erstellten Datei, die normalerweise
den Namen <code>index.html</code> hat. Die
<directive module="mod_dir">DirectoryIndex</directive>-Direktive gibt
den Namen dieser Datei an. Dies wird von
<module>mod_dir</module> gesteuert.</li>
<li>Oder aus einer vom Server erzeugten Verzeichnisliste. Diese wird
vom Modul <module>mod_autoindex</module> erzeugt.</li>
</ul>
<p>Die beiden Funktionen sind voneinander getrennt, so dass
die automatische Indexerstellung bei Bedarf völlig ausgeschaltet
oder ersetzt werden kann.</p>
<p>Erhält der Server eine URL ohne ein <code>/<code>-Zeichen
am Ende, zum Beispiel
<code>http://servername/foo/dirname</code>
(<code>dirname</code> ist ein Verzeichnis), dann
wird eine Verzeichnisweiterleitung durchgeführt. Da Verzeichnissen
ein <code>/<code>-Zeichen nachgestellt
werden muss, führt <module>mod_dir</module> die Umlenkung
<code>http://servername/foo/dirname/</code> durch.</p>
</summary>
<directivesynopsis>
<name>DirectoryIndex</name>
<description>Liste der Ressourcen, die durchsucht werden, wenn der Client
ein Verzeichnis anfordert.</description>
<syntax>DirectoryIndex
<var>lokale URL </var> [<var>lokale URL</var>] ...</syntax>
<default>DirectoryIndex index.html</default>
<contextlist><context>server config</context><context>virtual host</context>
<context>directory</context><context>.htaccess</context></contextlist>
<override>Indexes</override>
<usage>
<p>Die <directive>DirectoryIndex</directive>-Direktive gibt
die Ressourcenliste an, die durchsucht wird, wenn ein Client
einen Verzeichnisindex anfordert, der mit dem <code>/<code>-Zeichen
endet.
<var>lokale URL</var> ist die (%-kodiert) URL eines Dokuments
auf dem Server (relativ zum angeforderten Verzeichnis).
Normalerweise handelt es sich um eine Datei aus dem Verzeichnis.
Es können mehrere URLs angegeben werden. In diesem Fall gibt der
Server die zuerst gefundene URL zurück. Ist keine der Ressourcen
vorhanden und die Option <code>Indexes</code> gesetzt,
erzeugt der Server selbst die Verzeichnisliste.</p>
<example><title>Beispiel</title>
DirectoryIndex index.html
</example>
<p>Bei der Anforderung von <code>http://myserver/docs/</code>
wird <code>http://myserver/docs/index.html</code> zurückgeliefert,
wenn die Datei vorhanden ist. Ist dies nicht der Fall, wird der
Verzeichnisindex aufgelistet.</p>
<p>Beachten Sie, dass die Dokumente nicht relativ zum Verzeichnis
angegeben werden:</p>
<example>
DirectoryIndex index.html index.txt /cgi-bin/index.pl
</example>
<p>In diesem Beispiel wird das CGI-Skript <code>/cgi-bin/index.pl</code>
ausgeführt, wenn weder die Datei <code>index.html</code> noch die
Datei <code>index.txt</code> im Verzeichnis vorhanden ist.</p>
</usage>
</directivesynopsis>
</modulesynopsis>
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
<modulesynopsis metafile="mod_echo.xml.meta">
<name>mod_echo</name>
<description>Ein einfacher Echo-Service zur Demonstration
von Protokollmodulen</description>
<status>Experimentell</status>
<sourcefile>mod_echo.c</sourcefile>
<identifier>echo_module</identifier>
<compatibility>Verfügbar seit Apache 2.0</compatibility>
<summary>
<p>Dieses Modul demonstriert das Konzept des Protokollmoduls.
Es stellt einen Echo-Service zur Verfügung. Bauen Sie eine
Telnet-Verbindung zu diesem Echo-Server auf und geben Sie
etwas auf der Tastatur ein. Der Server sendet dann ihre Eingabe
zurück.</p>
</summary>
<directivesynopsis>
<name>ProtocolEcho</name>
<description>Schaltet das Echo ein oder aus</description>
<syntax>ProtocolEcho On|Off</syntax>
<contextlist><context>server config</context>
<context>virtual host</context></contextlist>
<compatibility>Verfügbar seit Apache 2.0</compatibility>
<usage>
<p>Die <directive>ProtocolEcho</directive>-Direktive aktiviert oder
deaktiviert den Echo-Service.</p>
<example><title>Beispiel</title>
ProtocolEcho On
</example>
</usage>
</directivesynopsis>
</modulesynopsis>
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
<!-- English revision: 1.21.2.3 -->
<modulesynopsis metafile="mpm_common.xml.meta">
<name>mpm_common</name>
<description>Eine Sammlung von Direktiven, die in mehr als einem
Multi-Processing-Modul (MPM) implementiert sind.</description>
<status>MPM</status>
<directivesynopsis>
<name>AcceptMutex</name>
<description>Vom Apache verwendete Methode zur Serialisierung mehrerer
Kindprozesse, die Anfragen an Netzwerk-Sockets entgegennehmen.</description>
<syntax>AcceptMutex Default|<var>Methode</var></syntax>
<default>AcceptMutex Default</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>leader</module><module>perchild</module>
<module>prefork</module><module>threadpool</module><module>worker</module>
</modulelist>
<usage>
<p>Die Direktive <directive>AcceptMutex</directive> bestimmt die
Methode, die der Apache zur Serialisierung mehrerer Kindprozesse
verwendet, welche Anfragen an Netzwerk-Sockets entgegennehmen. Vor
Apache 2.0 war diese Methode nur zur Kompilierungszeit einstellbar.
Die optimale Methode ist sehr stark von der Architektur und
Plattform abhängig. Lesen Sie bitte <a
href="../misc/perf-tuning.html">Performance-Hinweise</a> für
weitere Details.</p>
<p>Wenn die Direktive auf <code>Default</code> eingestellt ist, dann
wird die zur Kompilierungszeit gewählte Voreinstellung verwendet.
Weitere mögliche Methoden sind unten angegeben. Beachten Sie, dass
nicht alle Methoden auf allen Plattformen verfügbar sind. Wird
eine Methode angegeben, die nicht verfügbar ist, dann wird
eine Nachricht in das Fehlerprotokoll geschrieben, welche die
verfügbaren Methoden auflistet.</p>
<dl>
<dt><code>flock</code></dt>
<dd>verwendet die Systemfunktion <code>flock(2)</code>, um die
durch die <directive module="mpm_common"
>LockFile</directive>-Direktive definierte Datei zu sperren.</dd>
<dt><code>fcntl</code></dt>
<dd>verwendet die Systemfunktion <code>fcntl(2)</code>, um die
durch die <directive module="mpm_common"
>LockFile</directive>-Direktive definierte Datei zu sperren.</dd>
<dt><code>posixsem</code></dt>
<dd>verwendet POSIX-kompatible Semaphore, um den Mutex zu
imlementieren.</dd>
<dt><code>pthread</code></dt>
<dd>verwendet gemäß der POSIX-Thread-Spezifikation
implementierte POSIX-Mutexe.</dd>
<dt><code>sysvsem</code></dt>
<dd>verwendet Semaphoren des SysV-Typs, um den Mutex zu
implementieren.</dd>
</dl>
<p>Um die bei der Kompilierung gewählte Voreinstellung für
Ihr System herauszufinden, können Sie Ihr <directive module="core"
>LogLevel</directive> auf <code>debug</code> setzen. Dann wird der
voreingestellte <directive>AcceptMutex</directive> ins <directive
module="core">ErrorLog</directive> geschrieben.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>BS2000Account</name>
<description>Bestimmt den nicht-privilegierten Account auf
BS2000-Maschinen</description>
<syntax>BS2000Account <var>Account</var></syntax>
<contextlist><context>server config</context></contextlist>
<modulelist><module>perchild</module><module>prefork</module></modulelist>
<compatibility>Nur für BS2000-Maschinen verfügbar</compatibility>
<usage>
<p>Die Direktive <directive>BS2000Account</directive> ist nur
für BS2000-Hosts verfügbar. Sie muss dazu verwendet werden,
den Account für den nicht-privilegierten Apache-Server-Benutzer
(der durch die Direktive <directive module="mpm_common">User</directive>
eingestellt wird) zu bestimmen. Dies wird vom BS2000-POSIX-Subsystem
benötigt (um die zugrundeliegende BS2000-Anwendungsumgebung
mittels eines Sub-LOGONs zu wechseln), um zu verhindern, dass
CGI-Skripte auf Ressourcen des privilegierten Accounts zugreifen, der
den Server gestartet hat, üblicherweise <code>SYSROOT</code>.</p>
<note><title>Anmerkung</title>
<p>Es kann nur eine <code>BS2000Account</code>-Direktive verwendet
werden.</p>
</note>
</usage>
<seealso><a
href="../platform/ebcdic.html">Apache-EBCDIC-Portierung</a></seealso>
</directivesynopsis>
<directivesynopsis>
<name>CoreDumpDirectory</name>
<description>Verzeichnis, in das der Apache zu wechseln versucht, bevor er
einen Hauptspeicherauszug erstellt</description>
<syntax>CoreDumpDirectory <var>Verzeichnis</var></syntax>
<default>Für die Voreinstellung siehe Beschreibung</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>beos</module><module>leader</module>
<module>mpm_winnt</module><module>perchild</module><module>prefork</module>
<module>threadpool</module><module>worker</module></modulelist>
<usage>
<p>Dies beeinflusst das Verzeichnis, in welches der Apache zu wechseln
versucht, bevor er einen Hauptspeicherauszug <transnote>einen
so genannten Core-Dump</transnote> erstellt. Die Voreinstellung ist das
<directive module="core">ServerRoot</directive>-Verzeichnis. Da dieses
jedoch nicht für den Benutzer beschreibbar sein soll, unter dem
der Server läuft, werden normalerweise keine
Hauptspeicherauszüge geschrieben. Wenn Sie zum Debuggen
einen Hauptspeicherauszüg haben möchten, können Sie
ihn mit dieser Direktive an einem anderen Ort ablegen lassen.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>Group</name>
<description>Benutzergruppe, unter welcher der Server Anfragen
beantwortet</description>
<syntax>Group <var>Unix-Gruppe</var></syntax>
<default>Group #-1</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>beos</module><module>leader</module>
<module>mpmt_os2</module><module>perchild</module><module>prefork</module>
<module>threadpool</module><module>worker</module></modulelist>
<compatibility>Seit Apache 2.0 nur in der globalen Server-Konfiguration
gültig</compatibility>
<usage>
<p>Die Direktive <directive>Group</directive> bestimmt die
Benutzergruppe, unter welcher der Server Anfragen beantwortet.
Um diese Direktive zu verwenden, muss der Server als <code>root</code>
gestartet
werden. Wenn Sie den Server unter einem nicht-root-Benutzer starten,
wird er nicht zur angegebenen Gruppe wechseln können und statt
dessen weiter mit der Gruppe des ursprünglichen Benutzers
laufen. <var>Unix-Gruppe</var> kann sein:</p>
<dl>
<dt>Ein Gruppenname</dt>
<dd>Verweist auf die durch den Namen angegebene Gruppe.</dd>
<dt><code>#</code> gefolgt von einer Gruppennummer.</dt>
<dd>Verweist auf die durch ihre Nummer angegebene Gruppe.</dd>
</dl>
<example><title>Beispiel</title>
Group www-group
</example>
<p>Es wird empfohlen, dass Sie eine neue Gruppe speziell zum Betrieb
des Servers erstellen. Einige Administratoren verwenden den Benutzer
<code>nobody</code>. Dies ist jedoch nicht immer möglich
oder gewünscht.</p>
<note type="warning"><title>Sicherheit</title>
<p>Setzen Sie <directive>Group</directive> (oder <directive
module="mpm_common">User</directive>) nicht auf <code>root</code>,
solange Sie nicht ganz genau wissen, was Sie tun und welche Gefahren
Sie eingehen.</p>
</note>
<p>Wichtiger Hinweis: Die Verwendung der Diretive innerhalb von
<directive module="core" type="section">VirtualHost</directive>
wird nicht länger unterstützt. Benutzen Sie <directive
module="mod_suexec">SuexecUserGroup</directive> um Ihren Server
für <a href="mod_suexec.html">suexec</a> einzurichten.</p>
<note><title>Anmerkung</title>
<p>Obwohl die Direktive <directive>Group</directive> in den MPMs
<module>beos</module> und <module>mpmt_os2</module> existiert, ist
sie dort tatsächlich eine Leeranweisung und exisitert nur
aus Kompatibilitätsgründen.</p>
</note>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>PidFile</name>
<description>Datei, in welcher der Server die Prozess-ID des Daemons
ablegt</description>
<syntax>PidFile <var>Dateiname</var></syntax>
<default>PidFile logs/httpd.pid</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>beos</module><module>leader</module>
<module>mpm_winnt</module><module>mpmt_os2</module>
<module>perchild</module><module>prefork</module>
<module>threadpool</module><module>worker</module></modulelist>
<usage>
<p>Die Direktive <directive>PidFile</directive> bestimmt die Datei,
in welcher der Server die Prozess-ID des Daemons ablegt. Wenn der
Dateiname nicht absolut angegeben wird, wird er relativ zu
<directive module="core">ServerRoot</directive> interpretiert.</p>
<example><title>Beispiel</title>
PidFile /var/run/apache.pid
</example>
<p>Es ist oft hilfreich, dem Server ein Signal senden zu können,
damit er seine <directive module="core">ErrorLog</directive>s und
<directive module="mod_log_config">TransferLog</directive>s
schließt und dann neu öffnet und seine
Konfigurationsdateien neu einliest. Dies kann durch Senden eines
SIGHUP-Signals (kill -1) an die Prozess-ID geschehen, die im
<directive>PidFile</directive> eingetragen ist.</p>
<p>Die <directive>PidFile</directive>-Datei unterliegt den
gleichen Warnungen über die Ablage von Protokolldateien
und <a href="../misc/security_tips.html#serverroot">Sicherheit</a>.</p>
<note><title>Anmerkung</title>
<p>Ab Apache 2 wird empfohlen, nur das Skript <a
href="../programs/apachectl.html">apachectl</a> zum (Neu-)Starten
und Stoppen des Servers zu verwenden.</p>
</note>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>Listen</name>
<description>IP-Adressen und Ports, an denen der Server lauscht</description>
<syntax>Listen [<var>IP-Addresse</var>:]<var>Port</var></syntax>
<contextlist><context>server config</context></contextlist>
<modulelist><module>beos</module><module>leader</module>
<module>mpm_netware</module><module>mpm_winnt</module>
<module>mpmt_os2</module><module>perchild</module>
<module>prefork</module><module>threadpool</module><module>worker</module>
</modulelist>
<compatibility>Seit Apache 2.0 vorgeschrieben</compatibility>
<usage>
<p>Die Direktive <directive>Listen</directive> weist den Apache an,
nur an den angegebenen IP-Adressen oder Ports zu lauschen.
Standardmäßig antwortet er auf alle Anfragen an allen
IP-Interfaces. <directive>Listen</directive> ist nun eine notwendige
Anweisung. Wenn sie nicht in der Konfigurationsdatei enthalten ist,
wird der Server-Start fehlschlagen. Dies ist eine Änderung
gegenüber früheren Versionen des Apache.</p>
<p>Die Direktive <directive>Listen</directive> weist den Server an,
ankommende Anfragen am angegebenen Port oder der
Kombination aus Adresse und Port entgegenzunehmen. Wenn nur eine Portnummer
angegeben ist, dann lauscht der Server am angegebenen Port an allen
Interfaces. Wenn sowohl eine IP-Adresse als auch ein Port angegeben
sind, dann lauscht der Server am angegeben Port und Interface.</p>
<p>Es können mehrere <directive>Listen</directive>-Anweisungen
verwendet werden, um eine Reihe von Adressen und Port anzugeben, an
denen gelauscht werden soll. Der Server antwortet auf Anfragen von
jedem der aufgeführten Adressen und Ports.</p>
<p>Um beispielsweise den Server Verbindungen an den beiden Ports 80 und
8000 annehmen zu lassen, verwenden Sie:</p>
<example>
Listen 80<br />
Listen 8000
</example>
<p>Um den Server Verbindungen an zwei angegebenen Interfaces und Ports
annehmen zu lassen, verwenden Sie:</p>
<example>
Listen 192.170.2.1:80<br />
Listen 192.170.2.5:8000
</example>
<p>IPv6-Adressen müssen wie in dem folgenden Beispiel in eckige
Klammern eingeschlossen werden:</p>
<example>
Listen [fe80::a00:20ff:fea7:ccea]:80
</example>
</usage>
<seealso><a href="../dns-caveats.html">DNS-Probleme</a></seealso>
<seealso><a href="../bind.html">Bestimmen, welche Adressen und Ports der
Apache verwendet</a></seealso>
</directivesynopsis>
<directivesynopsis>
<name>ListenBackLog</name>
<description>Maximale Länge der Warteschlange schwebender
Verbindungen</description>
<syntax>ListenBacklog <var>backlog</var></syntax>
<default>ListenBacklog 511</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>beos</module><module>leader</module>
<module>mpm_netware</module><module>mpm_winnt</module>
<module>mpmt_os2</module><module>perchild</module><module>prefork</module>
<module>threadpool</module><module>worker</module></modulelist>
<usage>
<p>Die maximale Länge der Warteschlange schwebender Verbindungen.
Üblicherweise ist keine Feineinstellung notwendig oder sinnvoll,
auf einigen System kann es jedoch gewünscht sein, diesen Wert bei
TCP-SYN-Angriffen zu erhöhen. Beachten Sie auch die Beschreibung des
backlog-Parameters der Systemfunktion <code>listen(2)</code>.</p>
<p>Der Wert wird vom Betriebssystem oft auf eine niedrigere
Einstellung begrenzt. Dies variiert von Betriebssystem zu Betriebssystem.
Beachten Sie auch, dass viele Betriebssysteme nicht genau beachten,
was für backlog angegeben ist, jedoch einen Wert basierend auf der
Angabe (normalerweiseweise jedoch größer als diese)
verwenden.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>LockFile</name>
<description>Ablageort der Lock-Datei für die Serialisierung von
entgegengenommenen Anfragen</description>
<syntax>LockFile <var>Dateiname</var></syntax>
<default>LockFile logs/accept.lock</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>leader</module><module>perchild</module>
<module>prefork</module><module>threadpool</module><module>worker</module>
</modulelist>
<usage>
<p>Die Direktive <directive>LockFile</directive> legt den Pfad zur
Lock-Datei fest, die verwendet wird, wenn der Apache mit einer der
<directive module="mpm_common">AcceptMutex</directive>-Einstellungen
<code>fcntl</code> oder <code>flock</code> verwendet wird. Die Anweisung
sollte normalerweise bei der Voreinstellung belassen werden.
Der Hauptgrund, sie zu ändern, ist, wenn das
<code>logs</code>-Verzeichnis auf einem per NFS-eingebundenen Laufwerk
liegt, da <strong>die Lock-Datei auf einer lokalen Platte abgelegt sein
muss</strong>. Die PID <transnote>Prozess-ID</transnote> des
Hauptserverprozesses wird automatisch an den Dateinamen angehängt.</p>
<note type="warning"><title>Sicherheit</title>
<p>Es ist am besten, die Ablage in einem allgemein <transnote>für
jederman</transnote> beschreibbaren
Verzeichnis wie <code>/var/tmp</code> <em>zu vermeiden</em>, da
ein Denial-of-Servide-Angriff gestartet werden könnte und der
Server am Start gehindert werden könnte, indem eine Lock-Datei
mit dem gleichen Namen erstellt wird, wie der Server sie zu erstellen
versuchen würde.</p>
</note>
</usage>
<seealso><directive module="mpm_common">AcceptMutex</directive></seealso>
</directivesynopsis>
<directivesynopsis>
<name>MaxClients</name>
<description>Maximale Anzahl der Kindprozesse, die zur Bedienung von Anfragen
gestartet wird</description>
<syntax>MaxClients <var>Anzahl</var></syntax>
<default>Für Details siehe Beschreibung</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>beos</module><module>leader</module>
<module>prefork</module><module>threadpool</module><module>worker</module>
</modulelist>
<usage>
<p>Die Direktive <directive>MaxClients</directive> setzt die Grenze
für die Anzahl gleichzeitig bedienter Anfragen. Jeder
Verbindungsversuch oberhalb der <directive
>MaxClients</directive>-Begrenzung wird üblicherweise in eine
Warteschlange gestellt, bis zu einer Anzahl basierend auf der
<directive module="mpm_common">ListenBacklog</directive>-Anweisung.
Sobald ein Kindprozess am Ende einer anderen Anfrage freigegeben wird,
wird die Verbindung bedient.</p>
<p>Für Server ohne Thread-Unterstützung (<em>z.B.</em>
<module>prefork</module>) wird <directive>MaxClients</directive> als
maximale Anzahl der Kindprozesse verstanden, die zur Bedienung von
Anfragen gestartet werden. Die Voreinstellung ist <code>256</code>. Um
diesen Wert zu erhöhen, muss auch <directive
module="mpm_common">ServerLimit</directive> angehoben werden.</p>
<p>Bei Servern mit Thread-Unterstützung und bei Hybrid-Servern
(<em>z.B.</em> <module>beos</module> oder <module>worker</module>)
begrenzt <directive>MaxClients</directive> die Gesamtzahl der Threads,
die für die Bedienung von Anfragen verfügbar sind.
Die Voreinstellung für <module>beos</module> ist <code>50</code>.
Bei Hybrid-MPMs ist die Voreinstellung <code>16</code> (<directive
module="mpm_common">ServerLimit</directive>) multipliziert mit
dem Wert <code>25</code> (<directive module="mpm_common"
>ThreadsPerChild</directive>). Um <directive>MaxClients</directive>
auf einen Wert zu erhöhen, der mehr als 16 Prozesse erfordert,
müssen Sie daher auch <directive module="mpm_common"
>ServerLimit</directive> anheben.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>MaxMemFree</name>
<description>Maximale Menge des Arbeitsspeichers, den die
Haupt-Zuteilungsroutine verwalten darf, ohne <code>free()</code>
aufzurufen</description>
<syntax>MaxMemFree <var>KBytes</var></syntax>
<default>MaxMemFree 0</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>beos</module><module>leader</module>
<module>mpm_netware</module><module>prefork</module>
<module>threadpool</module><module>worker</module></modulelist>
<usage>
<p>Die Direktive <directive>MaxMemFree</directive> gibt die maximale
Menge freier Kilobytes an, welche die Haupt-Zuteilungsroutine verwalten
darf, ohne <code>free()</code> aufzurufen. Wenn keine Angabe gemacht wird,
oder Null angegeben ist, wird dieser Wert nicht eingeschränkt.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>MaxRequestsPerChild</name>
<description>Obergrenze für die Anzahl von Anfragen, die ein einzelner
Kindprozess während seines Lebens bearbeitet</description>
<syntax>MaxRequestsPerChild <var>number</var></syntax>
<default>MaxRequestsPerChild 10000</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>leader</module><module>mpm_netware</module>
<module>mpm_winnt</module><module>mpmt_os2</module>
<module>perchild</module><module>prefork</module>
<module>threadpool</module><module>worker</module></modulelist>
<usage>
<p>Die Direktive <directive>MaxRequestsPerChild</directive> legt die
Grenze für die Anzahl von Anfragen fest, die ein einzelner
Kinprozess während seines Lebens bearbeitet. Nach
<directive>MaxRequestsPerChild</directive> Anfragen stirbt der
Kindprozess. Wenn <directive>MaxRequestsPerChild</directive>
<code>0</code> ist, endet der Prozess niemals.</p>
<note><title>Abweichende Voreinstellungen</title>
<p>Die Voreinstellung für <module>mpm_netware</module> und
<module>mpm_winnt</module> ist <code>0</code>.</p>
</note>
<p>Die Begrenzung von <directive>MaxRequestsPerChild</directive> auf einen
Wert ungleich Null hat zwei vorteilhafte Auswirkungen:</p>
<ul>
<li>sie begrenzt die Menge an Arbeitsspeicher, die ein Prozess
durch (versehentliche) Speicherlecks verbrauchen kann.</li>
<li>das Festlegen einer endlichen Lebensdauer von Prozessen hilft, die
Anzahl von Prozessen zu reduzieren, wenn die Serverlast
zurückgeht.</li>
</ul>
<note><title>Anmerkung</title>
<p>Bei <directive module="core">KeepAlive</directive>-Anfragen
wird nur die erste Anfrage für diese begrenzung gezählt.
Eigentlich wird nur die Begrenzung für die Anzahl der
<em>Verbindungen</em> pro Kindprozess geändert.</p>
</note>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>MaxSpareThreads</name>
<description>Maximale Anzahl unbeschäftigter Threads</description>
<syntax>MaxSpareThreads <var>Anzahl</var></syntax>
<default>Für Details siehe Beschreibung</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>beos</module><module>leader</module>
<module>mpm_netware</module><module>mpmt_os2</module>
<module>perchild</module><module>threadpool</module><module>worker</module>
</modulelist>
<usage>
<p>Maximale Anzahl unbeschäftigter Threads. Die verschiedenen MPMs
behandeln diese Anweisung unterschiedlich.</p>
<p>Die Voreinstellung für <module>perchild</module> ist
<code>MaxSpareThreads 10</code>. Das MPM überwacht die Anzahl der
unbeschäftigten Threads auf der Basis einzelner Kindprozesse. Wenn
zu viele unbeschäftigte Threads in einem Kindprozess existieren,
beendet der Server Threads innerhalb dieses Kindprozesses.</p>
<p>Die Voreinstellung für <module>worker</module>,
<module>leader</module> und <module>threadpool</module> ist
<code>MaxSpareThreads 250</code>. Diese MPMs behandeln Threads
auf einer serverweiten Basis. Wenn zu viele unbeschäftigte Threads
im Server existieren, dann werden solange Kindprozesse beendet, bis
die Anzahl der unbeschäftigten Threads kleiner als der
angegebene Wert ist.</p>
<p>Die Voreinstellung für <module>mpm_netware</module> ist
<code>MaxSpareThreads 100</code>. Da dieses MPM nur einen einzigen
Prozess ausführt, ist die Zählung überschüssiger
Threads ebenfalls serverweit.</p>
<p><module>beos</module> and <module>mpmt_os2</module> arbeiten
ähnlich wie <module>mpm_netware</module>. Die Voreinstellung
für <module>beos</module> ist <code>MaxSpareThreads 50</code>.
Die Voreinstellung für <module>mpmt_os2</module> ist
<code>10</code>.</p>
<note><title>Restriktionen</title>
<p>Der Wertebereich von <directive>MaxSpareThreads</directive>
ist eingeschränkt. Apache korrigiert den angegebenen Wert
automatisch gemäß den folgenden Regeln:</p>
<ul>
<li><module>perchild</module> verlangt, dass <directive
>MaxSpareThreads</directive> kleiner oder gleich <directive
module="mpm_common">ThreadLimit</directive> ist.</li>
<li><module>mpm_netware</module> verlangt einen Wert größer
als <directive module="mpm_common">MinSpareThreads</directive>.</li>
<li>Bei <module>leader</module>, <module>threadpool</module> und
<module>worker</module> muss der Wert größer oder gleich
der Summe aus <directive
module="mpm_common">MinSpareThreads</directive> und
<directive module="mpm_common">ThreadsPerChild</directive> sein.</li>
</ul>
</note>
</usage>
<seealso><directive module="mpm_common">MinSpareThreads</directive></seealso>
<seealso><directive module="mpm_common">StartServers</directive></seealso>
</directivesynopsis>
<directivesynopsis>
<name>MinSpareThreads</name>
<description>Minimale Anzahl unbeschäftigter Threads, die zur
Bedienung von Anfragespitzen zur Verfügung stehen</description>
<syntax>MinSpareThreads <var>Anzahl</var></syntax>
<default>Für Details siehe Beschreibung</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>beos</module><module>leader</module>
<module>mpm_netware</module><module>mpmt_os2</module>
<module>perchild</module><module>threadpool</module><module>worker</module>
</modulelist>
<usage>
<p>Minimale Anzahl unbeschäftigter Threads, um Anfragespitzen
zu bedienen. Die verschiedenen MPMs behandeln die Anweisung
unterschiedlich.</p>
<p><module>perchild</module> verwendet die Voreinstellung
<code>MinSpareThreads 5</code> und überwacht die Anzahl der
unbeschäftigten Threads auf der Basis einzelner Kindprozesse. Wenn
in einem Kindprozess nicht genügend unbeschäftigte
Threads vorhanden sind, erstellt der Server neue Threads innerhalb
dieses Kindprozesses. Wenn Sie also <directive module="perchild"
>NumServers</directive> auf <code>10</code> und <directive
>MinSpareThreads</directive> auf einen Wert von <code>5</code> setzen,
haben Sie mindestens 50 unbeschäftigte Threads auf Ihrem
System.</p>
<p><module>worker</module>, <module>leader</module> und
<module>threadpool</module> verwenden eine Voreinstellung von
<code>MinSpareThreads 75</code> und behandeln unbeschäftigte
Threads auf serverweiter Basis. Wenn nicht genügend
unbeschäftigte Threads im Server vorhanden sind, dann
werden solange Kindprozesse erzeugt, bis die Anzahl unbeschäftigter
Threads größer als der angegebene Wert ist.</p>
<p><module>mpm_netware</module> verwendet die Voreinstellung
<code>MinSpareThreads 10</code> und verfolgt dies serverweit, da
es ein Einzelprozess-MPM ist.</p>
<p><module>beos</module> und <module>mpmt_os2</module> arbeiten
ähnlich wie <module>mpm_netware</module>. Die Voreinstellung
für <module>beos</module> ist <code>MinSpareThreads 1</code>.
Die Voreinstellung für <module>mpmt_os2</module> ist
<code>5</code>.</p>
</usage>
<seealso><directive module="mpm_common">MaxSpareThreads</directive></seealso>
<seealso><directive module="mpm_common">StartServers</directive></seealso>
</directivesynopsis>
<directivesynopsis>
<name>ScoreBoardFile</name>
<description>Ablageort der Datei, die zur Speicherung von Daten zur
Koordinierung der Kindprozesse verwendet wird</description>
<syntax>ScoreBoardFile <var>Dateipfad</var></syntax>
<default>ScoreBoardFile logs/apache_status</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>beos</module><module>leader</module>
<module>mpm_winnt</module><module>perchild</module><module>prefork</module>
<module>threadpool</module><module>worker</module></modulelist>
<usage>
<p>Apache verwendet ein Scoreboard zur Kommunikation zwischen
seinen Eltern- und Kindprozessen. Einige Architekturen erfordern
eine Datei zur Unterstützung der Kommunikation. Wenn die Datei
undefiniert bleibt, versucht der Apache zuerst, das Scoreboard im
Arbeitsspeicher zu erstellen (Verwendung von anonymem Shared-Memory),
und versucht bei einem Fehlschlag anschließend die Datei auf
der Festplatte zu erstellen (Verwendung von Datei-basiertem
Shared-Memory). Die Angabe dieser Direktive veranlaßt den
Apache stets, die Datei auf der Festplatte zu erstellen.</p>
<example><title>Beispiel</title>
ScoreBoardFile /var/run/apache_status
</example>
<p>Datei-basiertes Shared-Memory ist für Applikationen von
Drittanbietern hilfreich, die direkten Zugriff auf das Scoreboard
benötigen.</p>
<p>Wenn Sie eine <directive>ScoreBoardFile</directive>-Anweisung
verwenden, erreichen Sie eventuell eine höhere Geschwindigkeit, wenn
Sie die Datei auf einer RAM-Disk ablegen. Achten Sie darauf, die
gleichen Warnungen wie über die Ablage von Protokolldateien und
<a href="../misc/security_tips.html">Sicherheit</a> zu beherzigen.</p>
</usage>
<seealso><a href="../stopping.html">Apache beenden und neu
starten</a></seealso>
</directivesynopsis>
<directivesynopsis>
<name>SendBufferSize</name>
<description>Größe des TCP-Puffers</description>
<syntax>SendBufferSize <var>Bytes</var></syntax>
<default>SendBufferSize 0</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>beos</module><module>leader</module>
<module>mpm_netware</module><module>mpm_winnt</module>
<module>mpmt_os2</module><module>perchild</module><module>prefork</module>
<module>threadpool</module><module>worker</module></modulelist>
<usage>
<p>Der Server setzt die Größe des TCP-Puffers auf die
angegebene Anzahl Bytes. Dies ist sehr hilfreich, um Voreinstellungen
alter Standardbetriebssysteme für Hochgeschwindigkeitsverbindungen
mit hoher Latenzzeit anzuheben (<em>d.h.</em> 100ms oder so, wie bei
Interkontinentalverbindungen).</p>
<p>Wird der Wert auf <code>0</code> gesetzt, dann verwendet der Server
die Voreinstellung des Betriebssystems.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>ServerLimit</name>
<description>Obergrenze für die konfigurierbare Anzahl von
Prozessen</description>
<syntax>ServerLimit <var>Anzahl</var></syntax>
<default>Für Details siehe Beschreibung</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>leader</module><module>perchild</module>
<module>prefork</module><module>threadpool</module><module>worker</module>
</modulelist>
<usage>
<p>Bei dem MPM <module>prefork</module> bestimmt die Direktive
den während der Lebensdauer des Apache-Prozesses maximal
einstellbaren Wert für <directive
module="mpm_common">MaxClients</directive>. Beim MPM
<module>worker</module> bestimmt die Direktive in Verbindung mit
<directive module="mpm_common">ThreadLimit</directive> den Maximalwert
für <directive module="mpm_common">MaxClients</directive>
für die Lebensdauer des Apache-Prozesses. Jeder Versuch, diese
Anweisung während eines Neustarts zu ändern, wird ignoriert.
<directive module="mpm_common">MaxClients</directive> kann jedoch
während eines Neustarts geändert werden.</p>
<p>Lassen Sie besondere Vorsicht bei der Verwendung dieser Direktive
walten. Wenn <directive>ServerLimit</directive> auf einen Wert deutlich
höher als notwendig gesetzt wird, wird zusätzliches,
unbenutztes Shared-Memory belegt. Wenn sowohl
<directive>ServerLimit</directive> als auch <directive
module="mpm_common">MaxClients</directive> auf Werte gesetzt werden, die
größer sind, als das System sie handhaben kann, dann kann
der Apache möglicherweise nicht starten, oder das System kann
instabil werden.</p>
<p>Verwenden Sie die Direktive bei dem MPM <module>prefork</module>
nur, wenn Sie <directive module="mpm_common">MaxClients</directive>
auf mehr als 256 (Voreinstellung) setzen müssen. Setzen Sie den
Wert nicht höher als den Wert, den Sie für <directive
module="mpm_common">MaxClients</directive> angeben möchten.</p>
<p>Verwenden Sie die Direktive bei <module>worker</module>,
<module>leader</module> und <module>threadpool</module> nur, wenn Ihre
<directive module="mpm_common">MaxClients</directive>- und
<directive module="mpm_common">ThreadsPerChild</directive>-Einstellungen
mehr als 16 Serverprozesse (Voreinstellung) erfordern. Setzen Sie den
Wert dieser Direktive nicht höher, als die Anzahl der Serverprozesse,
die dafür erforderlich ist, was Sie bei <directive
module="mpm_common">MaxClients</directive> und
<directive module="mpm_common">ThreadsPerChild</directive> angeben
möchten.</p>
<p>Verwenden Sie die Direktive beim MPM <module>perchild</module> nur,
wenn Sie <directive module="perchild">NumServers</directive> auf einen
Wert größer als 8 (Voreinstellung) setzen müssen.</p>
<note><title>Anmerkung</title>
<p>Eine feste Begrenzung von <code>ServerLimit 20000</code> ist in den
Server einkompiliert. Dies soll unangenehme Effekte durch Tippfehler
verhindern.</p>
</note>
</usage>
<seealso><a href="../stopping.html">Apache beenden und neu
starten</a></seealso>
</directivesynopsis>
<directivesynopsis>
<name>StartServers</name>
<description>Anzahl der Kindprozesse des Servers, die beim Start erstellt
werden</description>
<syntax>StartServers <var>Anzahl</var></syntax>
<default>Für Details siehe Beschreibung</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>leader</module><module>mpmt_os2</module>
<module>prefork</module><module>threadpool</module><module>worker</module>
</modulelist>
<usage>
<p>Die Direktive <directive>StartServers</directive> bestimmt
die Anzahl der Kindprozesse des Servers, die beim Start erstellt
werden. Da die Anzahl der Prozesse abhängig von der Last
dynamisch kontrolliert wird, besteht normalerweise wenig
Grund für eine Änderung dieses Parameters.</p>
<p>Die Voreinstellung unterscheidet sich von MPM zu MPM. Bei
<module>leader</module>, <module>threadpool</module> und
<module>worker</module> ist die Voreinstellung
<code>StartServers 3</code>. Die Voreinstellung bei
<module>prefork</module> ist <code>5</code> und bei
<module>mpmt_os2</module> <code>2</code>.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>StartThreads</name>
<description>Anzahl der Threads, die beim Start erstellt werden</description>
<syntax>StartThreads <var>Anzahl</var></syntax>
<default>Für Details siehe Beschreibung</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>beos</module><module>mpm_netware</module>
<module>perchild</module></modulelist>
<usage>
<p>Anzahl der Threads, die beim Start erstellt werden. Da die Anzahl
der Threads abhängig von der Last dynamisch kontrolliert wird,
besteht normalerweise wenig Grund für eine Änderung
dieses Parameters.</p>
<p>Die Voreinstellung für <module>perchild</module> ist
<code>StartThreads 5</code>. Die Direktive setzt während des
Starts die Anzahl der Threads pro Prozess.</p>
<p>Die Voreinstellung bei <module>mpm_netware</module> ist
<code>StartThreads 50</code>. Da hier lediglich ein einzelner Prozess
existiert, ist dies die Gesamtzahl der Threads, die beim Start
erstellt wird, um Anfragen zu bedienen.</p>
<p>Die Voreinstellung für <module>beos</module> ist <code>StartThreads
10</code>. Die Einstellung reflektiert ebenfalls die Gesamtzahl der
Threads, die
beim Start erstellt werden, um Anfragen zu bedienen.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>ThreadLimit</name>
<description>Bestimmt die Obergrenze der konfigurierbaren Anzahl von Threads
pro Kindprozess</description>
<syntax>ThreadLimit <var>Anzahl</var></syntax>
<default>Für Details siehe Beschreibung</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>leader</module><module>mpm_winnt</module>
<module>perchild</module><module>threadpool</module><module>worker</module>
</modulelist>
<compatibility>Verfügbar für <module>mpm_winnt</module> ab
Apache 2.0.41</compatibility>
<usage>
<p>Die Direktive bestimmt den während der Lebensdauer des
Apache-Prozesses maximal einstellbaren Wert für
<directive module="mpm_common">ThreadsPerChild</directive>. Jeder
Versuch, diese Direktive während eines Neustarts zu ändern,
wird ignoriert. <directive module="mpm_common">ThreadsPerChild</directive>
kann jedoch während eines Neustarts modifiziert werden bis zu dem
Wert dieser Anweisung.</p>
<p>Lassen Sie besondere Vorsicht bei der Verwendung dieser Direktive
walten. Wenn <directive>ThreadLimit</directive> auf einen Wert
deutlich höher als <directive
module="mpm_common">ThreadsPerChild</directive> gesetzt wird, wird
zusätzliches, ungenutztes Shared-Memory belegt. Wenn sowohl
<directive>ThreadLimit</directive> als auch <directive
module="mpm_common">ThreadsPerChild</directive> auf Werte gesetzt werden,
die größer sind, als das System sie handhaben kann, dann kann
der Apache möglicherweise nicht starten oder das System kann
instabil werden. Setzen Sie den Wert dieser Direktive nicht höher
als Ihre größte erwartete Einstellung für
<directive module="mpm_common">ThreadsPerChild</directive>
während der aktuellen Ausführung des Apache.</p>
<p>Die Voreinstellung für <directive>ThreadLimit</directive> ist
<code>1920</code> wenn sie zusammen mit <module>mpm_winnt</module>
verwendet wird, und <code>64</code> bei der Verwendung mit anderen
MPMs.</p>
<note><title>Anmerkung</title>
<p>Eine feste Begrenzung von <code>ThreadLimit 20000</code>
(oder <code>ThreadLimit 15000</code> bei <module>mpm_winnt</module>)
ist in den Server einkompiliert. Dies soll unangenehme Effekte durch
Tippfehler verhindern.</p>
</note>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>ThreadsPerChild</name>
<description>Anzahl der Threads, die mit jedem Kindprozess gestartet
werden</description>
<syntax>ThreadsPerChild <var>Anzahl</var></syntax>
<default>Für Details siehe Beschreibung</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>leader</module><module>mpm_winnt</module>
<module>threadpool</module><module>worker</module></modulelist>
<usage>
<p>Die Direktive legt die Anzahl der Threads fest, die mit jedem
Kindprozess gestartet werden. Der Kindprozess erstellt diese Threads
beim Start und erstellt später keine weiteren mehr. Wenn Sie ein
MPM wie <module>mpm_winnt</module> verwenden, wo nur ein
Kindprozess existiert, dann sollte diese Angabe hoch genug sein,
die gesamte Last des Servers zu bewältigen. Wenn Sie ein MPM
wie <module>worker</module> verwenden, wo mehrere Kindprozesse
existieren, dann sollte die <em>Gesamt</em>zahl der Thread groß
genug sein, die übliche Last auf dem Server zu bewältigen.</p>
<p>Die Voreinstellung für <directive>ThreadsPerChild</directive> ist
<code>64</code>, wenn <module>mpm_winnt</module> verwendet wird, und
<code>25</code> bei der Verwendung der anderen MPMs.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>User</name>
<description>Die Benutzerkennung, unter welcher der Server Anfragen
beantwortet</description>
<syntax>User <var>Unix-User-ID</var></syntax>
<default>User #-1</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>leader</module><module>perchild</module>
<module>prefork</module><module>threadpool</module><module>worker</module>
</modulelist>
<compatibility>Seit Apache 2.0 nur in der globalen Server-Konfiguration
gültig</compatibility>
<usage>
<p>Die Direktive <directive>User</directive> legt die Benutzerkennung
fest, mit der der Server Anfragen beantwortet. Um diese Anweisung
zu verwenden, muss der Server als <code>root</code> gestartet werden.
Wenn Sie den Server unter einem nicht-root-Benutzer starten, kann
er nicht zu dem minder privilegierten Benutzer wechseln und wird statt
dessen weiter mit der ursprünglichen Benutzerkennung laufen.
Wenn Sie den Server als <code>root</code> starten, dann ist es normal,
dass der Elternprozess als root weiterläuft.
<var>Unix-User-ID</var> kann sein:</p>
<dl>
<dt>Ein Benutzername</dt>
<dd>Verweist auf den durch Namen angegebenen Benutzer.</dd>
<dt># gefolgt von einer Benutzernummer.</dt>
<dd>Verweist auf einen durch eine Nummer angegebenen Benutzer.</dd>
</dl>
<p>Der Benutzer sollte keine Rechte besitzen, die dazu führen,
dass er in der Lage ist, auf Dateien zuzugreifen, die nicht dafür
bestimmt sind, für die Außenwelt sichtbar zu sein.
Gleichermaßen sollte der Benutzer nicht in der Lage sein,
Code auszuführen, der nicht für HTTP-Anfragen bestimmt ist.
Es wird empfohlen, einen neuen Benutzer und eine neue Gruppe speziell
zur Ausführung des Servers zu erstellen. Einige Administratoren
verwenden den Benutzer <code>nobody</code>. Dies ist jedoch nicht
immer wünschenswert, da der Benuter <code>nobody</code> andere
Rechte auf dem System besitzen kann.</p>
<note type="warning"><title>Sicherheit</title>
<p>Setzen Sie <directive>User</directive> (oder <directive
module="mpm_common">Group</directive>) nicht auf <code>root</code>,
solange Sie nicht genau wissen, was Sie tun, und welches die Gefahren
sind.</p>
</note>
<p>Beim MPM <module>perchild</module>, das dafür gedacht ist,
virtuelle Hosts unter verschiedenen Benutzerkennungen auszuführen,
bestimmt die Direktive <directive>User</directive> die
Benutzerkennung für den Hauptserver und bildet den Rückfallwert
für <directive type="section"
module="core">VirtualHost</directive>-Abschnitte ohne eine
<directive module="perchild">AssignUserID</directive>-Anweisung.</p>
<p>Wichtiger Hinweis: Die Verwendung dieser Direktive innerhalb von
<directive module="core" type="section">VirtualHost</directive> wird
nicht mehr unterstützt. Benutzen Sie <directive
module="mod_suexec">SuexecUserGroup</directive>, um Ihren Server
für <a href="../suexec.html">suexec</a> einzurichten.</p>
<note><title>Anmerkung</title>
<p>Obwohl die Direktive <directive>User</directive> in den MPMs
<module>beos</module> und <module>mpmt_os2</module> existiert, ist
sie dort tatsächlich eine Leeranweisung und exisitert nur
aus Kompatibilitätsgründen.</p>
</note>
</usage>
</directivesynopsis>
</modulesynopsis>
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
