2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
4 <!-- English revision: 1.32 -->
7 Copyright 2003-2004 The Apache Software Foundation
9 Licensed under the Apache License, Version 2.0 (the "License");
10 you may not use this file except in compliance with the License.
11 You may obtain a copy of the License at
13 http://www.apache.org/licenses/LICENSE-2.0
15 Unless required by applicable law or agreed to in writing, software
16 distributed under the License is distributed on an "AS IS" BASIS,
17 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 See the License for the specific language governing permissions and
19 limitations under the License.
22 <modulesynopsis metafile="mpm_common.xml.meta">
24 <name>mpm_common</name>
25 <description>Eine Sammlung von Direktiven, die in mehr als einem
26 Multi-Processing-Modul (MPM) implementiert sind.</description>
30 <name>AcceptMutex</name>
31 <description>Vom Apache verwendete Methode zur Serialisierung mehrerer
32 Kindprozesse, die Anfragen an Netzwerk-Sockets entgegennehmen.</description>
33 <syntax>AcceptMutex Default|<var>Methode</var></syntax>
34 <default>AcceptMutex Default</default>
35 <contextlist><context>server config</context></contextlist>
36 <modulelist><module>leader</module><module>perchild</module>
37 <module>prefork</module><module>threadpool</module><module>worker</module>
41 <p>Die Direktive <directive>AcceptMutex</directive> bestimmt die
42 Methode, die der Apache zur Serialisierung mehrerer Kindprozesse
43 verwendet, welche Anfragen an Netzwerk-Sockets entgegennehmen. Vor
44 Apache 2.0 war diese Methode nur zur Kompilierungszeit einstellbar.
45 Die optimale Methode ist sehr stark von der Architektur und
46 Plattform abhängig. Lesen Sie bitte <a
47 href="../misc/perf-tuning.html">Perfomance-Hinweise</a> für
50 <p>Wenn die Direktive auf <code>Default</code> eingestellt ist, dann
51 wird die zur Kompilierungszeit gewählte Voreinstellung verwendet.
52 Weitere mögliche Methoden sind unten angegeben. Beachten Sie, dass
53 nicht alle Methoden auf allen Plattformen verfügbar sind. Wird
54 eine Methode angegeben, die nicht verfügbar ist, dann wird
55 eine Nachricht in das Fehlerprotokoll geschrieben, welche die
56 verfügbaren Methoden auflistet.</p>
59 <dt><code>flock</code></dt>
60 <dd>verwendet die Systemfunktion <code>flock(2)</code>, um die
61 durch die <directive module="mpm_common"
62 >LockFile</directive>-Direktive definierte Datei zu sperren.</dd>
64 <dt><code>fcntl</code></dt>
65 <dd>verwendet die Systemfunktion <code>fcntl(2)</code>, um die
66 durch die <directive module="mpm_common"
67 >LockFile</directive>-Direktive definierte Datei zu sperren.</dd>
69 <dt><code>posixsem</code></dt>
70 <dd>verwendet POSIX-kompatible Semaphore, um den Mutex zu
73 <dt><code>pthread</code></dt>
74 <dd>verwendet gemäß der POSIX-Thread-Spezifikation
75 implementierte POSIX-Mutexe.</dd>
77 <dt><code>sysvsem</code></dt>
78 <dd>verwendet Semaphoren des SysV-Typs, um den Mutex zu
82 <p>Um die bei der Kompilierung gewählte Voreinstellung für
83 Ihr System herauszufinden, können Sie Ihr <directive module="core"
84 >LogLevel</directive> auf <code>debug</code> setzen. Dann wird der
85 voreingestellte <directive>AcceptMutex</directive> ins <directive
86 module="core">ErrorLog</directive> geschrieben.</p>
88 <note type="warning"><title>Warnung</title>
89 <p>Auf den meisten Systemen stoppt der Server mit der Beantwortung von
90 Anfragen, wenn die Option <code>pthread</code> ausgewählt wurde und
91 ein Kindprozess unkontrolliert endet während er den
92 <code>AcceptCntl</code>-Mutex hält. In diesem Fall muss der Server
93 manuell neu gestartet werden, um wieder weiter zu arbeiten.</p>
94 <p>Eine Ausnahme stellt Solaris dar, da es einen Mechanismus anbietet, den
95 der Apache verwendet und der üblicherweise die Freigabe des Mutex
96 erlaubt, nachdem ein Kindprozess, der gerade einen Mutex hält,
97 abgestürzt ist.</p>
98 <p>Wenn Ihr System die Funktion
99 <code>pthread_mutexattr_setrobust_np()</code> bereitstellt, können
100 Sie wahrscheinlich die Option <code>pthread</code> problemlos
107 <name>CoreDumpDirectory</name>
108 <description>Verzeichnis, in das der Apache zu wechseln versucht, bevor er
109 einen Hauptspeicherauszug erstellt</description>
110 <syntax>CoreDumpDirectory <var>Verzeichnis</var></syntax>
111 <default>Für die Voreinstellung siehe Beschreibung</default>
112 <contextlist><context>server config</context></contextlist>
113 <modulelist><module>beos</module><module>leader</module>
114 <module>mpm_winnt</module><module>perchild</module><module>prefork</module>
115 <module>threadpool</module><module>worker</module></modulelist>
118 <p>Dies beeinflusst das Verzeichnis, in welches der Apache zu wechseln
119 versucht, bevor er einen Hauptspeicherauszug <transnote>einen
120 so genannten Core-Dump</transnote> erstellt. Die Voreinstellung ist das
121 <directive module="core">ServerRoot</directive>-Verzeichnis. Da dieses
122 jedoch nicht für den Benutzer beschreibbar sein soll, unter dem
123 der Server läuft, werden normalerweise keine
124 Hauptspeicherauszüge geschrieben. Wenn Sie zum Debuggen
125 einen Hauptspeicherauszug haben möchten, können Sie
126 ihn mit dieser Direktive an einem anderen Ort ablegen lassen.</p>
128 <note><title>Hauptspeicherauszüge unter Linux</title>
129 <p>Wenn Apache als <code>root</code> startet und zu einem anderen Benutzer
130 wechselt, <em>deaktiviert</em> der Linux-Kernel Hauptspeicherauszüge
131 auch dann, wenn der Prozess in dem Verzeichnis schreiben darf. Ab Linux
132 2.4 reaktiviert Apache (ab 2.0.46) Hauptspeicherauszüge wieder,
133 jedoch nur dann, wenn Sie explizit
134 <directive>CoreDumpDirectory</directive> konfigurieren.</p>
140 <name>EnableExceptionHook</name>
141 <description>Aktiviert einen Hook, der nach einem Absturz noch
142 Ausnahmefehler behandeln lassen kann</description>
143 <syntax>EnableExceptionHook On|Off</syntax>
144 <default>EnableExceptionHook Off</default>
145 <contextlist><context>server config</context></contextlist>
146 <modulelist><module>leader</module><module>perchild</module>
147 <module>prefork</module><module>threadpool</module>
148 <module>worker</module></modulelist>
149 <compatibility>Verfügbar seit Version 2.0.49</compatibility>
152 <p>Diese Direktive ist aus Sicherheitsgründen nur verfügbar,
153 wenn der Server mit der Option <code>--enable-exception-hook</code>
154 konfiguriert wurde. Sie aktiviert einen Hook, der es externen Modulen
155 erlaubt, sich dort einzuhängen und nach dem Absturz eines
156 Kindprozesses noch Aktionen durchzuführen.</p>
158 <p>Es existieren bereits zwei Module, <code>mod_whatkilledus</code> und
159 <code>mod_backtrace</code>, welchen diesen Hook verwenden. Lesen Sie
160 bitte auf Jeff Trawicks <a
161 href="http://www.apache.org/~trawick/exception_hook.html"
162 >EnableExceptionHook-Seite</a> für weitere Informationen dazu.</p>
168 <description>Benutzergruppe, unter welcher der Server Anfragen
169 beantwortet</description>
170 <syntax>Group <var>Unix-Gruppe</var></syntax>
171 <default>Group #-1</default>
172 <contextlist><context>server config</context></contextlist>
173 <modulelist><module>beos</module><module>leader</module>
174 <module>mpmt_os2</module><module>perchild</module><module>prefork</module>
175 <module>threadpool</module><module>worker</module></modulelist>
176 <compatibility>Seit Apache 2.0 nur in der globalen Server-Konfiguration
177 gültig</compatibility>
180 <p>Die Direktive <directive>Group</directive> bestimmt die
181 Benutzergruppe, unter welcher der Server Anfragen beantwortet.
182 Um diese Direktive zu verwenden, muss der Server als <code>root</code> gestartet
183 werden. Wenn Sie den Server unter einem nicht-root-Benutzer starten,
184 wird er nicht zur angegebenen Gruppe wechseln können und statt
185 dessen weiter mit der Gruppe des ursprünglichen Benutzers
186 laufen. <var>Unix-Gruppe</var> kann sein:</p>
189 <dt>Ein Gruppenname</dt>
190 <dd>Verweist auf die durch den Namen angegebene Gruppe.</dd>
192 <dt><code>#</code> gefolgt von einer Gruppennummer.</dt>
193 <dd>Verweist auf die durch ihre Nummer angegebene Gruppe.</dd>
196 <example><title>Beispiel</title>
200 <p>Es wird empfohlen, dass Sie eine neue Gruppe speziell zum Betrieb
201 des Servers erstellen. Einige Administratoren verwenden den Benutzer
202 <code>nobody</code>. Dies ist jedoch nicht immer möglich
203 oder gewünscht.</p>
205 <note type="warning"><title>Sicherheit</title>
206 <p>Setzen Sie <directive>Group</directive> (oder <directive
207 module="mpm_common">User</directive>) nicht auf <code>root</code>,
208 solange Sie nicht ganz genau wissen, was Sie tun und welche Gefahren
212 <p>Wichtiger Hinweis: Die Verwendung der Direktive innerhalb von
213 <directive module="core" type="section">VirtualHost</directive>
214 wird nicht länger unterstützt. Benutzen Sie <directive
215 module="mod_suexec">SuexecUserGroup</directive> um Ihren Server
216 für <a href="mod_suexec.html">suexec</a> einzurichten.</p>
218 <note><title>Anmerkung</title>
219 <p>Obwohl die Direktive <directive>Group</directive> in den MPMs
220 <module>beos</module> und <module>mpmt_os2</module> existiert, ist
221 sie dort tatsächlich eine Leeranweisung und exisitert nur
222 aus Kompatibilitätsgründen.</p>
229 <description>Datei, in welcher der Server die Prozess-ID des Daemons
231 <syntax>PidFile <var>Dateiname</var></syntax>
232 <default>PidFile logs/httpd.pid</default>
233 <contextlist><context>server config</context></contextlist>
234 <modulelist><module>beos</module><module>leader</module>
235 <module>mpm_winnt</module><module>mpmt_os2</module>
236 <module>perchild</module><module>prefork</module>
237 <module>threadpool</module><module>worker</module></modulelist>
240 <p>Die Direktive <directive>PidFile</directive> bestimmt die Datei,
241 in welcher der Server die Prozess-ID des Daemons ablegt. Wenn der
242 Dateiname nicht absolut angegeben wird, wird er relativ zu
243 <directive module="core">ServerRoot</directive> interpretiert.</p>
245 <example><title>Beispiel</title>
246 PidFile /var/run/apache.pid
249 <p>Es ist oft hilfreich, dem Server ein Signal senden zu können,
250 damit er seine <directive module="core">ErrorLog</directive>s und
251 <directive module="mod_log_config">TransferLog</directive>s
252 schließt und dann neu öffnet und seine
253 Konfigurationsdateien neu einliest. Dies kann durch Senden eines
254 SIGHUP-Signals (kill -1) an die Prozess-ID geschehen, die im
255 <directive>PidFile</directive> eingetragen ist.</p>
257 <p>Die <directive>PidFile</directive>-Datei unterliegt den
258 gleichen Warnungen über die Ablage von Protokolldateien
259 und <a href="../misc/security_tips.html#serverroot">Sicherheit</a>.</p>
261 <note><title>Anmerkung</title>
262 <p>Ab Apache 2 wird empfohlen, nur das Skript <a
263 href="../programs/apachectl.html">apachectl</a> zum (Neu-)Starten
264 und Stoppen des Servers zu verwenden.</p>
271 <description>IP-Adressen und Ports, an denen der Server lauscht</description>
272 <syntax>Listen [<var>IP-Addresse</var>:]<var>Port</var></syntax>
273 <contextlist><context>server config</context></contextlist>
274 <modulelist><module>beos</module><module>leader</module>
275 <module>mpm_netware</module><module>mpm_winnt</module>
276 <module>mpmt_os2</module><module>perchild</module>
277 <module>prefork</module><module>threadpool</module><module>worker</module>
279 <compatibility>Seit Apache 2.0 vorgeschrieben</compatibility>
282 <p>Die Direktive <directive>Listen</directive> weist den Apache an,
283 nur an den angegebenen IP-Adressen oder Ports zu lauschen.
284 Standardmäßig antwortet er auf alle Anfragen an allen
285 IP-Interfaces. <directive>Listen</directive> ist nun eine notwendige
286 Anweisung. Wenn sie nicht in der Konfigurationsdatei enthalten ist,
287 wird der Server-Start fehlschlagen. Dies ist eine Änderung
288 gegenüber früheren Versionen des Apache.</p>
290 <p>Die Direktive <directive>Listen</directive> weist den Server an,
291 ankommende Anfragen am angegebenen Port oder der
292 Kombination aus Adresse und Port entgegenzunehmen. Wenn nur eine Portnummer
293 angegeben ist, dann lauscht der Server am angegebenen Port an allen
294 Interfaces. Wenn sowohl eine IP-Adresse als auch ein Port angegeben
295 sind, dann lauscht der Server am angegeben Port und Interface.</p>
297 <p>Es können mehrere <directive>Listen</directive>-Anweisungen
298 verwendet werden, um eine Reihe von Adressen und Port anzugeben, an
299 denen gelauscht werden soll. Der Server antwortet auf Anfragen von
300 jedem der aufgeführten Adressen und Ports.</p>
302 <p>Um beispielsweise den Server Verbindungen an den beiden Ports 80 und
303 8000 annehmen zu lassen, verwenden Sie:</p>
310 <p>Um den Server Verbindungen an zwei angegebenen Interfaces und Ports
311 annehmen zu lassen, verwenden Sie:</p>
314 Listen 192.170.2.1:80<br />
315 Listen 192.170.2.5:8000
318 <p>IPv6-Adressen müssen wie in dem folgenden Beispiel in eckige
319 Klammern eingeschlossen werden:</p>
322 Listen [fe80::a00:20ff:fea7:ccea]:80
325 <seealso><a href="../dns-caveats.html">DNS-Probleme</a></seealso>
326 <seealso><a href="../bind.html">Bestimmen, welche Adressen und Ports der
327 Apache verwendet</a></seealso>
331 <name>ListenBackLog</name>
332 <description>Maximale Länge der Warteschlange schwebender
333 Verbindungen</description>
334 <syntax>ListenBacklog <var>backlog</var></syntax>
335 <default>ListenBacklog 511</default>
336 <contextlist><context>server config</context></contextlist>
337 <modulelist><module>beos</module><module>leader</module>
338 <module>mpm_netware</module><module>mpm_winnt</module>
339 <module>mpmt_os2</module><module>perchild</module><module>prefork</module>
340 <module>threadpool</module><module>worker</module></modulelist>
343 <p>Die maximale Länge der Warteschlange schwebender Verbindungen.
344 Üblicherweise ist keine Feineinstellung notwendig oder sinnvoll,
345 auf einigen System kann es jedoch gewünscht sein, diesen Wert bei
346 TCP-SYN-Angriffen zu erhöhen. Beachten Sie auch die Beschreibung des
347 backlog-Parameters der Systemfunktion <code>listen(2)</code>.</p>
349 <p>Der Wert wird vom Betriebssystem oft auf eine niedrigere
350 Einstellung begrenzt. Dies variiert von Betriebssystem zu Betriebssystem.
351 Beachten Sie auch, dass viele Betriebssyteme nicht genau beachten,
352 was für backlog angegeben ist, jedoch einen Wert basierend auf der
353 Angabe (normalerweiseweise jedoch größer als diese) verwenden.</p>
358 <name>LockFile</name>
359 <description>Ablageort der Lock-Datei für die Serialisierung von
360 entgegengenommenen Anfragen</description>
361 <syntax>LockFile <var>Dateiname</var></syntax>
362 <default>LockFile logs/accept.lock</default>
363 <contextlist><context>server config</context></contextlist>
364 <modulelist><module>leader</module><module>perchild</module>
365 <module>prefork</module><module>threadpool</module><module>worker</module>
369 <p>Die Direktive <directive>LockFile</directive> legt den Pfad zur
370 Lock-Datei fest, die verwendet wird, wenn der Apache mit einer der
371 <directive module="mpm_common">AcceptMutex</directive>-Einstellungen
372 <code>fcntl</code> oder <code>flock</code> verwendet wird. Die Anweisung
373 sollte normalerweise bei der Voreinstellung belassen werden.
374 Der Hauptgrund, sie zu ändern, ist, wenn das
375 <code>logs</code>-Verzeichnis auf einem per NFS-eingebundenen Laufwerk
376 liegt, da <strong>die Lock-Datei auf einer lokalen Platte abgelegt sein
377 muss</strong>. Die PID <transnote>Prozess-ID</transnote> des
378 Hauptserverprozesses wird automatisch an den Dateinamen angehängt.</p>
380 <note type="warning"><title>Sicherheit</title>
381 <p>Es ist am besten, die Ablage in einem allgemein <transnote>für
382 jedermann</transnote> beschreibbaren
383 Verzeichnis wie <code>/var/tmp</code> <em>zu vermeiden</em>, da
384 ein Denial-of-Servide-Angriff gestartet werden könnte und der
385 Server am Start gehindert werden könnte, indem eine Lock-Datei
386 mit dem gleichen Namen erstellt wird, wie der Server sie zu erstellen
387 versuchen würde.</p>
390 <seealso><directive module="mpm_common">AcceptMutex</directive></seealso>
394 <name>MaxClients</name>
395 <description>Maximale Anzahl der Kindprozesse, die zur Bedienung von Anfragen
396 gestartet wird</description>
397 <syntax>MaxClients <var>Anzahl</var></syntax>
398 <default>Für Details siehe Beschreibung</default>
399 <contextlist><context>server config</context></contextlist>
400 <modulelist><module>beos</module><module>leader</module>
401 <module>prefork</module><module>threadpool</module><module>worker</module>
405 <p>Die Direktive <directive>MaxClients</directive> setzt die Grenze
406 für die Anzahl gleichzeitig bedienter Anfragen. Jeder
407 Verbindungsversuch oberhalb der <directive
408 >MaxClients</directive>-Begrenzung wird üblicherweise in eine
409 Warteschlange gestellt, bis zu einer Anzahl basierend auf der
410 <directive module="mpm_common">ListenBacklog</directive>-Anweisung.
411 Sobald ein Kindprozess am Ende einer anderen Anfrage freigegeben wird,
412 wird die Verbindung bedient.</p>
414 <p>Für Server ohne Thread-Unterstützung (<em>z.B.</em>
415 <module>prefork</module>) wird <directive>MaxClients</directive> als
416 maximale Anzahl der Kindprozesse verstanden, die zur Bedienung von
417 Anfragen gestartet werden. Die Voreinstellung ist <code>256</code>. Um
418 diesen Wert zu erhöhen, muss auch <directive
419 module="mpm_common">ServerLimit</directive> angehoben werden.</p>
421 <p>Bei Servern mit Thread-Unterstützung und bei Hybrid-Servern
422 (<em>z.B.</em> <module>beos</module> oder <module>worker</module>)
423 begrenzt <directive>MaxClients</directive> die Gesamtzahl der Threads,
424 die für die Bedienung von Anfragen verfügbar sind.
425 Die Voreinstellung für <module>beos</module> ist <code>50</code>.
426 Bei Hybrid-MPMs ist die Voreinstellung <code>16</code> (<directive
427 module="mpm_common">ServerLimit</directive>) multipliziert mit
428 dem Wert <code>25</code> (<directive module="mpm_common"
429 >ThreadsPerChild</directive>). Um <directive>MaxClients</directive>
430 auf einen Wert zu erhöhen, der mehr als 16 Prozesse erfordert,
431 müssen Sie daher auch <directive module="mpm_common"
432 >ServerLimit</directive> anheben.</p>
437 <name>MaxMemFree</name>
438 <description>Maximale Menge des Arbeitsspeichers, den die
439 Haupt-Zuteilungsroutine verwalten darf, ohne <code>free()</code>
440 aufzurufen</description>
441 <syntax>MaxMemFree <var>KBytes</var></syntax>
442 <default>MaxMemFree 0</default>
443 <contextlist><context>server config</context></contextlist>
444 <modulelist><module>beos</module><module>leader</module>
445 <module>mpm_netware</module><module>prefork</module>
446 <module>threadpool</module><module>worker</module><module>mpm_winnt</module></modulelist>
449 <p>Die Direktive <directive>MaxMemFree</directive> gibt die maximale
450 Menge freier Kilobytes an, welche die Haupt-Zuteilungsroutine verwalten
451 darf, ohne <code>free()</code> aufzurufen. Wenn keine Angabe gemacht wird,
452 oder Null angegeben ist, wird dieser Wert nicht eingeschränkt.</p>
457 <name>MaxRequestsPerChild</name>
458 <description>Obergrenze für die Anzahl von Anfragen, die ein einzelner
459 Kindprozess während seines Lebens bearbeitet</description>
460 <syntax>MaxRequestsPerChild <var>number</var></syntax>
461 <default>MaxRequestsPerChild 10000</default>
462 <contextlist><context>server config</context></contextlist>
463 <modulelist><module>leader</module><module>mpm_netware</module>
464 <module>mpm_winnt</module><module>mpmt_os2</module>
465 <module>perchild</module><module>prefork</module>
466 <module>threadpool</module><module>worker</module></modulelist>
469 <p>Die Direktive <directive>MaxRequestsPerChild</directive> legt die
470 Grenze für die Anzahl von Anfragen fest, die ein einzelner
471 Kinprozess während seines Lebens bearbeitet. Nach
472 <directive>MaxRequestsPerChild</directive> Anfragen stirbt der
473 Kindprozess. Wenn <directive>MaxRequestsPerChild</directive>
474 <code>0</code> ist, endet der Prozess niemals.</p>
476 <note><title>Abweichende Voreinstellungen</title>
477 <p>Die Voreinstellung für <module>mpm_netware</module> und
478 <module>mpm_winnt</module> ist <code>0</code>.</p>
481 <p>Die Begrenzung von <directive>MaxRequestsPerChild</directive> auf einen
482 Wert ungleich Null hat zwei vorteilhafte Auswirkungen:</p>
485 <li>sie begrenzt die Menge an Arbeitsspeicher, die ein Prozess
486 durch (versehentliche) Speicherlecks verbrauchen kann.</li>
488 <li>das Festlegen einer endlichen Lebensdauer von Prozessen hilft, die
489 Anzahl von Prozessen zu reduzieren, wenn die Serverlast
490 zurückgeht.</li>
493 <note><title>Anmerkung</title>
494 <p>Bei <directive module="core">KeepAlive</directive>-Anfragen
495 wird nur die erste Anfrage für diese begrenzung gezählt.
496 Eigentlich wird nur die Begrenzung für die Anzahl der
497 <em>Verbindungen</em> pro Kindprozess geändert.</p>
503 <name>MaxSpareThreads</name>
504 <description>Maximale Anzahl unbeschäftigter Threads</description>
505 <syntax>MaxSpareThreads <var>Anzahl</var></syntax>
506 <default>Für Details siehe Beschreibung</default>
507 <contextlist><context>server config</context></contextlist>
508 <modulelist><module>beos</module><module>leader</module>
509 <module>mpm_netware</module><module>mpmt_os2</module>
510 <module>perchild</module><module>threadpool</module><module>worker</module>
514 <p>Maximale Anzahl unbeschäftigter Threads. Die verschiedenen MPMs
515 behandeln diese Anweisung unterschiedlich.</p>
517 <p>Die Voreinstellung für <module>perchild</module> ist
518 <code>MaxSpareThreads 10</code>. Das MPM überwacht die Anzahl der
519 unbeschäftigten Threads auf der Basis einzelner Kindprozesse. Wenn
520 zu viele unbeschäftigte Threads in einem Kindprozess existieren,
521 beendet der Server Threads innerhalb dieses Kindprozesses.</p>
523 <p>Die Voreinstellung für <module>worker</module>,
524 <module>leader</module> und <module>threadpool</module> ist
525 <code>MaxSpareThreads 250</code>. Diese MPMs behandeln Threads
526 auf einer serverweiten Basis. Wenn zu viele unbeschäftigte Threads
527 im Server existieren, dann werden solange Kindprozesse beendet, bis
528 die Anzahl der unbeschäftigten Threads kleiner als der
529 angegebene Wert ist.</p>
531 <p>Die Voreinstellung für <module>mpm_netware</module> ist
532 <code>MaxSpareThreads 100</code>. Da dieses MPM nur einen einzigen
533 Prozess ausführt, ist die Zählung überschüssiger
534 Threads ebenfalls serverweit.</p>
536 <p><module>beos</module> and <module>mpmt_os2</module> arbeiten
537 ähnlich wie <module>mpm_netware</module>. Die Voreinstellung
538 für <module>beos</module> ist <code>MaxSpareThreads 50</code>.
539 Die Voreinstellung für <module>mpmt_os2</module> ist
542 <note><title>Restriktionen</title>
543 <p>Der Wertebereich von <directive>MaxSpareThreads</directive>
544 ist eingeschränkt. Apache korrigiert den angegebenen Wert
545 automatisch gemäß den folgenden Regeln:</p>
547 <li><module>perchild</module> verlangt, dass <directive
548 >MaxSpareThreads</directive> kleiner oder gleich <directive
549 module="mpm_common">ThreadLimit</directive> ist.</li>
551 <li><module>mpm_netware</module> verlangt einen Wert größer
552 als <directive module="mpm_common">MinSpareThreads</directive>.</li>
554 <li>Bei <module>leader</module>, <module>threadpool</module> und
555 <module>worker</module> muss der Wert größer oder gleich
556 der Summe aus <directive
557 module="mpm_common">MinSpareThreads</directive> und
558 <directive module="mpm_common">ThreadsPerChild</directive> sein.</li>
562 <seealso><directive module="mpm_common">MinSpareThreads</directive></seealso>
563 <seealso><directive module="mpm_common">StartServers</directive></seealso>
567 <name>MinSpareThreads</name>
568 <description>Minimale Anzahl unbeschäftigter Threads, die zur
569 Bedienung von Anfragespitzen zur Verfügung stehen</description>
570 <syntax>MinSpareThreads <var>Anzahl</var></syntax>
571 <default>Für Details siehe Beschreibung</default>
572 <contextlist><context>server config</context></contextlist>
573 <modulelist><module>beos</module><module>leader</module>
574 <module>mpm_netware</module><module>mpmt_os2</module>
575 <module>perchild</module><module>threadpool</module><module>worker</module>
579 <p>Minimale Anzahl unbeschäftigter Threads, um Anfragespitzen
580 zu bedienen. Die verschiedenen MPMs behandeln die Anweisung
583 <p><module>perchild</module> verwendet die Voreinstellung
584 <code>MinSpareThreads 5</code> und überwacht die Anzahl der
585 unbeschäftigten Threads auf der Basis einzelner Kindprozesse. Wenn
586 in einem Kindprozess nicht genügend unbeschäftigte
587 Threads vorhanden sind, erstellt der Server neue Threads innerhalb
588 dieses Kindprozesses. Wenn Sie also <directive module="perchild"
589 >NumServers</directive> auf <code>10</code> und <directive
590 >MinSpareThreads</directive> auf einen Wert von <code>5</code> setzen,
591 haben Sie mindestens 50 unbeschäftigte Threads auf Ihrem
594 <p><module>worker</module>, <module>leader</module> und
595 <module>threadpool</module> verwenden eine Voreinstellung von
596 <code>MinSpareThreads 75</code> und behandeln unbeschäftigte
597 Threads auf serverweiter Basis. Wenn nicht genügend
598 unbeschäftigte Threads im Server vorhanden sind, dann
599 werden solange Kindprozesse erzeugt, bis die Anzahl unbeschäftigter
600 Threads größer als der angegebene Wert ist.</p>
602 <p><module>mpm_netware</module> verwendet die Voreinstellung
603 <code>MinSpareThreads 10</code> und verfolgt dies serverweit, da
604 es ein Einzelprozess-MPM ist.</p>
606 <p><module>beos</module> und <module>mpmt_os2</module> arbeiten
607 ähnlich wie <module>mpm_netware</module>. Die Voreinstellung
608 für <module>beos</module> ist <code>MinSpareThreads 1</code>.
609 Die Voreinstellung für <module>mpmt_os2</module> ist
613 <seealso><directive module="mpm_common">MaxSpareThreads</directive></seealso>
614 <seealso><directive module="mpm_common">StartServers</directive></seealso>
618 <name>ScoreBoardFile</name>
619 <description>Ablageort der Datei, die zur Speicherung von Daten zur
620 Koordinierung der Kindprozesse verwendet wird</description>
621 <syntax>ScoreBoardFile <var>Dateipfad</var></syntax>
622 <default>ScoreBoardFile logs/apache_status</default>
623 <contextlist><context>server config</context></contextlist>
624 <modulelist><module>beos</module><module>leader</module>
625 <module>mpm_winnt</module><module>perchild</module><module>prefork</module>
626 <module>threadpool</module><module>worker</module></modulelist>
629 <p>Apache verwendet ein Scoreboard zur Kommunikation zwischen
630 seinen Eltern- und Kindprozessen. Einige Architekturen erfordern
631 eine Datei zur Unterstützung der Kommunikation. Wenn die Datei
632 undefiniert bleibt, versucht der Apache zuerst, das Scoreboard im
633 Arbeitsspeicher zu erstellen (Verwendung von anonymem Shared-Memory),
634 und versucht bei einem Fehlschlag anschließend die Datei auf
635 der Festplatte zu erstellen (Verwendung von Datei-basiertem
636 Shared-Memory). Die Angabe dieser Direktive veranlaßt den
637 Apache stets, die Datei auf der Festplatte zu erstellen.</p>
639 <example><title>Beispiel</title>
640 ScoreBoardFile /var/run/apache_status
643 <p>Datei-basiertes Shared-Memory ist für Applikationen von
644 Drittanbietern hilfreich, die direkten Zugriff auf das Scoreboard
647 <p>Wenn Sie eine <directive>ScoreBoardFile</directive>-Anweisung
648 verwenden, erreichen Sie eventuell eine höhere Geschwindigkeit, wenn
649 Sie die Datei auf einer RAM-Disk ablegen. Achten Sie darauf, die
650 gleichen Warnungen wie über die Ablage von Protokolldateien und
651 <a href="../misc/security_tips.html">Sicherheit</a> zu beherzigen.</p>
653 <seealso><a href="../stopping.html">Apache beenden und neu
654 starten</a></seealso>
658 <name>SendBufferSize</name>
659 <description>Größe des TCP-Puffers</description>
660 <syntax>SendBufferSize <var>Bytes</var></syntax>
661 <default>SendBufferSize 0</default>
662 <contextlist><context>server config</context></contextlist>
663 <modulelist><module>beos</module><module>leader</module>
664 <module>mpm_netware</module><module>mpm_winnt</module>
665 <module>mpmt_os2</module><module>perchild</module><module>prefork</module>
666 <module>threadpool</module><module>worker</module></modulelist>
669 <p>Der Server setzt die Größe des TCP-Puffers auf die
670 angegebene Anzahl Bytes. Dies ist sehr hilfreich, um Voreinstellungen
671 alter Standardbetriebssysteme für Hochgeschwindigkeitsverbindungen
672 mit hoher Latenzzeit anzuheben (<em>d.h.</em> 100ms oder so, wie bei
673 Interkontinentalverbindungen).</p>
675 <p>Wird der Wert auf <code>0</code> gesetzt, dann verwendet der Server
676 die Voreinstellung des Betriebssystems.</p>
681 <name>ServerLimit</name>
682 <description>Obergrenze für die konfigurierbare Anzahl von
683 Prozessen</description>
684 <syntax>ServerLimit <var>Anzahl</var></syntax>
685 <default>Für Details siehe Beschreibung</default>
686 <contextlist><context>server config</context></contextlist>
687 <modulelist><module>leader</module><module>perchild</module>
688 <module>prefork</module><module>threadpool</module><module>worker</module>
692 <p>Bei dem MPM <module>prefork</module> bestimmt die Direktive
693 den während der Lebensdauer des Apache-Prozesses maximal
694 einstellbaren Wert für <directive
695 module="mpm_common">MaxClients</directive>. Beim MPM
696 <module>worker</module> bestimmt die Direktive in Verbindung mit
697 <directive module="mpm_common">ThreadLimit</directive> den Maximalwert
698 für <directive module="mpm_common">MaxClients</directive>
699 für die Lebensdauer des Apache-Prozesses. Jeder Versuch, diese
700 Anweisung während eines Neustarts zu ändern, wird ignoriert.
701 <directive module="mpm_common">MaxClients</directive> kann jedoch
702 während eines Neustarts geändert werden.</p>
704 <p>Lassen Sie besondere Vorsicht bei der Verwendung dieser Direktive
705 walten. Wenn <directive>ServerLimit</directive> auf einen Wert deutlich
706 höher als notwendig gesetzt wird, wird zusätzliches,
707 unbenutztes Shared-Memory belegt. Wenn sowohl
708 <directive>ServerLimit</directive> als auch <directive
709 module="mpm_common">MaxClients</directive> auf Werte gesetzt werden, die
710 größer sind, als das System sie handhaben kann, dann kann
711 der Apache möglicherweise nicht starten, oder das System kann
714 <p>Verwenden Sie die Direktive bei dem MPM <module>prefork</module>
715 nur, wenn Sie <directive module="mpm_common">MaxClients</directive>
716 auf mehr als 256 (Voreinstellung) setzen müssen. Setzen Sie den
717 Wert nicht höher als den Wert, den Sie für <directive
718 module="mpm_common">MaxClients</directive> angeben möchten.</p>
720 <p>Verwenden Sie die Direktive bei <module>worker</module>,
721 <module>leader</module> und <module>threadpool</module> nur, wenn Ihre
722 <directive module="mpm_common">MaxClients</directive>- und
723 <directive module="mpm_common">ThreadsPerChild</directive>-Einstellungen
724 mehr als 16 Serverprozesse (Voreinstellung) erfordern. Setzen Sie den
725 Wert dieser Direktive nicht höher, als die Anzahl der Serverprozesse,
726 die dafür erforderlich ist, was Sie bei <directive
727 module="mpm_common">MaxClients</directive> und
728 <directive module="mpm_common">ThreadsPerChild</directive> angeben
731 <p>Verwenden Sie die Direktive beim MPM <module>perchild</module> nur,
732 wenn Sie <directive module="perchild">NumServers</directive> auf einen
733 Wert größer als 8 (Voreinstellung) setzen müssen.</p>
735 <note><title>Anmerkung</title>
736 <p>Eine feste Begrenzung von <code>ServerLimit 20000</code> ist in den
737 Server einkompiliert (bei dem MPM <module>prefork</module> 200000).
738 Dies soll unangenehme Effekte durch Tippfehler verhindern.</p>
741 <seealso><a href="../stopping.html">Apache beenden und neu
742 starten</a></seealso>
746 <name>StartServers</name>
747 <description>Anzahl der Kindprozesse des Servers, die beim Start erstellt
749 <syntax>StartServers <var>Anzahl</var></syntax>
750 <default>Für Details siehe Beschreibung</default>
751 <contextlist><context>server config</context></contextlist>
752 <modulelist><module>leader</module><module>mpmt_os2</module>
753 <module>prefork</module><module>threadpool</module><module>worker</module>
757 <p>Die Direktive <directive>StartServers</directive> bestimmt
758 die Anzahl der Kindprozesse des Servers, die beim Start erstellt
759 werden. Da die Anzahl der Prozesse abhängig von der Last
760 dynamisch kontrolliert wird, besteht normalerweise wenig
761 Grund für eine Änderung dieses Parameters.</p>
763 <p>Die Voreinstellung unterscheidet sich von MPM zu MPM. Bei
764 <module>leader</module>, <module>threadpool</module> und
765 <module>worker</module> ist die Voreinstellung
766 <code>StartServers 3</code>. Die Voreinstellung bei
767 <module>prefork</module> ist <code>5</code> und bei
768 <module>mpmt_os2</module> <code>2</code>.</p>
773 <name>StartThreads</name>
774 <description>Anzahl der Threads, die beim Start erstellt werden</description>
775 <syntax>StartThreads <var>Anzahl</var></syntax>
776 <default>Für Details siehe Beschreibung</default>
777 <contextlist><context>server config</context></contextlist>
778 <modulelist><module>beos</module><module>mpm_netware</module>
779 <module>perchild</module></modulelist>
782 <p>Anzahl der Threads, die beim Start erstellt werden. Da die Anzahl
783 der Threads abhängig von der Last dynamisch kontrolliert wird,
784 besteht normalerweise wenig Grund für eine Änderung
785 dieses Parameters.</p>
787 <p>Die Voreinstellung für <module>perchild</module> ist
788 <code>StartThreads 5</code>. Die Direktive setzt während des
789 Starts die Anzahl der Threads pro Prozess.</p>
791 <p>Die Voreinstellung bei <module>mpm_netware</module> ist
792 <code>StartThreads 50</code>. Da hier lediglich ein einzelner Prozess
793 existiert, ist dies die Gesamtzahl der Threads, die beim Start
794 erstellt wird, um Anfragen zu bedienen.</p>
796 <p>Die Voreinstellung für <module>beos</module> ist <code>StartThreads
797 10</code>. Die Einstellung reflektiert ebenfalls die Gesamtzahl der Threads, die
798 beim Start erstellt werden, um Anfragen zu bedienen.</p>
803 <name>ThreadLimit</name>
804 <description>Bestimmt die Obergrenze der konfigurierbaren Anzahl von Threads
805 pro Kindprozess</description>
806 <syntax>ThreadLimit <var>Anzahl</var></syntax>
807 <default>Für Details siehe Beschreibung</default>
808 <contextlist><context>server config</context></contextlist>
809 <modulelist><module>leader</module><module>mpm_winnt</module>
810 <module>perchild</module><module>threadpool</module><module>worker</module>
812 <compatibility>Verfügbar für <module>mpm_winnt</module> ab
813 Apache 2.0.41</compatibility>
816 <p>Die Direktive bestimmt den während der Lebensdauer des
817 Apache-Prozesses maximal einstellbaren Wert für
818 <directive module="mpm_common">ThreadsPerChild</directive>. Jeder
819 Versuch, diese Direktive während eines Neustarts zu ändern,
820 wird ignoriert. <directive module="mpm_common">ThreadsPerChild</directive>
821 kann jedoch während eines Neustarts modifiziert werden bis zu dem
822 Wert dieser Anweisung.</p>
824 <p>Lassen Sie besondere Vorsicht bei der Verwendung dieser Direktive
825 walten. Wenn <directive>ThreadLimit</directive> auf einen Wert
826 deutlich höher als <directive
827 module="mpm_common">ThreadsPerChild</directive> gesetzt wird, wird
828 zusätzliches, ungenutztes Shared-Memory belegt. Wenn sowohl
829 <directive>ThreadLimit</directive> als auch <directive
830 module="mpm_common">ThreadsPerChild</directive> auf Werte gesetzt werden,
831 die größer sind, als das System sie handhaben kann, dann kann
832 der Apache möglicherweise nicht starten oder das System kann
833 instabil werden. Setzen Sie den Wert dieser Direktive nicht höher
834 als Ihre größte erwartete Einstellung für
835 <directive module="mpm_common">ThreadsPerChild</directive>
836 während der aktuellen Ausführung des Apache.</p>
838 <p>Die Voreinstellung für <directive>ThreadLimit</directive> ist
839 <code>1920</code> wenn sie zusammen mit <module>mpm_winnt</module>
840 verwendet wird, und <code>64</code> bei der Verwendung mit anderen
843 <note><title>Anmerkung</title>
844 <p>Eine feste Begrenzung von <code>ThreadLimit 20000</code>
845 (oder <code>ThreadLimit 15000</code> bei <module>mpm_winnt</module>)
846 ist in den Server einkompiliert. Dies soll unangenehme Effekte durch
847 Tippfehler verhindern.</p>
853 <name>ThreadsPerChild</name>
854 <description>Anzahl der Threads, die mit jedem Kindprozess gestartet
856 <syntax>ThreadsPerChild <var>Anzahl</var></syntax>
857 <default>Für Details siehe Beschreibung</default>
858 <contextlist><context>server config</context></contextlist>
859 <modulelist><module>leader</module><module>mpm_winnt</module>
860 <module>threadpool</module><module>worker</module></modulelist>
863 <p>Die Direktive legt die Anzahl der Threads fest, die mit jedem
864 Kindprozess gestartet werden. Der Kindprozess erstellt diese Threads
865 beim Start und erstellt später keine weiteren mehr. Wenn Sie ein
866 MPM wie <module>mpm_winnt</module> verwenden, wo nur ein
867 Kindprozess existiert, dann sollte diese Angabe hoch genug sein,
868 die gesamte Last des Servers zu bewältigen. Wenn Sie ein MPM
869 wie <module>worker</module> verwenden, wo mehrere Kindprozesse
870 existieren, dann sollte die <em>Gesamt</em>zahl der Thread groß
871 genug sein, die übliche Last auf dem Server zu bewältigen.</p>
873 <p>Die Voreinstellung für <directive>ThreadsPerChild</directive> ist
874 <code>64</code>, wenn <module>mpm_winnt</module> verwendet wird, und
875 <code>25</code> bei der Verwendung der anderen MPMs.</p>
881 <description>Die Benutzerkennung, unter welcher der Server Anfragen
882 beantwortet</description>
883 <syntax>User <var>Unix-User-ID</var></syntax>
884 <default>User #-1</default>
885 <contextlist><context>server config</context></contextlist>
886 <modulelist><module>leader</module><module>perchild</module>
887 <module>prefork</module><module>threadpool</module><module>worker</module>
889 <compatibility>Seit Apache 2.0 nur in der globalen Server-Konfiguration
890 gültig</compatibility>
893 <p>Die Direktive <directive>User</directive> legt die Benutzerkennung
894 fest, mit der der Server Anfragen beantwortet. Um diese Anweisung
895 zu verwenden, muss der Server als <code>root</code> gestartet werden.
896 Wenn Sie den Server unter einem nicht-root-Benutzer starten, kann
897 er nicht zu dem minder privilegierten Benutzer wechseln und wird statt
898 dessen weiter mit der ursprünglichen Benutzerkennung laufen.
899 Wenn Sie den Server als <code>root</code> starten, dann ist es normal,
900 dass der Elternprozess als root weiterläuft.
901 <var>Unix-User-ID</var> kann sein:</p>
904 <dt>Ein Benutzername</dt>
905 <dd>Verweist auf den durch Namen angegebenen Benutzer.</dd>
907 <dt># gefolgt von einer Benutzernummer.</dt>
908 <dd>Verweist auf einen durch eine Nummer angegebenen Benutzer.</dd>
911 <p>Der Benutzer sollte keine Rechte besitzen, die dazu führen,
912 dass er in der Lage ist, auf Dateien zuzugreifen, die nicht dafür
913 bestimmt sind, für die Außenwelt sichtbar zu sein.
914 Gleichermaßen sollte der Benutzer nicht in der Lage sein,
915 Code auszuführen, der nicht für HTTP-Anfragen bestimmt ist.
916 Es wird empfohlen, einen neuen Benutzer und eine neue Gruppe speziell
917 zur Ausführung des Servers zu erstellen. Einige Administratoren
918 verwenden den Benutzer <code>nobody</code>. Dies ist jedoch nicht
919 immer wünschenswert, da der Benuter <code>nobody</code> andere
920 Rechte auf dem System besitzen kann.</p>
922 <note type="warning"><title>Sicherheit</title>
923 <p>Setzen Sie <directive>User</directive> (oder <directive
924 module="mpm_common">Group</directive>) nicht auf <code>root</code>,
925 solange Sie nicht genau wissen, was Sie tun, und welches die Gefahren
929 <p>Beim MPM <module>perchild</module>, das dafür gedacht ist,
930 virtuelle Hosts unter verschiedenen Benutzerkennungen auszuführen,
931 bestimmt die Direktive <directive>User</directive> die
932 Benutzerkennung für den Hauptserver und bildet den Rückfallwert
933 für <directive type="section"
934 module="core">VirtualHost</directive>-Abschnitte ohne eine
935 <directive module="perchild">AssignUserID</directive>-Anweisung.</p>
937 <p>Wichtiger Hinweis: Die Verwendung dieser Direktive innerhalb von
938 <directive module="core" type="section">VirtualHost</directive> wird
939 nicht mehr unterstützt. Benutzen Sie <directive
940 module="mod_suexec">SuexecUserGroup</directive>, um Ihren Server
941 für <a href="../suexec.html">suexec</a> einzurichten.</p>
943 <note><title>Anmerkung</title>
944 <p>Obwohl die Direktive <directive>User</directive> in den MPMs
945 <module>beos</module> und <module>mpmt_os2</module> existiert, ist
946 sie dort tatsächlich eine Leeranweisung und exisitert nur
947 aus Kompatibilitätsgründen.</p>