2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
4 <!-- English Revision: 151408:1448588 (outdated) -->
7 Licensed to the Apache Software Foundation (ASF) under one or more
8 contributor license agreements. See the NOTICE file distributed with
9 this work for additional information regarding copyright ownership.
10 The ASF licenses this file to You under the Apache License, Version 2.0
11 (the "License"); you may not use this file except in compliance with
12 the License. You may obtain a copy of the License at
14 http://www.apache.org/licenses/LICENSE-2.0
16 Unless required by applicable law or agreed to in writing, software
17 distributed under the License is distributed on an "AS IS" BASIS,
18 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19 See the License for the specific language governing permissions and
20 limitations under the License.
23 <modulesynopsis metafile="mpm_common.xml.meta">
25 <name>mpm_common</name>
26 <description>Eine Sammlung von Direktiven, die in mehr als einem
27 Multi-Processing-Modul (MPM) implementiert sind.</description>
31 <name>AcceptMutex</name>
32 <description>Vom Apache verwendete Methode zur Serialisierung mehrerer
33 Kindprozesse, die Anfragen an Netzwerk-Sockets entgegennehmen.</description>
34 <syntax>AcceptMutex Default|<var>Methode</var></syntax>
35 <default>AcceptMutex Default</default>
36 <contextlist><context>server config</context></contextlist>
37 <modulelist><module>leader</module><module>perchild</module>
38 <module>prefork</module><module>threadpool</module><module>worker</module>
42 <p>Die Direktive <directive>AcceptMutex</directive> bestimmt die
43 Methode, die der Apache zur Serialisierung mehrerer Kindprozesse
44 verwendet, welche Anfragen an Netzwerk-Sockets entgegennehmen. Vor
45 Apache 2.0 war diese Methode nur zur Kompilierungszeit einstellbar.
46 Die optimale Methode ist sehr stark von der Architektur und
47 Plattform abhängig. Lesen Sie bitte <a
48 href="../misc/perf-tuning.html">Perfomance-Hinweise</a> für
51 <p>Wenn die Direktive auf <code>Default</code> eingestellt ist, dann
52 wird die zur Kompilierungszeit gewählte Voreinstellung verwendet.
53 Weitere mögliche Methoden sind unten angegeben. Beachten Sie, dass
54 nicht alle Methoden auf allen Plattformen verfügbar sind. Wird
55 eine Methode angegeben, die nicht verfügbar ist, dann wird
56 eine Nachricht in das Fehlerprotokoll geschrieben, welche die
57 verfügbaren Methoden auflistet.</p>
60 <dt><code>flock</code></dt>
61 <dd>verwendet die Systemfunktion <code>flock(2)</code>, um die
62 durch die <directive module="mpm_common"
63 >LockFile</directive>-Direktive definierte Datei zu sperren.</dd>
65 <dt><code>fcntl</code></dt>
66 <dd>verwendet die Systemfunktion <code>fcntl(2)</code>, um die
67 durch die <directive module="mpm_common"
68 >LockFile</directive>-Direktive definierte Datei zu sperren.</dd>
70 <dt><code>posixsem</code></dt>
71 <dd>verwendet POSIX-kompatible Semaphore, um den Mutex zu
74 <dt><code>pthread</code></dt>
75 <dd>verwendet gemäß der POSIX-Thread-Spezifikation
76 implementierte POSIX-Mutexe.</dd>
78 <dt><code>sysvsem</code></dt>
79 <dd>verwendet Semaphoren des SysV-Typs, um den Mutex zu
83 <p>Um die bei der Kompilierung gewählte Voreinstellung für
84 Ihr System herauszufinden, können Sie Ihr <directive module="core"
85 >LogLevel</directive> auf <code>debug</code> setzen. Dann wird der
86 voreingestellte <directive>AcceptMutex</directive> ins <directive
87 module="core">ErrorLog</directive> geschrieben.</p>
89 <note type="warning"><title>Warnung</title>
90 <p>Auf den meisten Systemen stoppt der Server mit der Beantwortung von
91 Anfragen, wenn die Option <code>pthread</code> ausgewählt wurde und
92 ein Kindprozess unkontrolliert endet während er den
93 <code>AcceptCntl</code>-Mutex hält. In diesem Fall muss der Server
94 manuell neu gestartet werden, um wieder weiter zu arbeiten.</p>
95 <p>Eine Ausnahme stellt Solaris dar, da es einen Mechanismus anbietet, den
96 der Apache verwendet und der üblicherweise die Freigabe des Mutex
97 erlaubt, nachdem ein Kindprozess, der gerade einen Mutex hält,
98 abgestürzt ist.</p>
99 <p>Wenn Ihr System die Funktion
100 <code>pthread_mutexattr_setrobust_np()</code> bereitstellt, können
101 Sie wahrscheinlich die Option <code>pthread</code> problemlos
108 <name>CoreDumpDirectory</name>
109 <description>Verzeichnis, in das der Apache zu wechseln versucht, bevor er
110 einen Hauptspeicherauszug erstellt</description>
111 <syntax>CoreDumpDirectory <var>Verzeichnis</var></syntax>
112 <default>Für die Voreinstellung siehe Beschreibung</default>
113 <contextlist><context>server config</context></contextlist>
114 <modulelist><module>beos</module><module>leader</module>
115 <module>mpm_winnt</module><module>perchild</module><module>prefork</module>
116 <module>threadpool</module><module>worker</module></modulelist>
119 <p>Dies beeinflusst das Verzeichnis, in welches der Apache zu wechseln
120 versucht, bevor er einen Hauptspeicherauszug <transnote>einen
121 so genannten Core-Dump</transnote> erstellt. Die Voreinstellung ist das
122 <directive module="core">ServerRoot</directive>-Verzeichnis. Da dieses
123 jedoch nicht für den Benutzer beschreibbar sein soll, unter dem
124 der Server läuft, werden normalerweise keine
125 Hauptspeicherauszüge geschrieben. Wenn Sie zum Debuggen
126 einen Hauptspeicherauszug haben möchten, können Sie
127 ihn mit dieser Direktive an einem anderen Ort ablegen lassen.</p>
129 <note><title>Hauptspeicherauszüge unter Linux</title>
130 <p>Wenn Apache als <code>root</code> startet und zu einem anderen Benutzer
131 wechselt, <em>deaktiviert</em> der Linux-Kernel Hauptspeicherauszüge
132 auch dann, wenn der Prozess in dem Verzeichnis schreiben darf. Ab Linux
133 2.4 reaktiviert Apache (ab 2.0.46) Hauptspeicherauszüge wieder,
134 jedoch nur dann, wenn Sie explizit
135 <directive>CoreDumpDirectory</directive> konfigurieren.</p>
141 <name>EnableExceptionHook</name>
142 <description>Aktiviert einen Hook, der nach einem Absturz noch
143 Ausnahmefehler behandeln lassen kann</description>
144 <syntax>EnableExceptionHook On|Off</syntax>
145 <default>EnableExceptionHook Off</default>
146 <contextlist><context>server config</context></contextlist>
147 <modulelist><module>leader</module><module>perchild</module>
148 <module>prefork</module><module>threadpool</module>
149 <module>worker</module></modulelist>
150 <compatibility>Verfügbar seit Version 2.0.49</compatibility>
153 <p>Diese Direktive ist aus Sicherheitsgründen nur verfügbar,
154 wenn der Server mit der Option <code>--enable-exception-hook</code>
155 konfiguriert wurde. Sie aktiviert einen Hook, der es externen Modulen
156 erlaubt, sich dort einzuhängen und nach dem Absturz eines
157 Kindprozesses noch Aktionen durchzuführen.</p>
159 <p>Es existieren bereits zwei Module, <code>mod_whatkilledus</code> und
160 <code>mod_backtrace</code>, welche diesen Hook verwenden. Weitere
161 Informationen hierzu finden Sie auf Jeff Trawicks <a
162 href="http://www.apache.org/~trawick/exception_hook.html"
163 >EnableExceptionHook-Seite</a>.</p>
169 <description>Benutzergruppe, unter welcher der Server Anfragen
170 beantwortet</description>
171 <syntax>Group <var>Unix-Gruppe</var></syntax>
172 <default>Group #-1</default>
173 <contextlist><context>server config</context></contextlist>
174 <modulelist><module>beos</module><module>leader</module>
175 <module>mpmt_os2</module><module>perchild</module><module>prefork</module>
176 <module>threadpool</module><module>worker</module></modulelist>
177 <compatibility>Seit Apache 2.0 nur in der globalen Server-Konfiguration
178 gültig</compatibility>
181 <p>Die Direktive <directive>Group</directive> bestimmt die
182 Benutzergruppe, unter welcher der Server Anfragen beantwortet.
183 Um diese Direktive zu verwenden, muss der Server als <code>root</code> gestartet
184 werden. Wenn Sie den Server unter einem nicht-root-Benutzer starten,
185 wird er nicht zur angegebenen Gruppe wechseln können und statt
186 dessen weiter mit der Gruppe des ursprünglichen Benutzers
187 laufen. <var>Unix-Gruppe</var> kann sein:</p>
190 <dt>Ein Gruppenname</dt>
191 <dd>Verweist auf die durch den Namen angegebene Gruppe.</dd>
193 <dt><code>#</code> gefolgt von einer Gruppennummer.</dt>
194 <dd>Verweist auf die durch ihre Nummer angegebene Gruppe.</dd>
197 <example><title>Beispiel</title>
201 <p>Es wird empfohlen, dass Sie eine neue Gruppe speziell zum Betrieb
202 des Servers erstellen. Einige Administratoren verwenden den Benutzer
203 <code>nobody</code>. Dies ist jedoch nicht immer möglich
204 oder gewünscht.</p>
206 <note type="warning"><title>Sicherheit</title>
207 <p>Setzen Sie <directive>Group</directive> (oder <directive
208 module="mpm_common">User</directive>) nicht auf <code>root</code>,
209 solange Sie nicht ganz genau wissen, was Sie tun und welche Gefahren
213 <p>Wichtiger Hinweis: Die Verwendung der Direktive innerhalb von
214 <directive module="core" type="section">VirtualHost</directive>
215 wird nicht länger unterstützt. Benutzen Sie <directive
216 module="mod_suexec">SuexecUserGroup</directive> um Ihren Server
217 für <program>suexec</program> einzurichten.</p>
219 <note><title>Anmerkung</title>
220 <p>Obwohl die Direktive <directive>Group</directive> in den MPMs
221 <module>beos</module> und <module>mpmt_os2</module> existiert, ist
222 sie dort tatsächlich eine Leeranweisung und exisitert nur
223 aus Kompatibilitätsgründen.</p>
230 <description>Datei, in welcher der Server die Prozess-ID des Daemons
232 <syntax>PidFile <var>Dateiname</var></syntax>
233 <default>PidFile logs/httpd.pid</default>
234 <contextlist><context>server config</context></contextlist>
235 <modulelist><module>beos</module><module>leader</module>
236 <module>mpm_winnt</module><module>mpmt_os2</module>
237 <module>perchild</module><module>prefork</module>
238 <module>threadpool</module><module>worker</module></modulelist>
241 <p>Die Direktive <directive>PidFile</directive> bestimmt die Datei,
242 in welcher der Server die Prozess-ID des Daemons ablegt. Wenn der
243 Dateiname nicht absolut angegeben wird, wird er relativ zu
244 <directive module="core">ServerRoot</directive> interpretiert.</p>
246 <example><title>Beispiel</title>
247 PidFile /var/run/apache.pid
250 <p>Es ist oft hilfreich, dem Server ein Signal senden zu können,
251 damit er seine <directive module="core">ErrorLog</directive>s und
252 <directive module="mod_log_config">TransferLog</directive>s
253 schließt und dann neu öffnet und seine
254 Konfigurationsdateien neu einliest. Dies kann durch Senden eines
255 SIGHUP-Signals (kill -1) an die Prozess-ID geschehen, die im
256 <directive>PidFile</directive> eingetragen ist.</p>
258 <p>Die <directive>PidFile</directive>-Datei unterliegt den
259 gleichen Warnungen über die Ablage von Protokolldateien
260 und <a href="../misc/security_tips.html#serverroot">Sicherheit</a>.</p>
262 <note><title>Anmerkung</title>
263 <p>Ab Apache 2 wird empfohlen, nur das Skript <program>
264 apachectl</program> zum (Neu-)Starten und Stoppen des Servers zu
272 <description>IP-Adressen und Ports, an denen der Server lauscht</description>
273 <syntax>Listen [<var>IP-Addresse</var>:]<var>Port</var></syntax>
274 <contextlist><context>server config</context></contextlist>
275 <modulelist><module>beos</module><module>leader</module>
276 <module>mpm_netware</module><module>mpm_winnt</module>
277 <module>mpmt_os2</module><module>perchild</module>
278 <module>prefork</module><module>threadpool</module><module>worker</module>
280 <compatibility>Seit Apache 2.0 vorgeschrieben</compatibility>
283 <p>Die Direktive <directive>Listen</directive> weist den Apache an,
284 nur an den angegebenen IP-Adressen oder Ports zu lauschen.
285 Standardmäßig antwortet er auf alle Anfragen an allen
286 IP-Interfaces. <directive>Listen</directive> ist nun eine notwendige
287 Anweisung. Wenn sie nicht in der Konfigurationsdatei enthalten ist,
288 wird der Server-Start fehlschlagen. Dies ist eine Änderung
289 gegenüber früheren Versionen des Apache.</p>
291 <p>Die Direktive <directive>Listen</directive> weist den Server an,
292 ankommende Anfragen am angegebenen Port oder der
293 Kombination aus Adresse und Port entgegenzunehmen. Wenn nur eine Portnummer
294 angegeben ist, dann lauscht der Server am angegebenen Port an allen
295 Interfaces. Wenn sowohl eine IP-Adresse als auch ein Port angegeben
296 sind, dann lauscht der Server am angegeben Port und Interface.</p>
298 <p>Es können mehrere <directive>Listen</directive>-Anweisungen
299 verwendet werden, um eine Reihe von Adressen und Port anzugeben, an
300 denen gelauscht werden soll. Der Server antwortet auf Anfragen von
301 jedem der aufgeführten Adressen und Ports.</p>
303 <p>Um beispielsweise den Server Verbindungen an den beiden Ports 80 und
304 8000 annehmen zu lassen, verwenden Sie:</p>
311 <p>Um den Server Verbindungen an zwei angegebenen Interfaces und Ports
312 annehmen zu lassen, verwenden Sie:</p>
315 Listen 192.170.2.1:80<br />
316 Listen 192.170.2.5:8000
319 <p>IPv6-Adressen müssen wie in dem folgenden Beispiel in eckige
320 Klammern eingeschlossen werden:</p>
323 Listen [2001:db8::a00:20ff:fea7:ccea]:80
326 <note><title>Fehlermöglichkeit</title>
327 Mehrere <directive>Listen</directive>-Direktiven für gleiche
328 IP-Adresse und Port führen zur Fehlermeldung
329 <code>Address already in use</code> <transnote>Adresse schon in
330 Benutzung</transnote>.
333 <seealso><a href="../dns-caveats.html">DNS-Probleme</a></seealso>
334 <seealso><a href="../bind.html">Bestimmen, welche Adressen und Ports der
335 Apache verwendet</a></seealso>
339 <name>ListenBackLog</name>
340 <description>Maximale Länge der Warteschlange schwebender
341 Verbindungen</description>
342 <syntax>ListenBacklog <var>backlog</var></syntax>
343 <default>ListenBacklog 511</default>
344 <contextlist><context>server config</context></contextlist>
345 <modulelist><module>beos</module><module>leader</module>
346 <module>mpm_netware</module><module>mpm_winnt</module>
347 <module>mpmt_os2</module><module>perchild</module><module>prefork</module>
348 <module>threadpool</module><module>worker</module></modulelist>
351 <p>Die maximale Länge der Warteschlange schwebender Verbindungen.
352 Üblicherweise ist keine Feineinstellung notwendig oder sinnvoll,
353 auf einigen System kann es jedoch gewünscht sein, diesen Wert bei
354 TCP-SYN-Angriffen zu erhöhen. Beachten Sie auch die Beschreibung des
355 backlog-Parameters der Systemfunktion <code>listen(2)</code>.</p>
357 <p>Der Wert wird vom Betriebssystem oft auf eine niedrigere
358 Einstellung begrenzt. Dies variiert von Betriebssystem zu Betriebssystem.
359 Beachten Sie auch, dass viele Betriebssyteme nicht genau beachten,
360 was für backlog angegeben ist, jedoch einen Wert basierend auf der
361 Angabe (normalerweiseweise jedoch größer als diese) verwenden.</p>
366 <name>LockFile</name>
367 <description>Ablageort der Lock-Datei für die Serialisierung von
368 entgegengenommenen Anfragen</description>
369 <syntax>LockFile <var>Dateiname</var></syntax>
370 <default>LockFile logs/accept.lock</default>
371 <contextlist><context>server config</context></contextlist>
372 <modulelist><module>leader</module><module>perchild</module>
373 <module>prefork</module><module>threadpool</module><module>worker</module>
377 <p>Die Direktive <directive>LockFile</directive> legt den Pfad zur
378 Lock-Datei fest, die verwendet wird, wenn der Apache mit einer der
379 <directive module="mpm_common">AcceptMutex</directive>-Einstellungen
380 <code>fcntl</code> oder <code>flock</code> verwendet wird. Die Anweisung
381 sollte normalerweise bei der Voreinstellung belassen werden.
382 Der Hauptgrund, sie zu ändern, ist, wenn das
383 <code>logs</code>-Verzeichnis auf einem per NFS-eingebundenen Laufwerk
384 liegt, da <strong>die Lock-Datei auf einer lokalen Platte abgelegt sein
385 muss</strong>. Die PID <transnote>Prozess-ID</transnote> des
386 Hauptserverprozesses wird automatisch an den Dateinamen angehängt.</p>
388 <note type="warning"><title>Sicherheit</title>
389 <p>Es ist am besten, die Ablage in einem allgemein <transnote>für
390 jedermann</transnote> beschreibbaren
391 Verzeichnis wie <code>/var/tmp</code> <em>zu vermeiden</em>, da
392 ein Denial-of-Servide-Angriff gestartet werden könnte und der
393 Server am Start gehindert werden könnte, indem eine Lock-Datei
394 mit dem gleichen Namen erstellt wird, wie der Server sie zu erstellen
395 versuchen würde.</p>
398 <seealso><directive module="mpm_common">AcceptMutex</directive></seealso>
402 <name>MaxClients</name>
403 <description>Maximale Anzahl der Kindprozesse, die zur Bedienung von Anfragen
404 gestartet wird</description>
405 <syntax>MaxClients <var>Anzahl</var></syntax>
406 <default>Für Details siehe Beschreibung</default>
407 <contextlist><context>server config</context></contextlist>
408 <modulelist><module>beos</module><module>leader</module>
409 <module>prefork</module><module>threadpool</module><module>worker</module>
413 <p>Die Direktive <directive>MaxClients</directive> setzt die Grenze
414 für die Anzahl gleichzeitig bedienter Anfragen. Jeder
415 Verbindungsversuch oberhalb der <directive
416 >MaxClients</directive>-Begrenzung wird üblicherweise in eine
417 Warteschlange gestellt, bis zu einer Anzahl basierend auf der
418 <directive module="mpm_common">ListenBacklog</directive>-Anweisung.
419 Sobald ein Kindprozess am Ende einer anderen Anfrage freigegeben wird,
420 wird die Verbindung bedient.</p>
422 <p>Für Server ohne Thread-Unterstützung (<em>z.B.</em>
423 <module>prefork</module>) wird <directive>MaxClients</directive> als
424 maximale Anzahl der Kindprozesse verstanden, die zur Bedienung von
425 Anfragen gestartet werden. Die Voreinstellung ist <code>256</code>. Um
426 diesen Wert zu erhöhen, muss auch <directive
427 module="mpm_common">ServerLimit</directive> angehoben werden.</p>
429 <p>Bei Servern mit Thread-Unterstützung und bei Hybrid-Servern
430 (<em>z.B.</em> <module>beos</module> oder <module>worker</module>)
431 begrenzt <directive>MaxClients</directive> die Gesamtzahl der Threads,
432 die für die Bedienung von Anfragen verfügbar sind.
433 Die Voreinstellung für <module>beos</module> ist <code>50</code>.
434 Bei Hybrid-MPMs ist die Voreinstellung <code>16</code> (<directive
435 module="mpm_common">ServerLimit</directive>) multipliziert mit
436 dem Wert <code>25</code> (<directive module="mpm_common"
437 >ThreadsPerChild</directive>). Um <directive>MaxClients</directive>
438 auf einen Wert zu erhöhen, der mehr als 16 Prozesse erfordert,
439 müssen Sie daher auch <directive module="mpm_common"
440 >ServerLimit</directive> anheben.</p>
445 <name>MaxMemFree</name>
446 <description>Maximale Menge des Arbeitsspeichers, den die
447 Haupt-Zuteilungsroutine verwalten darf, ohne <code>free()</code>
448 aufzurufen</description>
449 <syntax>MaxMemFree <var>KBytes</var></syntax>
450 <default>MaxMemFree 0</default>
451 <contextlist><context>server config</context></contextlist>
452 <modulelist><module>beos</module><module>leader</module>
453 <module>mpm_netware</module><module>prefork</module>
454 <module>threadpool</module><module>worker</module><module>mpm_winnt</module></modulelist>
457 <p>Die Direktive <directive>MaxMemFree</directive> gibt die maximale
458 Menge freier Kilobytes an, welche die Haupt-Zuteilungsroutine verwalten
459 darf, ohne <code>free()</code> aufzurufen. Wenn keine Angabe gemacht wird,
460 oder Null angegeben ist, wird dieser Wert nicht eingeschränkt.</p>
465 <name>MaxRequestsPerChild</name>
466 <description>Obergrenze für die Anzahl von Anfragen, die ein einzelner
467 Kindprozess während seines Lebens bearbeitet</description>
468 <syntax>MaxRequestsPerChild <var>number</var></syntax>
469 <default>MaxRequestsPerChild 10000</default>
470 <contextlist><context>server config</context></contextlist>
471 <modulelist><module>leader</module><module>mpm_netware</module>
472 <module>mpm_winnt</module><module>mpmt_os2</module>
473 <module>perchild</module><module>prefork</module>
474 <module>threadpool</module><module>worker</module></modulelist>
477 <p>Die Direktive <directive>MaxRequestsPerChild</directive> legt die
478 Grenze für die Anzahl von Anfragen fest, die ein einzelner
479 Kinprozess während seines Lebens bearbeitet. Nach
480 <directive>MaxRequestsPerChild</directive> Anfragen stirbt der
481 Kindprozess. Wenn <directive>MaxRequestsPerChild</directive>
482 <code>0</code> ist, endet der Prozess niemals.</p>
484 <note><title>Abweichende Voreinstellungen</title>
485 <p>Die Voreinstellung für <module>mpm_netware</module> und
486 <module>mpm_winnt</module> ist <code>0</code>.</p>
489 <p>Die Begrenzung von <directive>MaxRequestsPerChild</directive> auf einen
490 Wert ungleich Null hat zwei vorteilhafte Auswirkungen:</p>
493 <li>sie begrenzt die Menge an Arbeitsspeicher, die ein Prozess
494 durch (versehentliche) Speicherlecks verbrauchen kann.</li>
496 <li>das Festlegen einer endlichen Lebensdauer von Prozessen hilft, die
497 Anzahl von Prozessen zu reduzieren, wenn die Serverlast
498 zurückgeht.</li>
501 <note><title>Anmerkung</title>
502 <p>Bei <directive module="core">KeepAlive</directive>-Anfragen
503 wird nur die erste Anfrage für diese begrenzung gezählt.
504 Eigentlich wird nur die Begrenzung für die Anzahl der
505 <em>Verbindungen</em> pro Kindprozess geändert.</p>
511 <name>MaxSpareThreads</name>
512 <description>Maximale Anzahl unbeschäftigter Threads</description>
513 <syntax>MaxSpareThreads <var>Anzahl</var></syntax>
514 <default>Für Details siehe Beschreibung</default>
515 <contextlist><context>server config</context></contextlist>
516 <modulelist><module>beos</module><module>leader</module>
517 <module>mpm_netware</module><module>mpmt_os2</module>
518 <module>perchild</module><module>threadpool</module><module>worker</module>
522 <p>Maximale Anzahl unbeschäftigter Threads. Die verschiedenen MPMs
523 behandeln diese Anweisung unterschiedlich.</p>
525 <p>Die Voreinstellung für <module>perchild</module> ist
526 <code>MaxSpareThreads 10</code>. Das MPM überwacht die Anzahl der
527 unbeschäftigten Threads auf der Basis einzelner Kindprozesse. Wenn
528 zu viele unbeschäftigte Threads in einem Kindprozess existieren,
529 beendet der Server Threads innerhalb dieses Kindprozesses.</p>
531 <p>Die Voreinstellung für <module>worker</module>,
532 <module>leader</module> und <module>threadpool</module> ist
533 <code>MaxSpareThreads 250</code>. Diese MPMs behandeln Threads
534 auf einer serverweiten Basis. Wenn zu viele unbeschäftigte Threads
535 im Server existieren, dann werden solange Kindprozesse beendet, bis
536 die Anzahl der unbeschäftigten Threads kleiner als der
537 angegebene Wert ist.</p>
539 <p>Die Voreinstellung für <module>mpm_netware</module> ist
540 <code>MaxSpareThreads 100</code>. Da dieses MPM nur einen einzigen
541 Prozess ausführt, ist die Zählung überschüssiger
542 Threads ebenfalls serverweit.</p>
544 <p><module>beos</module> and <module>mpmt_os2</module> arbeiten
545 ähnlich wie <module>mpm_netware</module>. Die Voreinstellung
546 für <module>beos</module> ist <code>MaxSpareThreads 50</code>.
547 Die Voreinstellung für <module>mpmt_os2</module> ist
550 <note><title>Restriktionen</title>
551 <p>Der Wertebereich von <directive>MaxSpareThreads</directive>
552 ist eingeschränkt. Apache korrigiert den angegebenen Wert
553 automatisch gemäß den folgenden Regeln:</p>
555 <li><module>perchild</module> verlangt, dass <directive
556 >MaxSpareThreads</directive> kleiner oder gleich <directive
557 module="mpm_common">ThreadLimit</directive> ist.</li>
559 <li><module>mpm_netware</module> verlangt einen Wert größer
560 als <directive module="mpm_common">MinSpareThreads</directive>.</li>
562 <li>Bei <module>leader</module>, <module>threadpool</module> und
563 <module>worker</module> muss der Wert größer oder gleich
564 der Summe aus <directive
565 module="mpm_common">MinSpareThreads</directive> und
566 <directive module="mpm_common">ThreadsPerChild</directive> sein.</li>
570 <seealso><directive module="mpm_common">MinSpareThreads</directive></seealso>
571 <seealso><directive module="mpm_common">StartServers</directive></seealso>
575 <name>MinSpareThreads</name>
576 <description>Minimale Anzahl unbeschäftigter Threads, die zur
577 Bedienung von Anfragespitzen zur Verfügung stehen</description>
578 <syntax>MinSpareThreads <var>Anzahl</var></syntax>
579 <default>Für Details siehe Beschreibung</default>
580 <contextlist><context>server config</context></contextlist>
581 <modulelist><module>beos</module><module>leader</module>
582 <module>mpm_netware</module><module>mpmt_os2</module>
583 <module>perchild</module><module>threadpool</module><module>worker</module>
587 <p>Minimale Anzahl unbeschäftigter Threads, um Anfragespitzen
588 zu bedienen. Die verschiedenen MPMs behandeln die Anweisung
591 <p><module>perchild</module> verwendet die Voreinstellung
592 <code>MinSpareThreads 5</code> und überwacht die Anzahl der
593 unbeschäftigten Threads auf der Basis einzelner Kindprozesse. Wenn
594 in einem Kindprozess nicht genügend unbeschäftigte
595 Threads vorhanden sind, erstellt der Server neue Threads innerhalb
596 dieses Kindprozesses. Wenn Sie also <directive module="perchild"
597 >NumServers</directive> auf <code>10</code> und <directive
598 >MinSpareThreads</directive> auf einen Wert von <code>5</code> setzen,
599 haben Sie mindestens 50 unbeschäftigte Threads auf Ihrem
602 <p><module>worker</module>, <module>leader</module> und
603 <module>threadpool</module> verwenden eine Voreinstellung von
604 <code>MinSpareThreads 75</code> und behandeln unbeschäftigte
605 Threads auf serverweiter Basis. Wenn nicht genügend
606 unbeschäftigte Threads im Server vorhanden sind, dann
607 werden solange Kindprozesse erzeugt, bis die Anzahl unbeschäftigter
608 Threads größer als der angegebene Wert ist.</p>
610 <p><module>mpm_netware</module> verwendet die Voreinstellung
611 <code>MinSpareThreads 10</code> und verfolgt dies serverweit, da
612 es ein Einzelprozess-MPM ist.</p>
614 <p><module>beos</module> und <module>mpmt_os2</module> arbeiten
615 ähnlich wie <module>mpm_netware</module>. Die Voreinstellung
616 für <module>beos</module> ist <code>MinSpareThreads 1</code>.
617 Die Voreinstellung für <module>mpmt_os2</module> ist
621 <seealso><directive module="mpm_common">MaxSpareThreads</directive></seealso>
622 <seealso><directive module="mpm_common">StartServers</directive></seealso>
626 <name>ScoreBoardFile</name>
627 <description>Ablageort der Datei, die zur Speicherung von Daten zur
628 Koordinierung der Kindprozesse verwendet wird</description>
629 <syntax>ScoreBoardFile <var>Dateipfad</var></syntax>
630 <default>ScoreBoardFile logs/apache_status</default>
631 <contextlist><context>server config</context></contextlist>
632 <modulelist><module>beos</module><module>leader</module>
633 <module>mpm_winnt</module><module>perchild</module><module>prefork</module>
634 <module>threadpool</module><module>worker</module></modulelist>
637 <p>Apache verwendet ein Scoreboard zur Kommunikation zwischen
638 seinen Eltern- und Kindprozessen. Einige Architekturen erfordern
639 eine Datei zur Unterstützung der Kommunikation. Wenn die Datei
640 undefiniert bleibt, versucht der Apache zuerst, das Scoreboard im
641 Arbeitsspeicher zu erstellen (Verwendung von anonymem Shared-Memory),
642 und versucht bei einem Fehlschlag anschließend die Datei auf
643 der Festplatte zu erstellen (Verwendung von Datei-basiertem
644 Shared-Memory). Die Angabe dieser Direktive veranlaßt den
645 Apache stets, die Datei auf der Festplatte zu erstellen.</p>
647 <example><title>Beispiel</title>
648 ScoreBoardFile /var/run/apache_status
651 <p>Datei-basiertes Shared-Memory ist für Applikationen von
652 Drittanbietern hilfreich, die direkten Zugriff auf das Scoreboard
655 <p>Wenn Sie eine <directive>ScoreBoardFile</directive>-Anweisung
656 verwenden, erreichen Sie eventuell eine höhere Geschwindigkeit, wenn
657 Sie die Datei auf einer RAM-Disk ablegen. Achten Sie darauf, die
658 gleichen Warnungen wie über die Ablage von Protokolldateien und
659 <a href="../misc/security_tips.html">Sicherheit</a> zu beherzigen.</p>
661 <seealso><a href="../stopping.html">Apache beenden und neu
662 starten</a></seealso>
666 <name>SendBufferSize</name>
667 <description>Größe des TCP-Puffers</description>
668 <syntax>SendBufferSize <var>Bytes</var></syntax>
669 <default>SendBufferSize 0</default>
670 <contextlist><context>server config</context></contextlist>
671 <modulelist><module>beos</module><module>leader</module>
672 <module>mpm_netware</module><module>mpm_winnt</module>
673 <module>mpmt_os2</module><module>perchild</module><module>prefork</module>
674 <module>threadpool</module><module>worker</module></modulelist>
677 <p>Der Server setzt die Größe des TCP-Puffers auf die
678 angegebene Anzahl Bytes. Dies ist sehr hilfreich, um Voreinstellungen
679 alter Standardbetriebssysteme für Hochgeschwindigkeitsverbindungen
680 mit hoher Latenzzeit anzuheben (<em>d.h.</em> 100ms oder so, wie bei
681 Interkontinentalverbindungen).</p>
683 <p>Wird der Wert auf <code>0</code> gesetzt, dann verwendet der Server
684 die Voreinstellung des Betriebssystems.</p>
689 <name>ServerLimit</name>
690 <description>Obergrenze für die konfigurierbare Anzahl von
691 Prozessen</description>
692 <syntax>ServerLimit <var>Anzahl</var></syntax>
693 <default>Für Details siehe Beschreibung</default>
694 <contextlist><context>server config</context></contextlist>
695 <modulelist><module>leader</module><module>perchild</module>
696 <module>prefork</module><module>threadpool</module><module>worker</module>
700 <p>Bei dem MPM <module>prefork</module> bestimmt die Direktive
701 den während der Lebensdauer des Apache-Prozesses maximal
702 einstellbaren Wert für <directive
703 module="mpm_common">MaxClients</directive>. Beim MPM
704 <module>worker</module> bestimmt die Direktive in Verbindung mit
705 <directive module="mpm_common">ThreadLimit</directive> den Maximalwert
706 für <directive module="mpm_common">MaxClients</directive>
707 für die Lebensdauer des Apache-Prozesses. Jeder Versuch, diese
708 Anweisung während eines Neustarts zu ändern, wird ignoriert.
709 <directive module="mpm_common">MaxClients</directive> kann jedoch
710 während eines Neustarts geändert werden.</p>
712 <p>Lassen Sie besondere Vorsicht bei der Verwendung dieser Direktive
713 walten. Wenn <directive>ServerLimit</directive> auf einen Wert deutlich
714 höher als notwendig gesetzt wird, wird zusätzliches,
715 unbenutztes Shared-Memory belegt. Wenn sowohl
716 <directive>ServerLimit</directive> als auch <directive
717 module="mpm_common">MaxClients</directive> auf Werte gesetzt werden, die
718 größer sind, als das System sie handhaben kann, dann kann
719 der Apache möglicherweise nicht starten, oder das System kann
722 <p>Verwenden Sie die Direktive bei dem MPM <module>prefork</module>
723 nur, wenn Sie <directive module="mpm_common">MaxClients</directive>
724 auf mehr als 256 (Voreinstellung) setzen müssen. Setzen Sie den
725 Wert nicht höher als den Wert, den Sie für <directive
726 module="mpm_common">MaxClients</directive> angeben möchten.</p>
728 <p>Verwenden Sie die Direktive bei <module>worker</module>,
729 <module>leader</module> und <module>threadpool</module> nur, wenn Ihre
730 <directive module="mpm_common">MaxClients</directive>- und
731 <directive module="mpm_common">ThreadsPerChild</directive>-Einstellungen
732 mehr als 16 Serverprozesse (Voreinstellung) erfordern. Setzen Sie den
733 Wert dieser Direktive nicht höher, als die Anzahl der Serverprozesse,
734 die dafür erforderlich ist, was Sie bei <directive
735 module="mpm_common">MaxClients</directive> und
736 <directive module="mpm_common">ThreadsPerChild</directive> angeben
739 <p>Verwenden Sie die Direktive beim MPM <module>perchild</module> nur,
740 wenn Sie <directive module="perchild">NumServers</directive> auf einen
741 Wert größer als 8 (Voreinstellung) setzen müssen.</p>
743 <note><title>Anmerkung</title>
744 <p>Eine feste Begrenzung von <code>ServerLimit 20000</code> ist in den
745 Server einkompiliert (bei dem MPM <module>prefork</module> 200000).
746 Dies soll unangenehme Effekte durch Tippfehler verhindern.</p>
749 <seealso><a href="../stopping.html">Apache beenden und neu
750 starten</a></seealso>
754 <name>StartServers</name>
755 <description>Anzahl der Kindprozesse des Servers, die beim Start erstellt
757 <syntax>StartServers <var>Anzahl</var></syntax>
758 <default>Für Details siehe Beschreibung</default>
759 <contextlist><context>server config</context></contextlist>
760 <modulelist><module>leader</module><module>mpmt_os2</module>
761 <module>prefork</module><module>threadpool</module><module>worker</module>
765 <p>Die Direktive <directive>StartServers</directive> bestimmt
766 die Anzahl der Kindprozesse des Servers, die beim Start erstellt
767 werden. Da die Anzahl der Prozesse abhängig von der Last
768 dynamisch kontrolliert wird, besteht normalerweise wenig
769 Grund für eine Änderung dieses Parameters.</p>
771 <p>Die Voreinstellung unterscheidet sich von MPM zu MPM. Bei
772 <module>leader</module>, <module>threadpool</module> und
773 <module>worker</module> ist die Voreinstellung
774 <code>StartServers 3</code>. Die Voreinstellung bei
775 <module>prefork</module> ist <code>5</code> und bei
776 <module>mpmt_os2</module> <code>2</code>.</p>
781 <name>StartThreads</name>
782 <description>Anzahl der Threads, die beim Start erstellt werden</description>
783 <syntax>StartThreads <var>Anzahl</var></syntax>
784 <default>Für Details siehe Beschreibung</default>
785 <contextlist><context>server config</context></contextlist>
786 <modulelist><module>beos</module><module>mpm_netware</module>
787 <module>perchild</module></modulelist>
790 <p>Anzahl der Threads, die beim Start erstellt werden. Da die Anzahl
791 der Threads abhängig von der Last dynamisch kontrolliert wird,
792 besteht normalerweise wenig Grund für eine Änderung
793 dieses Parameters.</p>
795 <p>Die Voreinstellung für <module>perchild</module> ist
796 <code>StartThreads 5</code>. Die Direktive setzt während des
797 Starts die Anzahl der Threads pro Prozess.</p>
799 <p>Die Voreinstellung bei <module>mpm_netware</module> ist
800 <code>StartThreads 50</code>. Da hier lediglich ein einzelner Prozess
801 existiert, ist dies die Gesamtzahl der Threads, die beim Start
802 erstellt wird, um Anfragen zu bedienen.</p>
804 <p>Die Voreinstellung für <module>beos</module> ist <code>StartThreads
805 10</code>. Die Einstellung reflektiert ebenfalls die Gesamtzahl der Threads, die
806 beim Start erstellt werden, um Anfragen zu bedienen.</p>
811 <name>ThreadLimit</name>
812 <description>Bestimmt die Obergrenze der konfigurierbaren Anzahl von Threads
813 pro Kindprozess</description>
814 <syntax>ThreadLimit <var>Anzahl</var></syntax>
815 <default>Für Details siehe Beschreibung</default>
816 <contextlist><context>server config</context></contextlist>
817 <modulelist><module>leader</module><module>mpm_winnt</module>
818 <module>perchild</module><module>threadpool</module><module>worker</module>
820 <compatibility>Verfügbar für <module>mpm_winnt</module> ab
821 Apache 2.0.41</compatibility>
824 <p>Die Direktive bestimmt den während der Lebensdauer des
825 Apache-Prozesses maximal einstellbaren Wert für
826 <directive module="mpm_common">ThreadsPerChild</directive>. Jeder
827 Versuch, diese Direktive während eines Neustarts zu ändern,
828 wird ignoriert. <directive module="mpm_common">ThreadsPerChild</directive>
829 kann jedoch während eines Neustarts modifiziert werden bis zu dem
830 Wert dieser Anweisung.</p>
832 <p>Lassen Sie besondere Vorsicht bei der Verwendung dieser Direktive
833 walten. Wenn <directive>ThreadLimit</directive> auf einen Wert
834 deutlich höher als <directive
835 module="mpm_common">ThreadsPerChild</directive> gesetzt wird, wird
836 zusätzliches, ungenutztes Shared-Memory belegt. Wenn sowohl
837 <directive>ThreadLimit</directive> als auch <directive
838 module="mpm_common">ThreadsPerChild</directive> auf Werte gesetzt werden,
839 die größer sind, als das System sie handhaben kann, dann kann
840 der Apache möglicherweise nicht starten oder das System kann
841 instabil werden. Setzen Sie den Wert dieser Direktive nicht höher
842 als Ihre größte erwartete Einstellung für
843 <directive module="mpm_common">ThreadsPerChild</directive>
844 während der aktuellen Ausführung des Apache.</p>
846 <p>Die Voreinstellung für <directive>ThreadLimit</directive> ist
847 <code>1920</code> wenn sie zusammen mit <module>mpm_winnt</module>
848 verwendet wird, und <code>64</code> bei der Verwendung mit anderen
851 <note><title>Anmerkung</title>
852 <p>Eine feste Begrenzung von <code>ThreadLimit 20000</code>
853 (oder <code>ThreadLimit 15000</code> bei <module>mpm_winnt</module>)
854 ist in den Server einkompiliert. Dies soll unangenehme Effekte durch
855 Tippfehler verhindern.</p>
861 <name>ThreadsPerChild</name>
862 <description>Anzahl der Threads, die mit jedem Kindprozess gestartet
864 <syntax>ThreadsPerChild <var>Anzahl</var></syntax>
865 <default>Für Details siehe Beschreibung</default>
866 <contextlist><context>server config</context></contextlist>
867 <modulelist><module>leader</module><module>mpm_winnt</module>
868 <module>threadpool</module><module>worker</module></modulelist>
871 <p>Die Direktive legt die Anzahl der Threads fest, die mit jedem
872 Kindprozess gestartet werden. Der Kindprozess erstellt diese Threads
873 beim Start und erstellt später keine weiteren mehr. Wenn Sie ein
874 MPM wie <module>mpm_winnt</module> verwenden, wo nur ein
875 Kindprozess existiert, dann sollte diese Angabe hoch genug sein,
876 die gesamte Last des Servers zu bewältigen. Wenn Sie ein MPM
877 wie <module>worker</module> verwenden, wo mehrere Kindprozesse
878 existieren, dann sollte die <em>Gesamt</em>zahl der Thread groß
879 genug sein, die übliche Last auf dem Server zu bewältigen.</p>
881 <p>Die Voreinstellung für <directive>ThreadsPerChild</directive> ist
882 <code>64</code>, wenn <module>mpm_winnt</module> verwendet wird, und
883 <code>25</code> bei der Verwendung der anderen MPMs.</p>
888 <name>ThreadStackSize</name>
889 <description>Die Größe des Stacks in Bytes, der von Threads
890 verwendet wird, die Client-Verbindungen bearbeiten.</description>
891 <syntax>ThreadStackSize <var>size</var></syntax>
892 <default>65536 unter NetWare; variiert bei anderen Betriebssystemen.</default>
893 <contextlist><context>server config</context></contextlist>
894 <modulelist><module>leader</module><module>mpm_netware</module>
895 <module>mpm_winnt</module><module>perchild</module>
896 <module>threadpool</module><module>worker</module>
898 <compatibility>Verfügbar seit Version 2.1</compatibility>
901 <p>Die Direktive <directive>ThreadStackSize</directive> legt die
902 Größe des Stacks (für Autodaten) der Threads fest, die
903 Client-Verbindungen bearbeiten und Module aufrufen, welche bei der
904 Verarbeitung dieser Verbindungen helfen. In den meisten Fällen ist die
905 Voreinstellung des Betriebssystems angemessen, doch unter bestimmten
906 Umständen kann es sinnvoll sein, den Wert anzupassen:</p>
909 <li>Auf Plattformen mit einer relativ kleinen Voreingestellung für
910 die Größe des Thread-Stacks (z.B. HP-UX) kann der Apache bei
911 der Verwendung einiger Drittanbietermodule, die einen relativ hohen Bedarf
912 an Speicherplatz haben, abstürzen. Ebendiese Module arbeiten
913 möglicherweise problemlos auf anderen Plattformen, wo der
914 voreingestellte Thread-Stack größer ist. Derartige
915 Abstürze können Sie vermeiden, indem Sie
916 <directive>ThreadStackSize</directive> auf einen höheren Wert als die
917 Betriebssystemvoreinstellung setzen. Eine solche Anpassung ist nur
918 notwendig, wenn es vom Anbieter des Moduls so spezifiziert wurde oder die
919 Diagnose eines Apache-Absturzes ergeben hat, das die
920 Thread-Stackgröße zu klein war.</li>
922 <li>Auf Plattformen, wo die voreingestellte Thread-Stackgröße
923 für die Webserverkonfiguration deutlich größer als
924 notwendig ist, kann eine größere Anzahl von Threads pro
925 Kindprozess erreicht werden, wenn <directive>ThreadStackSize</directive>
926 auf einen Wert kleiner als die Betriebssystemvoreinstellung gesetzt wird.
927 Da es einzelne Anfragen geben kann, die mehr Stack zur Verarbeitung
928 benötigen, sollte eine derartige Korrektur ausschließlich in
929 Testumgebungen zum Einsatz kommen, auf denen die gesamte
930 Webserververarbeitung ausprobiert werden kann. Eine Änderung der
931 Webserverkonfiguration kann den aktuellen Wert der
932 <directive>ThreadStackSize</directive> ungültig machen.</li>
939 <description>Die Benutzerkennung, unter welcher der Server Anfragen
940 beantwortet</description>
941 <syntax>User <var>Unix-User-ID</var></syntax>
942 <default>User #-1</default>
943 <contextlist><context>server config</context></contextlist>
944 <modulelist><module>leader</module><module>perchild</module>
945 <module>prefork</module><module>threadpool</module><module>worker</module>
947 <compatibility>Seit Apache 2.0 nur in der globalen Server-Konfiguration
948 gültig</compatibility>
951 <p>Die Direktive <directive>User</directive> legt die Benutzerkennung
952 fest, mit der der Server Anfragen beantwortet. Um diese Anweisung
953 zu verwenden, muss der Server als <code>root</code> gestartet werden.
954 Wenn Sie den Server unter einem nicht-root-Benutzer starten, kann
955 er nicht zu dem minder privilegierten Benutzer wechseln und wird statt
956 dessen weiter mit der ursprünglichen Benutzerkennung laufen.
957 Wenn Sie den Server als <code>root</code> starten, dann ist es normal,
958 dass der Elternprozess als root weiterläuft.
959 <var>Unix-User-ID</var> kann sein:</p>
962 <dt>Ein Benutzername</dt>
963 <dd>Verweist auf den durch Namen angegebenen Benutzer.</dd>
965 <dt># gefolgt von einer Benutzernummer.</dt>
966 <dd>Verweist auf einen durch eine Nummer angegebenen Benutzer.</dd>
969 <p>Der Benutzer sollte keine Rechte besitzen, die dazu führen,
970 dass er in der Lage ist, auf Dateien zuzugreifen, die nicht dafür
971 bestimmt sind, für die Außenwelt sichtbar zu sein.
972 Gleichermaßen sollte der Benutzer nicht in der Lage sein,
973 Code auszuführen, der nicht für HTTP-Anfragen bestimmt ist.
974 Es wird empfohlen, einen neuen Benutzer und eine neue Gruppe speziell
975 zur Ausführung des Servers zu erstellen. Einige Administratoren
976 verwenden den Benutzer <code>nobody</code>. Dies ist jedoch nicht
977 immer wünschenswert, da der Benuter <code>nobody</code> andere
978 Rechte auf dem System besitzen kann.</p>
980 <note type="warning"><title>Sicherheit</title>
981 <p>Setzen Sie <directive>User</directive> (oder <directive
982 module="mpm_common">Group</directive>) nicht auf <code>root</code>,
983 solange Sie nicht genau wissen, was Sie tun, und welches die Gefahren
987 <p>Beim MPM <module>perchild</module>, das dafür gedacht ist,
988 virtuelle Hosts unter verschiedenen Benutzerkennungen auszuführen,
989 bestimmt die Direktive <directive>User</directive> die
990 Benutzerkennung für den Hauptserver und bildet den Rückfallwert
991 für <directive type="section"
992 module="core">VirtualHost</directive>-Abschnitte ohne eine
993 <directive module="perchild">AssignUserID</directive>-Anweisung.</p>
995 <p>Wichtiger Hinweis: Die Verwendung dieser Direktive innerhalb von
996 <directive module="core" type="section">VirtualHost</directive> wird
997 nicht mehr unterstützt. Benutzen Sie <directive
998 module="mod_suexec">SuexecUserGroup</directive>, um Ihren Server
999 für <program>suexec</program> einzurichten.</p>
1001 <note><title>Anmerkung</title>
1002 <p>Obwohl die Direktive <directive>User</directive> in den MPMs
1003 <module>beos</module> und <module>mpmt_os2</module> existiert, ist
1004 sie dort tatsächlich eine Leeranweisung und exisitert nur
1005 aus Kompatibilitätsgründen.</p>
1008 </directivesynopsis>