2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
4 <!-- English revision: 1.32 -->
6 <modulesynopsis metafile="mpm_common.xml.meta">
8 <name>mpm_common</name>
9 <description>Eine Sammlung von Direktiven, die in mehr als einem
10 Multi-Processing-Modul (MPM) implementiert sind.</description>
14 <name>AcceptMutex</name>
15 <description>Vom Apache verwendete Methode zur Serialisierung mehrerer
16 Kindprozesse, die Anfragen an Netzwerk-Sockets entgegennehmen.</description>
17 <syntax>AcceptMutex Default|<var>Methode</var></syntax>
18 <default>AcceptMutex Default</default>
19 <contextlist><context>server config</context></contextlist>
20 <modulelist><module>leader</module><module>perchild</module>
21 <module>prefork</module><module>threadpool</module><module>worker</module>
25 <p>Die Direktive <directive>AcceptMutex</directive> bestimmt die
26 Methode, die der Apache zur Serialisierung mehrerer Kindprozesse
27 verwendet, welche Anfragen an Netzwerk-Sockets entgegennehmen. Vor
28 Apache 2.0 war diese Methode nur zur Kompilierungszeit einstellbar.
29 Die optimale Methode ist sehr stark von der Architektur und
30 Plattform abhängig. Lesen Sie bitte <a
31 href="../misc/perf-tuning.html">Perfomance-Hinweise</a> für
34 <p>Wenn die Direktive auf <code>Default</code> eingestellt ist, dann
35 wird die zur Kompilierungszeit gewählte Voreinstellung verwendet.
36 Weitere mögliche Methoden sind unten angegeben. Beachten Sie, dass
37 nicht alle Methoden auf allen Plattformen verfügbar sind. Wird
38 eine Methode angegeben, die nicht verfügbar ist, dann wird
39 eine Nachricht in das Fehlerprotokoll geschrieben, welche die
40 verfügbaren Methoden auflistet.</p>
43 <dt><code>flock</code></dt>
44 <dd>verwendet die Systemfunktion <code>flock(2)</code>, um die
45 durch die <directive module="mpm_common"
46 >LockFile</directive>-Direktive definierte Datei zu sperren.</dd>
48 <dt><code>fcntl</code></dt>
49 <dd>verwendet die Systemfunktion <code>fcntl(2)</code>, um die
50 durch die <directive module="mpm_common"
51 >LockFile</directive>-Direktive definierte Datei zu sperren.</dd>
53 <dt><code>posixsem</code></dt>
54 <dd>verwendet POSIX-kompatible Semaphore, um den Mutex zu
57 <dt><code>pthread</code></dt>
58 <dd>verwendet gemäß der POSIX-Thread-Spezifikation
59 implementierte POSIX-Mutexe.</dd>
61 <dt><code>sysvsem</code></dt>
62 <dd>verwendet Semaphoren des SysV-Typs, um den Mutex zu
66 <p>Um die bei der Kompilierung gewählte Voreinstellung für
67 Ihr System herauszufinden, können Sie Ihr <directive module="core"
68 >LogLevel</directive> auf <code>debug</code> setzen. Dann wird der
69 voreingestellte <directive>AcceptMutex</directive> ins <directive
70 module="core">ErrorLog</directive> geschrieben.</p>
72 <note type="warning"><title>Warnung</title>
73 <p>Auf den meisten Systemen stoppt der Server mit der Beantwortung von
74 Anfragen, wenn die Option <code>pthread</code> ausgewählt wurde und
75 ein Kindprozess unkontrolliert endet während er den
76 <code>AcceptCntl</code>-Mutex hält. In diesem Fall muss der Server
77 manuell neu gestartet werden, um wieder weiter zu arbeiten.</p>
78 <p>Eine Ausnahme stellt Solaris dar, da es einen Mechanismus anbietet, den
79 der Apache verwendet und der üblicherweise die Freigabe des Mutex
80 erlaubt, nachdem ein Kindprozess, der gerade einen Mutex hält,
81 abgestürzt ist.</p>
82 <p>Wenn Ihr System die Funktion
83 <code>pthread_mutexattr_setrobust_np()</code> bereitstellt, können
84 Sie wahrscheinlich die Option <code>pthread</code> problemlos
91 <name>CoreDumpDirectory</name>
92 <description>Verzeichnis, in das der Apache zu wechseln versucht, bevor er
93 einen Hauptspeicherauszug erstellt</description>
94 <syntax>CoreDumpDirectory <var>Verzeichnis</var></syntax>
95 <default>Für die Voreinstellung siehe Beschreibung</default>
96 <contextlist><context>server config</context></contextlist>
97 <modulelist><module>beos</module><module>leader</module>
98 <module>mpm_winnt</module><module>perchild</module><module>prefork</module>
99 <module>threadpool</module><module>worker</module></modulelist>
102 <p>Dies beeinflusst das Verzeichnis, in welches der Apache zu wechseln
103 versucht, bevor er einen Hauptspeicherauszug <transnote>einen
104 so genannten Core-Dump</transnote> erstellt. Die Voreinstellung ist das
105 <directive module="core">ServerRoot</directive>-Verzeichnis. Da dieses
106 jedoch nicht für den Benutzer beschreibbar sein soll, unter dem
107 der Server läuft, werden normalerweise keine
108 Hauptspeicherauszüge geschrieben. Wenn Sie zum Debuggen
109 einen Hauptspeicherauszug haben möchten, können Sie
110 ihn mit dieser Direktive an einem anderen Ort ablegen lassen.</p>
112 <note><title>Hauptspeicherauszüge unter Linux</title>
113 <p>Wenn Apache als <code>root</code> startet und zu einem anderen Benutzer
114 wechselt, <em>deaktiviert</em> der Linux-Kernel Hauptspeicherauszüge
115 auch dann, wenn der Prozess in dem Verzeichnis schreiben darf. Ab Linux
116 2.4 reaktiviert Apache (ab 2.0.46) Hauptspeicherauszüge wieder,
117 jedoch nur dann, wenn Sie explizit
118 <directive>CoreDumpDirectory</directive> konfigurieren.</p>
125 <description>Benutzergruppe, unter welcher der Server Anfragen
126 beantwortet</description>
127 <syntax>Group <var>Unix-Gruppe</var></syntax>
128 <default>Group #-1</default>
129 <contextlist><context>server config</context></contextlist>
130 <modulelist><module>beos</module><module>leader</module>
131 <module>mpmt_os2</module><module>perchild</module><module>prefork</module>
132 <module>threadpool</module><module>worker</module></modulelist>
133 <compatibility>Seit Apache 2.0 nur in der globalen Server-Konfiguration
134 gültig</compatibility>
137 <p>Die Direktive <directive>Group</directive> bestimmt die
138 Benutzergruppe, unter welcher der Server Anfragen beantwortet.
139 Um diese Direktive zu verwenden, muss der Server als <code>root</code> gestartet
140 werden. Wenn Sie den Server unter einem nicht-root-Benutzer starten,
141 wird er nicht zur angegebenen Gruppe wechseln können und statt
142 dessen weiter mit der Gruppe des ursprünglichen Benutzers
143 laufen. <var>Unix-Gruppe</var> kann sein:</p>
146 <dt>Ein Gruppenname</dt>
147 <dd>Verweist auf die durch den Namen angegebene Gruppe.</dd>
149 <dt><code>#</code> gefolgt von einer Gruppennummer.</dt>
150 <dd>Verweist auf die durch ihre Nummer angegebene Gruppe.</dd>
153 <example><title>Beispiel</title>
157 <p>Es wird empfohlen, dass Sie eine neue Gruppe speziell zum Betrieb
158 des Servers erstellen. Einige Administratoren verwenden den Benutzer
159 <code>nobody</code>. Dies ist jedoch nicht immer möglich
160 oder gewünscht.</p>
162 <note type="warning"><title>Sicherheit</title>
163 <p>Setzen Sie <directive>Group</directive> (oder <directive
164 module="mpm_common">User</directive>) nicht auf <code>root</code>,
165 solange Sie nicht ganz genau wissen, was Sie tun und welche Gefahren
169 <p>Wichtiger Hinweis: Die Verwendung der Direktive innerhalb von
170 <directive module="core" type="section">VirtualHost</directive>
171 wird nicht länger unterstützt. Benutzen Sie <directive
172 module="mod_suexec">SuexecUserGroup</directive> um Ihren Server
173 für <a href="mod_suexec.html">suexec</a> einzurichten.</p>
175 <note><title>Anmerkung</title>
176 <p>Obwohl die Direktive <directive>Group</directive> in den MPMs
177 <module>beos</module> und <module>mpmt_os2</module> existiert, ist
178 sie dort tatsächlich eine Leeranweisung und exisitert nur
179 aus Kompatibilitätsgründen.</p>
186 <description>Datei, in welcher der Server die Prozess-ID des Daemons
188 <syntax>PidFile <var>Dateiname</var></syntax>
189 <default>PidFile logs/httpd.pid</default>
190 <contextlist><context>server config</context></contextlist>
191 <modulelist><module>beos</module><module>leader</module>
192 <module>mpm_winnt</module><module>mpmt_os2</module>
193 <module>perchild</module><module>prefork</module>
194 <module>threadpool</module><module>worker</module></modulelist>
197 <p>Die Direktive <directive>PidFile</directive> bestimmt die Datei,
198 in welcher der Server die Prozess-ID des Daemons ablegt. Wenn der
199 Dateiname nicht absolut angegeben wird, wird er relativ zu
200 <directive module="core">ServerRoot</directive> interpretiert.</p>
202 <example><title>Beispiel</title>
203 PidFile /var/run/apache.pid
206 <p>Es ist oft hilfreich, dem Server ein Signal senden zu können,
207 damit er seine <directive module="core">ErrorLog</directive>s und
208 <directive module="mod_log_config">TransferLog</directive>s
209 schließt und dann neu öffnet und seine
210 Konfigurationsdateien neu einliest. Dies kann durch Senden eines
211 SIGHUP-Signals (kill -1) an die Prozess-ID geschehen, die im
212 <directive>PidFile</directive> eingetragen ist.</p>
214 <p>Die <directive>PidFile</directive>-Datei unterliegt den
215 gleichen Warnungen über die Ablage von Protokolldateien
216 und <a href="../misc/security_tips.html#serverroot">Sicherheit</a>.</p>
218 <note><title>Anmerkung</title>
219 <p>Ab Apache 2 wird empfohlen, nur das Skript <a
220 href="../programs/apachectl.html">apachectl</a> zum (Neu-)Starten
221 und Stoppen des Servers zu verwenden.</p>
228 <description>IP-Adressen und Ports, an denen der Server lauscht</description>
229 <syntax>Listen [<var>IP-Addresse</var>:]<var>Port</var></syntax>
230 <contextlist><context>server config</context></contextlist>
231 <modulelist><module>beos</module><module>leader</module>
232 <module>mpm_netware</module><module>mpm_winnt</module>
233 <module>mpmt_os2</module><module>perchild</module>
234 <module>prefork</module><module>threadpool</module><module>worker</module>
236 <compatibility>Seit Apache 2.0 vorgeschrieben</compatibility>
239 <p>Die Direktive <directive>Listen</directive> weist den Apache an,
240 nur an den angegebenen IP-Adressen oder Ports zu lauschen.
241 Standardmäßig antwortet er auf alle Anfragen an allen
242 IP-Interfaces. <directive>Listen</directive> ist nun eine notwendige
243 Anweisung. Wenn sie nicht in der Konfigurationsdatei enthalten ist,
244 wird der Server-Start fehlschlagen. Dies ist eine Änderung
245 gegenüber früheren Versionen des Apache.</p>
247 <p>Die Direktive <directive>Listen</directive> weist den Server an,
248 ankommende Anfragen am angegebenen Port oder der
249 Kombination aus Adresse und Port entgegenzunehmen. Wenn nur eine Portnummer
250 angegeben ist, dann lauscht der Server am angegebenen Port an allen
251 Interfaces. Wenn sowohl eine IP-Adresse als auch ein Port angegeben
252 sind, dann lauscht der Server am angegeben Port und Interface.</p>
254 <p>Es können mehrere <directive>Listen</directive>-Anweisungen
255 verwendet werden, um eine Reihe von Adressen und Port anzugeben, an
256 denen gelauscht werden soll. Der Server antwortet auf Anfragen von
257 jedem der aufgeführten Adressen und Ports.</p>
259 <p>Um beispielsweise den Server Verbindungen an den beiden Ports 80 und
260 8000 annehmen zu lassen, verwenden Sie:</p>
267 <p>Um den Server Verbindungen an zwei angegebenen Interfaces und Ports
268 annehmen zu lassen, verwenden Sie:</p>
271 Listen 192.170.2.1:80<br />
272 Listen 192.170.2.5:8000
275 <p>IPv6-Adressen müssen wie in dem folgenden Beispiel in eckige
276 Klammern eingeschlossen werden:</p>
279 Listen [fe80::a00:20ff:fea7:ccea]:80
282 <seealso><a href="../dns-caveats.html">DNS-Probleme</a></seealso>
283 <seealso><a href="../bind.html">Bestimmen, welche Adressen und Ports der
284 Apache verwendet</a></seealso>
288 <name>ListenBackLog</name>
289 <description>Maximale Länge der Warteschlange schwebender
290 Verbindungen</description>
291 <syntax>ListenBacklog <var>backlog</var></syntax>
292 <default>ListenBacklog 511</default>
293 <contextlist><context>server config</context></contextlist>
294 <modulelist><module>beos</module><module>leader</module>
295 <module>mpm_netware</module><module>mpm_winnt</module>
296 <module>mpmt_os2</module><module>perchild</module><module>prefork</module>
297 <module>threadpool</module><module>worker</module></modulelist>
300 <p>Die maximale Länge der Warteschlange schwebender Verbindungen.
301 Üblicherweise ist keine Feineinstellung notwendig oder sinnvoll,
302 auf einigen System kann es jedoch gewünscht sein, diesen Wert bei
303 TCP-SYN-Angriffen zu erhöhen. Beachten Sie auch die Beschreibung des
304 backlog-Parameters der Systemfunktion <code>listen(2)</code>.</p>
306 <p>Der Wert wird vom Betriebssystem oft auf eine niedrigere
307 Einstellung begrenzt. Dies variiert von Betriebssystem zu Betriebssystem.
308 Beachten Sie auch, dass viele Betriebssyteme nicht genau beachten,
309 was für backlog angegeben ist, jedoch einen Wert basierend auf der
310 Angabe (normalerweiseweise jedoch größer als diese) verwenden.</p>
315 <name>LockFile</name>
316 <description>Ablageort der Lock-Datei für die Serialisierung von
317 entgegengenommenen Anfragen</description>
318 <syntax>LockFile <var>Dateiname</var></syntax>
319 <default>LockFile logs/accept.lock</default>
320 <contextlist><context>server config</context></contextlist>
321 <modulelist><module>leader</module><module>perchild</module>
322 <module>prefork</module><module>threadpool</module><module>worker</module>
326 <p>Die Direktive <directive>LockFile</directive> legt den Pfad zur
327 Lock-Datei fest, die verwendet wird, wenn der Apache mit einer der
328 <directive module="mpm_common">AcceptMutex</directive>-Einstellungen
329 <code>fcntl</code> oder <code>flock</code> verwendet wird. Die Anweisung
330 sollte normalerweise bei der Voreinstellung belassen werden.
331 Der Hauptgrund, sie zu ändern, ist, wenn das
332 <code>logs</code>-Verzeichnis auf einem per NFS-eingebundenen Laufwerk
333 liegt, da <strong>die Lock-Datei auf einer lokalen Platte abgelegt sein
334 muss</strong>. Die PID <transnote>Prozess-ID</transnote> des
335 Hauptserverprozesses wird automatisch an den Dateinamen angehängt.</p>
337 <note type="warning"><title>Sicherheit</title>
338 <p>Es ist am besten, die Ablage in einem allgemein <transnote>für
339 jedermann</transnote> beschreibbaren
340 Verzeichnis wie <code>/var/tmp</code> <em>zu vermeiden</em>, da
341 ein Denial-of-Servide-Angriff gestartet werden könnte und der
342 Server am Start gehindert werden könnte, indem eine Lock-Datei
343 mit dem gleichen Namen erstellt wird, wie der Server sie zu erstellen
344 versuchen würde.</p>
347 <seealso><directive module="mpm_common">AcceptMutex</directive></seealso>
351 <name>MaxClients</name>
352 <description>Maximale Anzahl der Kindprozesse, die zur Bedienung von Anfragen
353 gestartet wird</description>
354 <syntax>MaxClients <var>Anzahl</var></syntax>
355 <default>Für Details siehe Beschreibung</default>
356 <contextlist><context>server config</context></contextlist>
357 <modulelist><module>beos</module><module>leader</module>
358 <module>prefork</module><module>threadpool</module><module>worker</module>
362 <p>Die Direktive <directive>MaxClients</directive> setzt die Grenze
363 für die Anzahl gleichzeitig bedienter Anfragen. Jeder
364 Verbindungsversuch oberhalb der <directive
365 >MaxClients</directive>-Begrenzung wird üblicherweise in eine
366 Warteschlange gestellt, bis zu einer Anzahl basierend auf der
367 <directive module="mpm_common">ListenBacklog</directive>-Anweisung.
368 Sobald ein Kindprozess am Ende einer anderen Anfrage freigegeben wird,
369 wird die Verbindung bedient.</p>
371 <p>Für Server ohne Thread-Unterstützung (<em>z.B.</em>
372 <module>prefork</module>) wird <directive>MaxClients</directive> als
373 maximale Anzahl der Kindprozesse verstanden, die zur Bedienung von
374 Anfragen gestartet werden. Die Voreinstellung ist <code>256</code>. Um
375 diesen Wert zu erhöhen, muss auch <directive
376 module="mpm_common">ServerLimit</directive> angehoben werden.</p>
378 <p>Bei Servern mit Thread-Unterstützung und bei Hybrid-Servern
379 (<em>z.B.</em> <module>beos</module> oder <module>worker</module>)
380 begrenzt <directive>MaxClients</directive> die Gesamtzahl der Threads,
381 die für die Bedienung von Anfragen verfügbar sind.
382 Die Voreinstellung für <module>beos</module> ist <code>50</code>.
383 Bei Hybrid-MPMs ist die Voreinstellung <code>16</code> (<directive
384 module="mpm_common">ServerLimit</directive>) multipliziert mit
385 dem Wert <code>25</code> (<directive module="mpm_common"
386 >ThreadsPerChild</directive>). Um <directive>MaxClients</directive>
387 auf einen Wert zu erhöhen, der mehr als 16 Prozesse erfordert,
388 müssen Sie daher auch <directive module="mpm_common"
389 >ServerLimit</directive> anheben.</p>
394 <name>MaxMemFree</name>
395 <description>Maximale Menge des Arbeitsspeichers, den die
396 Haupt-Zuteilungsroutine verwalten darf, ohne <code>free()</code>
397 aufzurufen</description>
398 <syntax>MaxMemFree <var>KBytes</var></syntax>
399 <default>MaxMemFree 0</default>
400 <contextlist><context>server config</context></contextlist>
401 <modulelist><module>beos</module><module>leader</module>
402 <module>mpm_netware</module><module>prefork</module>
403 <module>threadpool</module><module>worker</module><module>mpm_winnt</module></modulelist>
406 <p>Die Direktive <directive>MaxMemFree</directive> gibt die maximale
407 Menge freier Kilobytes an, welche die Haupt-Zuteilungsroutine verwalten
408 darf, ohne <code>free()</code> aufzurufen. Wenn keine Angabe gemacht wird,
409 oder Null angegeben ist, wird dieser Wert nicht eingeschränkt.</p>
414 <name>MaxRequestsPerChild</name>
415 <description>Obergrenze für die Anzahl von Anfragen, die ein einzelner
416 Kindprozess während seines Lebens bearbeitet</description>
417 <syntax>MaxRequestsPerChild <var>number</var></syntax>
418 <default>MaxRequestsPerChild 10000</default>
419 <contextlist><context>server config</context></contextlist>
420 <modulelist><module>leader</module><module>mpm_netware</module>
421 <module>mpm_winnt</module><module>mpmt_os2</module>
422 <module>perchild</module><module>prefork</module>
423 <module>threadpool</module><module>worker</module></modulelist>
426 <p>Die Direktive <directive>MaxRequestsPerChild</directive> legt die
427 Grenze für die Anzahl von Anfragen fest, die ein einzelner
428 Kinprozess während seines Lebens bearbeitet. Nach
429 <directive>MaxRequestsPerChild</directive> Anfragen stirbt der
430 Kindprozess. Wenn <directive>MaxRequestsPerChild</directive>
431 <code>0</code> ist, endet der Prozess niemals.</p>
433 <note><title>Abweichende Voreinstellungen</title>
434 <p>Die Voreinstellung für <module>mpm_netware</module> und
435 <module>mpm_winnt</module> ist <code>0</code>.</p>
438 <p>Die Begrenzung von <directive>MaxRequestsPerChild</directive> auf einen
439 Wert ungleich Null hat zwei vorteilhafte Auswirkungen:</p>
442 <li>sie begrenzt die Menge an Arbeitsspeicher, die ein Prozess
443 durch (versehentliche) Speicherlecks verbrauchen kann.</li>
445 <li>das Festlegen einer endlichen Lebensdauer von Prozessen hilft, die
446 Anzahl von Prozessen zu reduzieren, wenn die Serverlast
447 zurückgeht.</li>
450 <note><title>Anmerkung</title>
451 <p>Bei <directive module="core">KeepAlive</directive>-Anfragen
452 wird nur die erste Anfrage für diese begrenzung gezählt.
453 Eigentlich wird nur die Begrenzung für die Anzahl der
454 <em>Verbindungen</em> pro Kindprozess geändert.</p>
460 <name>MaxSpareThreads</name>
461 <description>Maximale Anzahl unbeschäftigter Threads</description>
462 <syntax>MaxSpareThreads <var>Anzahl</var></syntax>
463 <default>Für Details siehe Beschreibung</default>
464 <contextlist><context>server config</context></contextlist>
465 <modulelist><module>beos</module><module>leader</module>
466 <module>mpm_netware</module><module>mpmt_os2</module>
467 <module>perchild</module><module>threadpool</module><module>worker</module>
471 <p>Maximale Anzahl unbeschäftigter Threads. Die verschiedenen MPMs
472 behandeln diese Anweisung unterschiedlich.</p>
474 <p>Die Voreinstellung für <module>perchild</module> ist
475 <code>MaxSpareThreads 10</code>. Das MPM überwacht die Anzahl der
476 unbeschäftigten Threads auf der Basis einzelner Kindprozesse. Wenn
477 zu viele unbeschäftigte Threads in einem Kindprozess existieren,
478 beendet der Server Threads innerhalb dieses Kindprozesses.</p>
480 <p>Die Voreinstellung für <module>worker</module>,
481 <module>leader</module> und <module>threadpool</module> ist
482 <code>MaxSpareThreads 250</code>. Diese MPMs behandeln Threads
483 auf einer serverweiten Basis. Wenn zu viele unbeschäftigte Threads
484 im Server existieren, dann werden solange Kindprozesse beendet, bis
485 die Anzahl der unbeschäftigten Threads kleiner als der
486 angegebene Wert ist.</p>
488 <p>Die Voreinstellung für <module>mpm_netware</module> ist
489 <code>MaxSpareThreads 100</code>. Da dieses MPM nur einen einzigen
490 Prozess ausführt, ist die Zählung überschüssiger
491 Threads ebenfalls serverweit.</p>
493 <p><module>beos</module> and <module>mpmt_os2</module> arbeiten
494 ähnlich wie <module>mpm_netware</module>. Die Voreinstellung
495 für <module>beos</module> ist <code>MaxSpareThreads 50</code>.
496 Die Voreinstellung für <module>mpmt_os2</module> ist
499 <note><title>Restriktionen</title>
500 <p>Der Wertebereich von <directive>MaxSpareThreads</directive>
501 ist eingeschränkt. Apache korrigiert den angegebenen Wert
502 automatisch gemäß den folgenden Regeln:</p>
504 <li><module>perchild</module> verlangt, dass <directive
505 >MaxSpareThreads</directive> kleiner oder gleich <directive
506 module="mpm_common">ThreadLimit</directive> ist.</li>
508 <li><module>mpm_netware</module> verlangt einen Wert größer
509 als <directive module="mpm_common">MinSpareThreads</directive>.</li>
511 <li>Bei <module>leader</module>, <module>threadpool</module> und
512 <module>worker</module> muss der Wert größer oder gleich
513 der Summe aus <directive
514 module="mpm_common">MinSpareThreads</directive> und
515 <directive module="mpm_common">ThreadsPerChild</directive> sein.</li>
519 <seealso><directive module="mpm_common">MinSpareThreads</directive></seealso>
520 <seealso><directive module="mpm_common">StartServers</directive></seealso>
524 <name>MinSpareThreads</name>
525 <description>Minimale Anzahl unbeschäftigter Threads, die zur
526 Bedienung von Anfragespitzen zur Verfügung stehen</description>
527 <syntax>MinSpareThreads <var>Anzahl</var></syntax>
528 <default>Für Details siehe Beschreibung</default>
529 <contextlist><context>server config</context></contextlist>
530 <modulelist><module>beos</module><module>leader</module>
531 <module>mpm_netware</module><module>mpmt_os2</module>
532 <module>perchild</module><module>threadpool</module><module>worker</module>
536 <p>Minimale Anzahl unbeschäftigter Threads, um Anfragespitzen
537 zu bedienen. Die verschiedenen MPMs behandeln die Anweisung
540 <p><module>perchild</module> verwendet die Voreinstellung
541 <code>MinSpareThreads 5</code> und überwacht die Anzahl der
542 unbeschäftigten Threads auf der Basis einzelner Kindprozesse. Wenn
543 in einem Kindprozess nicht genügend unbeschäftigte
544 Threads vorhanden sind, erstellt der Server neue Threads innerhalb
545 dieses Kindprozesses. Wenn Sie also <directive module="perchild"
546 >NumServers</directive> auf <code>10</code> und <directive
547 >MinSpareThreads</directive> auf einen Wert von <code>5</code> setzen,
548 haben Sie mindestens 50 unbeschäftigte Threads auf Ihrem
551 <p><module>worker</module>, <module>leader</module> und
552 <module>threadpool</module> verwenden eine Voreinstellung von
553 <code>MinSpareThreads 75</code> und behandeln unbeschäftigte
554 Threads auf serverweiter Basis. Wenn nicht genügend
555 unbeschäftigte Threads im Server vorhanden sind, dann
556 werden solange Kindprozesse erzeugt, bis die Anzahl unbeschäftigter
557 Threads größer als der angegebene Wert ist.</p>
559 <p><module>mpm_netware</module> verwendet die Voreinstellung
560 <code>MinSpareThreads 10</code> und verfolgt dies serverweit, da
561 es ein Einzelprozess-MPM ist.</p>
563 <p><module>beos</module> und <module>mpmt_os2</module> arbeiten
564 ähnlich wie <module>mpm_netware</module>. Die Voreinstellung
565 für <module>beos</module> ist <code>MinSpareThreads 1</code>.
566 Die Voreinstellung für <module>mpmt_os2</module> ist
570 <seealso><directive module="mpm_common">MaxSpareThreads</directive></seealso>
571 <seealso><directive module="mpm_common">StartServers</directive></seealso>
575 <name>ScoreBoardFile</name>
576 <description>Ablageort der Datei, die zur Speicherung von Daten zur
577 Koordinierung der Kindprozesse verwendet wird</description>
578 <syntax>ScoreBoardFile <var>Dateipfad</var></syntax>
579 <default>ScoreBoardFile logs/apache_status</default>
580 <contextlist><context>server config</context></contextlist>
581 <modulelist><module>beos</module><module>leader</module>
582 <module>mpm_winnt</module><module>perchild</module><module>prefork</module>
583 <module>threadpool</module><module>worker</module></modulelist>
586 <p>Apache verwendet ein Scoreboard zur Kommunikation zwischen
587 seinen Eltern- und Kindprozessen. Einige Architekturen erfordern
588 eine Datei zur Unterstützung der Kommunikation. Wenn die Datei
589 undefiniert bleibt, versucht der Apache zuerst, das Scoreboard im
590 Arbeitsspeicher zu erstellen (Verwendung von anonymem Shared-Memory),
591 und versucht bei einem Fehlschlag anschließend die Datei auf
592 der Festplatte zu erstellen (Verwendung von Datei-basiertem
593 Shared-Memory). Die Angabe dieser Direktive veranlaßt den
594 Apache stets, die Datei auf der Festplatte zu erstellen.</p>
596 <example><title>Beispiel</title>
597 ScoreBoardFile /var/run/apache_status
600 <p>Datei-basiertes Shared-Memory ist für Applikationen von
601 Drittanbietern hilfreich, die direkten Zugriff auf das Scoreboard
604 <p>Wenn Sie eine <directive>ScoreBoardFile</directive>-Anweisung
605 verwenden, erreichen Sie eventuell eine höhere Geschwindigkeit, wenn
606 Sie die Datei auf einer RAM-Disk ablegen. Achten Sie darauf, die
607 gleichen Warnungen wie über die Ablage von Protokolldateien und
608 <a href="../misc/security_tips.html">Sicherheit</a> zu beherzigen.</p>
610 <seealso><a href="../stopping.html">Apache beenden und neu
611 starten</a></seealso>
615 <name>SendBufferSize</name>
616 <description>Größe des TCP-Puffers</description>
617 <syntax>SendBufferSize <var>Bytes</var></syntax>
618 <default>SendBufferSize 0</default>
619 <contextlist><context>server config</context></contextlist>
620 <modulelist><module>beos</module><module>leader</module>
621 <module>mpm_netware</module><module>mpm_winnt</module>
622 <module>mpmt_os2</module><module>perchild</module><module>prefork</module>
623 <module>threadpool</module><module>worker</module></modulelist>
626 <p>Der Server setzt die Größe des TCP-Puffers auf die
627 angegebene Anzahl Bytes. Dies ist sehr hilfreich, um Voreinstellungen
628 alter Standardbetriebssysteme für Hochgeschwindigkeitsverbindungen
629 mit hoher Latenzzeit anzuheben (<em>d.h.</em> 100ms oder so, wie bei
630 Interkontinentalverbindungen).</p>
632 <p>Wird der Wert auf <code>0</code> gesetzt, dann verwendet der Server
633 die Voreinstellung des Betriebssystems.</p>
638 <name>ServerLimit</name>
639 <description>Obergrenze für die konfigurierbare Anzahl von
640 Prozessen</description>
641 <syntax>ServerLimit <var>Anzahl</var></syntax>
642 <default>Für Details siehe Beschreibung</default>
643 <contextlist><context>server config</context></contextlist>
644 <modulelist><module>leader</module><module>perchild</module>
645 <module>prefork</module><module>threadpool</module><module>worker</module>
649 <p>Bei dem MPM <module>prefork</module> bestimmt die Direktive
650 den während der Lebensdauer des Apache-Prozesses maximal
651 einstellbaren Wert für <directive
652 module="mpm_common">MaxClients</directive>. Beim MPM
653 <module>worker</module> bestimmt die Direktive in Verbindung mit
654 <directive module="mpm_common">ThreadLimit</directive> den Maximalwert
655 für <directive module="mpm_common">MaxClients</directive>
656 für die Lebensdauer des Apache-Prozesses. Jeder Versuch, diese
657 Anweisung während eines Neustarts zu ändern, wird ignoriert.
658 <directive module="mpm_common">MaxClients</directive> kann jedoch
659 während eines Neustarts geändert werden.</p>
661 <p>Lassen Sie besondere Vorsicht bei der Verwendung dieser Direktive
662 walten. Wenn <directive>ServerLimit</directive> auf einen Wert deutlich
663 höher als notwendig gesetzt wird, wird zusätzliches,
664 unbenutztes Shared-Memory belegt. Wenn sowohl
665 <directive>ServerLimit</directive> als auch <directive
666 module="mpm_common">MaxClients</directive> auf Werte gesetzt werden, die
667 größer sind, als das System sie handhaben kann, dann kann
668 der Apache möglicherweise nicht starten, oder das System kann
671 <p>Verwenden Sie die Direktive bei dem MPM <module>prefork</module>
672 nur, wenn Sie <directive module="mpm_common">MaxClients</directive>
673 auf mehr als 256 (Voreinstellung) setzen müssen. Setzen Sie den
674 Wert nicht höher als den Wert, den Sie für <directive
675 module="mpm_common">MaxClients</directive> angeben möchten.</p>
677 <p>Verwenden Sie die Direktive bei <module>worker</module>,
678 <module>leader</module> und <module>threadpool</module> nur, wenn Ihre
679 <directive module="mpm_common">MaxClients</directive>- und
680 <directive module="mpm_common">ThreadsPerChild</directive>-Einstellungen
681 mehr als 16 Serverprozesse (Voreinstellung) erfordern. Setzen Sie den
682 Wert dieser Direktive nicht höher, als die Anzahl der Serverprozesse,
683 die dafür erforderlich ist, was Sie bei <directive
684 module="mpm_common">MaxClients</directive> und
685 <directive module="mpm_common">ThreadsPerChild</directive> angeben
688 <p>Verwenden Sie die Direktive beim MPM <module>perchild</module> nur,
689 wenn Sie <directive module="perchild">NumServers</directive> auf einen
690 Wert größer als 8 (Voreinstellung) setzen müssen.</p>
692 <note><title>Anmerkung</title>
693 <p>Eine feste Begrenzung von <code>ServerLimit 20000</code> ist in den
694 Server einkompiliert. Dies soll unangenehme Effekte durch Tippfehler
698 <seealso><a href="../stopping.html">Apache beenden und neu
699 starten</a></seealso>
703 <name>StartServers</name>
704 <description>Anzahl der Kindprozesse des Servers, die beim Start erstellt
706 <syntax>StartServers <var>Anzahl</var></syntax>
707 <default>Für Details siehe Beschreibung</default>
708 <contextlist><context>server config</context></contextlist>
709 <modulelist><module>leader</module><module>mpmt_os2</module>
710 <module>prefork</module><module>threadpool</module><module>worker</module>
714 <p>Die Direktive <directive>StartServers</directive> bestimmt
715 die Anzahl der Kindprozesse des Servers, die beim Start erstellt
716 werden. Da die Anzahl der Prozesse abhängig von der Last
717 dynamisch kontrolliert wird, besteht normalerweise wenig
718 Grund für eine Änderung dieses Parameters.</p>
720 <p>Die Voreinstellung unterscheidet sich von MPM zu MPM. Bei
721 <module>leader</module>, <module>threadpool</module> und
722 <module>worker</module> ist die Voreinstellung
723 <code>StartServers 3</code>. Die Voreinstellung bei
724 <module>prefork</module> ist <code>5</code> und bei
725 <module>mpmt_os2</module> <code>2</code>.</p>
730 <name>StartThreads</name>
731 <description>Anzahl der Threads, die beim Start erstellt werden</description>
732 <syntax>StartThreads <var>Anzahl</var></syntax>
733 <default>Für Details siehe Beschreibung</default>
734 <contextlist><context>server config</context></contextlist>
735 <modulelist><module>beos</module><module>mpm_netware</module>
736 <module>perchild</module></modulelist>
739 <p>Anzahl der Threads, die beim Start erstellt werden. Da die Anzahl
740 der Threads abhängig von der Last dynamisch kontrolliert wird,
741 besteht normalerweise wenig Grund für eine Änderung
742 dieses Parameters.</p>
744 <p>Die Voreinstellung für <module>perchild</module> ist
745 <code>StartThreads 5</code>. Die Direktive setzt während des
746 Starts die Anzahl der Threads pro Prozess.</p>
748 <p>Die Voreinstellung bei <module>mpm_netware</module> ist
749 <code>StartThreads 50</code>. Da hier lediglich ein einzelner Prozess
750 existiert, ist dies die Gesamtzahl der Threads, die beim Start
751 erstellt wird, um Anfragen zu bedienen.</p>
753 <p>Die Voreinstellung für <module>beos</module> ist <code>StartThreads
754 10</code>. Die Einstellung reflektiert ebenfalls die Gesamtzahl der Threads, die
755 beim Start erstellt werden, um Anfragen zu bedienen.</p>
760 <name>ThreadLimit</name>
761 <description>Bestimmt die Obergrenze der konfigurierbaren Anzahl von Threads
762 pro Kindprozess</description>
763 <syntax>ThreadLimit <var>Anzahl</var></syntax>
764 <default>Für Details siehe Beschreibung</default>
765 <contextlist><context>server config</context></contextlist>
766 <modulelist><module>leader</module><module>mpm_winnt</module>
767 <module>perchild</module><module>threadpool</module><module>worker</module>
769 <compatibility>Verfügbar für <module>mpm_winnt</module> ab
770 Apache 2.0.41</compatibility>
773 <p>Die Direktive bestimmt den während der Lebensdauer des
774 Apache-Prozesses maximal einstellbaren Wert für
775 <directive module="mpm_common">ThreadsPerChild</directive>. Jeder
776 Versuch, diese Direktive während eines Neustarts zu ändern,
777 wird ignoriert. <directive module="mpm_common">ThreadsPerChild</directive>
778 kann jedoch während eines Neustarts modifiziert werden bis zu dem
779 Wert dieser Anweisung.</p>
781 <p>Lassen Sie besondere Vorsicht bei der Verwendung dieser Direktive
782 walten. Wenn <directive>ThreadLimit</directive> auf einen Wert
783 deutlich höher als <directive
784 module="mpm_common">ThreadsPerChild</directive> gesetzt wird, wird
785 zusätzliches, ungenutztes Shared-Memory belegt. Wenn sowohl
786 <directive>ThreadLimit</directive> als auch <directive
787 module="mpm_common">ThreadsPerChild</directive> auf Werte gesetzt werden,
788 die größer sind, als das System sie handhaben kann, dann kann
789 der Apache möglicherweise nicht starten oder das System kann
790 instabil werden. Setzen Sie den Wert dieser Direktive nicht höher
791 als Ihre größte erwartete Einstellung für
792 <directive module="mpm_common">ThreadsPerChild</directive>
793 während der aktuellen Ausführung des Apache.</p>
795 <p>Die Voreinstellung für <directive>ThreadLimit</directive> ist
796 <code>1920</code> wenn sie zusammen mit <module>mpm_winnt</module>
797 verwendet wird, und <code>64</code> bei der Verwendung mit anderen
800 <note><title>Anmerkung</title>
801 <p>Eine feste Begrenzung von <code>ThreadLimit 20000</code>
802 (oder <code>ThreadLimit 15000</code> bei <module>mpm_winnt</module>)
803 ist in den Server einkompiliert. Dies soll unangenehme Effekte durch
804 Tippfehler verhindern.</p>
810 <name>ThreadsPerChild</name>
811 <description>Anzahl der Threads, die mit jedem Kindprozess gestartet
813 <syntax>ThreadsPerChild <var>Anzahl</var></syntax>
814 <default>Für Details siehe Beschreibung</default>
815 <contextlist><context>server config</context></contextlist>
816 <modulelist><module>leader</module><module>mpm_winnt</module>
817 <module>threadpool</module><module>worker</module></modulelist>
820 <p>Die Direktive legt die Anzahl der Threads fest, die mit jedem
821 Kindprozess gestartet werden. Der Kindprozess erstellt diese Threads
822 beim Start und erstellt später keine weiteren mehr. Wenn Sie ein
823 MPM wie <module>mpm_winnt</module> verwenden, wo nur ein
824 Kindprozess existiert, dann sollte diese Angabe hoch genug sein,
825 die gesamte Last des Servers zu bewältigen. Wenn Sie ein MPM
826 wie <module>worker</module> verwenden, wo mehrere Kindprozesse
827 existieren, dann sollte die <em>Gesamt</em>zahl der Thread groß
828 genug sein, die übliche Last auf dem Server zu bewältigen.</p>
830 <p>Die Voreinstellung für <directive>ThreadsPerChild</directive> ist
831 <code>64</code>, wenn <module>mpm_winnt</module> verwendet wird, und
832 <code>25</code> bei der Verwendung der anderen MPMs.</p>
838 <description>Die Benutzerkennung, unter welcher der Server Anfragen
839 beantwortet</description>
840 <syntax>User <var>Unix-User-ID</var></syntax>
841 <default>User #-1</default>
842 <contextlist><context>server config</context></contextlist>
843 <modulelist><module>leader</module><module>perchild</module>
844 <module>prefork</module><module>threadpool</module><module>worker</module>
846 <compatibility>Seit Apache 2.0 nur in der globalen Server-Konfiguration
847 gültig</compatibility>
850 <p>Die Direktive <directive>User</directive> legt die Benutzerkennung
851 fest, mit der der Server Anfragen beantwortet. Um diese Anweisung
852 zu verwenden, muss der Server als <code>root</code> gestartet werden.
853 Wenn Sie den Server unter einem nicht-root-Benutzer starten, kann
854 er nicht zu dem minder privilegierten Benutzer wechseln und wird statt
855 dessen weiter mit der ursprünglichen Benutzerkennung laufen.
856 Wenn Sie den Server als <code>root</code> starten, dann ist es normal,
857 dass der Elternprozess als root weiterläuft.
858 <var>Unix-User-ID</var> kann sein:</p>
861 <dt>Ein Benutzername</dt>
862 <dd>Verweist auf den durch Namen angegebenen Benutzer.</dd>
864 <dt># gefolgt von einer Benutzernummer.</dt>
865 <dd>Verweist auf einen durch eine Nummer angegebenen Benutzer.</dd>
868 <p>Der Benutzer sollte keine Rechte besitzen, die dazu führen,
869 dass er in der Lage ist, auf Dateien zuzugreifen, die nicht dafür
870 bestimmt sind, für die Außenwelt sichtbar zu sein.
871 Gleichermaßen sollte der Benutzer nicht in der Lage sein,
872 Code auszuführen, der nicht für HTTP-Anfragen bestimmt ist.
873 Es wird empfohlen, einen neuen Benutzer und eine neue Gruppe speziell
874 zur Ausführung des Servers zu erstellen. Einige Administratoren
875 verwenden den Benutzer <code>nobody</code>. Dies ist jedoch nicht
876 immer wünschenswert, da der Benuter <code>nobody</code> andere
877 Rechte auf dem System besitzen kann.</p>
879 <note type="warning"><title>Sicherheit</title>
880 <p>Setzen Sie <directive>User</directive> (oder <directive
881 module="mpm_common">Group</directive>) nicht auf <code>root</code>,
882 solange Sie nicht genau wissen, was Sie tun, und welches die Gefahren
886 <p>Beim MPM <module>perchild</module>, das dafür gedacht ist,
887 virtuelle Hosts unter verschiedenen Benutzerkennungen auszuführen,
888 bestimmt die Direktive <directive>User</directive> die
889 Benutzerkennung für den Hauptserver und bildet den Rückfallwert
890 für <directive type="section"
891 module="core">VirtualHost</directive>-Abschnitte ohne eine
892 <directive module="perchild">AssignUserID</directive>-Anweisung.</p>
894 <p>Wichtiger Hinweis: Die Verwendung dieser Direktive innerhalb von
895 <directive module="core" type="section">VirtualHost</directive> wird
896 nicht mehr unterstützt. Benutzen Sie <directive
897 module="mod_suexec">SuexecUserGroup</directive>, um Ihren Server
898 für <a href="../suexec.html">suexec</a> einzurichten.</p>
900 <note><title>Anmerkung</title>
901 <p>Obwohl die Direktive <directive>User</directive> in den MPMs
902 <module>beos</module> und <module>mpmt_os2</module> existiert, ist
903 sie dort tatsächlich eine Leeranweisung und exisitert nur
904 aus Kompatibilitätsgründen.</p>