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 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>
141 <description>Benutzergruppe, unter welcher der Server Anfragen
142 beantwortet</description>
143 <syntax>Group <var>Unix-Gruppe</var></syntax>
144 <default>Group #-1</default>
145 <contextlist><context>server config</context></contextlist>
146 <modulelist><module>beos</module><module>leader</module>
147 <module>mpmt_os2</module><module>perchild</module><module>prefork</module>
148 <module>threadpool</module><module>worker</module></modulelist>
149 <compatibility>Seit Apache 2.0 nur in der globalen Server-Konfiguration
150 gültig</compatibility>
153 <p>Die Direktive <directive>Group</directive> bestimmt die
154 Benutzergruppe, unter welcher der Server Anfragen beantwortet.
155 Um diese Direktive zu verwenden, muss der Server als <code>root</code> gestartet
156 werden. Wenn Sie den Server unter einem nicht-root-Benutzer starten,
157 wird er nicht zur angegebenen Gruppe wechseln können und statt
158 dessen weiter mit der Gruppe des ursprünglichen Benutzers
159 laufen. <var>Unix-Gruppe</var> kann sein:</p>
162 <dt>Ein Gruppenname</dt>
163 <dd>Verweist auf die durch den Namen angegebene Gruppe.</dd>
165 <dt><code>#</code> gefolgt von einer Gruppennummer.</dt>
166 <dd>Verweist auf die durch ihre Nummer angegebene Gruppe.</dd>
169 <example><title>Beispiel</title>
173 <p>Es wird empfohlen, dass Sie eine neue Gruppe speziell zum Betrieb
174 des Servers erstellen. Einige Administratoren verwenden den Benutzer
175 <code>nobody</code>. Dies ist jedoch nicht immer möglich
176 oder gewünscht.</p>
178 <note type="warning"><title>Sicherheit</title>
179 <p>Setzen Sie <directive>Group</directive> (oder <directive
180 module="mpm_common">User</directive>) nicht auf <code>root</code>,
181 solange Sie nicht ganz genau wissen, was Sie tun und welche Gefahren
185 <p>Wichtiger Hinweis: Die Verwendung der Direktive innerhalb von
186 <directive module="core" type="section">VirtualHost</directive>
187 wird nicht länger unterstützt. Benutzen Sie <directive
188 module="mod_suexec">SuexecUserGroup</directive> um Ihren Server
189 für <a href="mod_suexec.html">suexec</a> einzurichten.</p>
191 <note><title>Anmerkung</title>
192 <p>Obwohl die Direktive <directive>Group</directive> in den MPMs
193 <module>beos</module> und <module>mpmt_os2</module> existiert, ist
194 sie dort tatsächlich eine Leeranweisung und exisitert nur
195 aus Kompatibilitätsgründen.</p>
202 <description>Datei, in welcher der Server die Prozess-ID des Daemons
204 <syntax>PidFile <var>Dateiname</var></syntax>
205 <default>PidFile logs/httpd.pid</default>
206 <contextlist><context>server config</context></contextlist>
207 <modulelist><module>beos</module><module>leader</module>
208 <module>mpm_winnt</module><module>mpmt_os2</module>
209 <module>perchild</module><module>prefork</module>
210 <module>threadpool</module><module>worker</module></modulelist>
213 <p>Die Direktive <directive>PidFile</directive> bestimmt die Datei,
214 in welcher der Server die Prozess-ID des Daemons ablegt. Wenn der
215 Dateiname nicht absolut angegeben wird, wird er relativ zu
216 <directive module="core">ServerRoot</directive> interpretiert.</p>
218 <example><title>Beispiel</title>
219 PidFile /var/run/apache.pid
222 <p>Es ist oft hilfreich, dem Server ein Signal senden zu können,
223 damit er seine <directive module="core">ErrorLog</directive>s und
224 <directive module="mod_log_config">TransferLog</directive>s
225 schließt und dann neu öffnet und seine
226 Konfigurationsdateien neu einliest. Dies kann durch Senden eines
227 SIGHUP-Signals (kill -1) an die Prozess-ID geschehen, die im
228 <directive>PidFile</directive> eingetragen ist.</p>
230 <p>Die <directive>PidFile</directive>-Datei unterliegt den
231 gleichen Warnungen über die Ablage von Protokolldateien
232 und <a href="../misc/security_tips.html#serverroot">Sicherheit</a>.</p>
234 <note><title>Anmerkung</title>
235 <p>Ab Apache 2 wird empfohlen, nur das Skript <a
236 href="../programs/apachectl.html">apachectl</a> zum (Neu-)Starten
237 und Stoppen des Servers zu verwenden.</p>
244 <description>IP-Adressen und Ports, an denen der Server lauscht</description>
245 <syntax>Listen [<var>IP-Addresse</var>:]<var>Port</var></syntax>
246 <contextlist><context>server config</context></contextlist>
247 <modulelist><module>beos</module><module>leader</module>
248 <module>mpm_netware</module><module>mpm_winnt</module>
249 <module>mpmt_os2</module><module>perchild</module>
250 <module>prefork</module><module>threadpool</module><module>worker</module>
252 <compatibility>Seit Apache 2.0 vorgeschrieben</compatibility>
255 <p>Die Direktive <directive>Listen</directive> weist den Apache an,
256 nur an den angegebenen IP-Adressen oder Ports zu lauschen.
257 Standardmäßig antwortet er auf alle Anfragen an allen
258 IP-Interfaces. <directive>Listen</directive> ist nun eine notwendige
259 Anweisung. Wenn sie nicht in der Konfigurationsdatei enthalten ist,
260 wird der Server-Start fehlschlagen. Dies ist eine Änderung
261 gegenüber früheren Versionen des Apache.</p>
263 <p>Die Direktive <directive>Listen</directive> weist den Server an,
264 ankommende Anfragen am angegebenen Port oder der
265 Kombination aus Adresse und Port entgegenzunehmen. Wenn nur eine Portnummer
266 angegeben ist, dann lauscht der Server am angegebenen Port an allen
267 Interfaces. Wenn sowohl eine IP-Adresse als auch ein Port angegeben
268 sind, dann lauscht der Server am angegeben Port und Interface.</p>
270 <p>Es können mehrere <directive>Listen</directive>-Anweisungen
271 verwendet werden, um eine Reihe von Adressen und Port anzugeben, an
272 denen gelauscht werden soll. Der Server antwortet auf Anfragen von
273 jedem der aufgeführten Adressen und Ports.</p>
275 <p>Um beispielsweise den Server Verbindungen an den beiden Ports 80 und
276 8000 annehmen zu lassen, verwenden Sie:</p>
283 <p>Um den Server Verbindungen an zwei angegebenen Interfaces und Ports
284 annehmen zu lassen, verwenden Sie:</p>
287 Listen 192.170.2.1:80<br />
288 Listen 192.170.2.5:8000
291 <p>IPv6-Adressen müssen wie in dem folgenden Beispiel in eckige
292 Klammern eingeschlossen werden:</p>
295 Listen [fe80::a00:20ff:fea7:ccea]:80
298 <seealso><a href="../dns-caveats.html">DNS-Probleme</a></seealso>
299 <seealso><a href="../bind.html">Bestimmen, welche Adressen und Ports der
300 Apache verwendet</a></seealso>
304 <name>ListenBackLog</name>
305 <description>Maximale Länge der Warteschlange schwebender
306 Verbindungen</description>
307 <syntax>ListenBacklog <var>backlog</var></syntax>
308 <default>ListenBacklog 511</default>
309 <contextlist><context>server config</context></contextlist>
310 <modulelist><module>beos</module><module>leader</module>
311 <module>mpm_netware</module><module>mpm_winnt</module>
312 <module>mpmt_os2</module><module>perchild</module><module>prefork</module>
313 <module>threadpool</module><module>worker</module></modulelist>
316 <p>Die maximale Länge der Warteschlange schwebender Verbindungen.
317 Üblicherweise ist keine Feineinstellung notwendig oder sinnvoll,
318 auf einigen System kann es jedoch gewünscht sein, diesen Wert bei
319 TCP-SYN-Angriffen zu erhöhen. Beachten Sie auch die Beschreibung des
320 backlog-Parameters der Systemfunktion <code>listen(2)</code>.</p>
322 <p>Der Wert wird vom Betriebssystem oft auf eine niedrigere
323 Einstellung begrenzt. Dies variiert von Betriebssystem zu Betriebssystem.
324 Beachten Sie auch, dass viele Betriebssyteme nicht genau beachten,
325 was für backlog angegeben ist, jedoch einen Wert basierend auf der
326 Angabe (normalerweiseweise jedoch größer als diese) verwenden.</p>
331 <name>LockFile</name>
332 <description>Ablageort der Lock-Datei für die Serialisierung von
333 entgegengenommenen Anfragen</description>
334 <syntax>LockFile <var>Dateiname</var></syntax>
335 <default>LockFile logs/accept.lock</default>
336 <contextlist><context>server config</context></contextlist>
337 <modulelist><module>leader</module><module>perchild</module>
338 <module>prefork</module><module>threadpool</module><module>worker</module>
342 <p>Die Direktive <directive>LockFile</directive> legt den Pfad zur
343 Lock-Datei fest, die verwendet wird, wenn der Apache mit einer der
344 <directive module="mpm_common">AcceptMutex</directive>-Einstellungen
345 <code>fcntl</code> oder <code>flock</code> verwendet wird. Die Anweisung
346 sollte normalerweise bei der Voreinstellung belassen werden.
347 Der Hauptgrund, sie zu ändern, ist, wenn das
348 <code>logs</code>-Verzeichnis auf einem per NFS-eingebundenen Laufwerk
349 liegt, da <strong>die Lock-Datei auf einer lokalen Platte abgelegt sein
350 muss</strong>. Die PID <transnote>Prozess-ID</transnote> des
351 Hauptserverprozesses wird automatisch an den Dateinamen angehängt.</p>
353 <note type="warning"><title>Sicherheit</title>
354 <p>Es ist am besten, die Ablage in einem allgemein <transnote>für
355 jedermann</transnote> beschreibbaren
356 Verzeichnis wie <code>/var/tmp</code> <em>zu vermeiden</em>, da
357 ein Denial-of-Servide-Angriff gestartet werden könnte und der
358 Server am Start gehindert werden könnte, indem eine Lock-Datei
359 mit dem gleichen Namen erstellt wird, wie der Server sie zu erstellen
360 versuchen würde.</p>
363 <seealso><directive module="mpm_common">AcceptMutex</directive></seealso>
367 <name>MaxClients</name>
368 <description>Maximale Anzahl der Kindprozesse, die zur Bedienung von Anfragen
369 gestartet wird</description>
370 <syntax>MaxClients <var>Anzahl</var></syntax>
371 <default>Für Details siehe Beschreibung</default>
372 <contextlist><context>server config</context></contextlist>
373 <modulelist><module>beos</module><module>leader</module>
374 <module>prefork</module><module>threadpool</module><module>worker</module>
378 <p>Die Direktive <directive>MaxClients</directive> setzt die Grenze
379 für die Anzahl gleichzeitig bedienter Anfragen. Jeder
380 Verbindungsversuch oberhalb der <directive
381 >MaxClients</directive>-Begrenzung wird üblicherweise in eine
382 Warteschlange gestellt, bis zu einer Anzahl basierend auf der
383 <directive module="mpm_common">ListenBacklog</directive>-Anweisung.
384 Sobald ein Kindprozess am Ende einer anderen Anfrage freigegeben wird,
385 wird die Verbindung bedient.</p>
387 <p>Für Server ohne Thread-Unterstützung (<em>z.B.</em>
388 <module>prefork</module>) wird <directive>MaxClients</directive> als
389 maximale Anzahl der Kindprozesse verstanden, die zur Bedienung von
390 Anfragen gestartet werden. Die Voreinstellung ist <code>256</code>. Um
391 diesen Wert zu erhöhen, muss auch <directive
392 module="mpm_common">ServerLimit</directive> angehoben werden.</p>
394 <p>Bei Servern mit Thread-Unterstützung und bei Hybrid-Servern
395 (<em>z.B.</em> <module>beos</module> oder <module>worker</module>)
396 begrenzt <directive>MaxClients</directive> die Gesamtzahl der Threads,
397 die für die Bedienung von Anfragen verfügbar sind.
398 Die Voreinstellung für <module>beos</module> ist <code>50</code>.
399 Bei Hybrid-MPMs ist die Voreinstellung <code>16</code> (<directive
400 module="mpm_common">ServerLimit</directive>) multipliziert mit
401 dem Wert <code>25</code> (<directive module="mpm_common"
402 >ThreadsPerChild</directive>). Um <directive>MaxClients</directive>
403 auf einen Wert zu erhöhen, der mehr als 16 Prozesse erfordert,
404 müssen Sie daher auch <directive module="mpm_common"
405 >ServerLimit</directive> anheben.</p>
410 <name>MaxMemFree</name>
411 <description>Maximale Menge des Arbeitsspeichers, den die
412 Haupt-Zuteilungsroutine verwalten darf, ohne <code>free()</code>
413 aufzurufen</description>
414 <syntax>MaxMemFree <var>KBytes</var></syntax>
415 <default>MaxMemFree 0</default>
416 <contextlist><context>server config</context></contextlist>
417 <modulelist><module>beos</module><module>leader</module>
418 <module>mpm_netware</module><module>prefork</module>
419 <module>threadpool</module><module>worker</module><module>mpm_winnt</module></modulelist>
422 <p>Die Direktive <directive>MaxMemFree</directive> gibt die maximale
423 Menge freier Kilobytes an, welche die Haupt-Zuteilungsroutine verwalten
424 darf, ohne <code>free()</code> aufzurufen. Wenn keine Angabe gemacht wird,
425 oder Null angegeben ist, wird dieser Wert nicht eingeschränkt.</p>
430 <name>MaxRequestsPerChild</name>
431 <description>Obergrenze für die Anzahl von Anfragen, die ein einzelner
432 Kindprozess während seines Lebens bearbeitet</description>
433 <syntax>MaxRequestsPerChild <var>number</var></syntax>
434 <default>MaxRequestsPerChild 10000</default>
435 <contextlist><context>server config</context></contextlist>
436 <modulelist><module>leader</module><module>mpm_netware</module>
437 <module>mpm_winnt</module><module>mpmt_os2</module>
438 <module>perchild</module><module>prefork</module>
439 <module>threadpool</module><module>worker</module></modulelist>
442 <p>Die Direktive <directive>MaxRequestsPerChild</directive> legt die
443 Grenze für die Anzahl von Anfragen fest, die ein einzelner
444 Kinprozess während seines Lebens bearbeitet. Nach
445 <directive>MaxRequestsPerChild</directive> Anfragen stirbt der
446 Kindprozess. Wenn <directive>MaxRequestsPerChild</directive>
447 <code>0</code> ist, endet der Prozess niemals.</p>
449 <note><title>Abweichende Voreinstellungen</title>
450 <p>Die Voreinstellung für <module>mpm_netware</module> und
451 <module>mpm_winnt</module> ist <code>0</code>.</p>
454 <p>Die Begrenzung von <directive>MaxRequestsPerChild</directive> auf einen
455 Wert ungleich Null hat zwei vorteilhafte Auswirkungen:</p>
458 <li>sie begrenzt die Menge an Arbeitsspeicher, die ein Prozess
459 durch (versehentliche) Speicherlecks verbrauchen kann.</li>
461 <li>das Festlegen einer endlichen Lebensdauer von Prozessen hilft, die
462 Anzahl von Prozessen zu reduzieren, wenn die Serverlast
463 zurückgeht.</li>
466 <note><title>Anmerkung</title>
467 <p>Bei <directive module="core">KeepAlive</directive>-Anfragen
468 wird nur die erste Anfrage für diese begrenzung gezählt.
469 Eigentlich wird nur die Begrenzung für die Anzahl der
470 <em>Verbindungen</em> pro Kindprozess geändert.</p>
476 <name>MaxSpareThreads</name>
477 <description>Maximale Anzahl unbeschäftigter Threads</description>
478 <syntax>MaxSpareThreads <var>Anzahl</var></syntax>
479 <default>Für Details siehe Beschreibung</default>
480 <contextlist><context>server config</context></contextlist>
481 <modulelist><module>beos</module><module>leader</module>
482 <module>mpm_netware</module><module>mpmt_os2</module>
483 <module>perchild</module><module>threadpool</module><module>worker</module>
487 <p>Maximale Anzahl unbeschäftigter Threads. Die verschiedenen MPMs
488 behandeln diese Anweisung unterschiedlich.</p>
490 <p>Die Voreinstellung für <module>perchild</module> ist
491 <code>MaxSpareThreads 10</code>. Das MPM überwacht die Anzahl der
492 unbeschäftigten Threads auf der Basis einzelner Kindprozesse. Wenn
493 zu viele unbeschäftigte Threads in einem Kindprozess existieren,
494 beendet der Server Threads innerhalb dieses Kindprozesses.</p>
496 <p>Die Voreinstellung für <module>worker</module>,
497 <module>leader</module> und <module>threadpool</module> ist
498 <code>MaxSpareThreads 250</code>. Diese MPMs behandeln Threads
499 auf einer serverweiten Basis. Wenn zu viele unbeschäftigte Threads
500 im Server existieren, dann werden solange Kindprozesse beendet, bis
501 die Anzahl der unbeschäftigten Threads kleiner als der
502 angegebene Wert ist.</p>
504 <p>Die Voreinstellung für <module>mpm_netware</module> ist
505 <code>MaxSpareThreads 100</code>. Da dieses MPM nur einen einzigen
506 Prozess ausführt, ist die Zählung überschüssiger
507 Threads ebenfalls serverweit.</p>
509 <p><module>beos</module> and <module>mpmt_os2</module> arbeiten
510 ähnlich wie <module>mpm_netware</module>. Die Voreinstellung
511 für <module>beos</module> ist <code>MaxSpareThreads 50</code>.
512 Die Voreinstellung für <module>mpmt_os2</module> ist
515 <note><title>Restriktionen</title>
516 <p>Der Wertebereich von <directive>MaxSpareThreads</directive>
517 ist eingeschränkt. Apache korrigiert den angegebenen Wert
518 automatisch gemäß den folgenden Regeln:</p>
520 <li><module>perchild</module> verlangt, dass <directive
521 >MaxSpareThreads</directive> kleiner oder gleich <directive
522 module="mpm_common">ThreadLimit</directive> ist.</li>
524 <li><module>mpm_netware</module> verlangt einen Wert größer
525 als <directive module="mpm_common">MinSpareThreads</directive>.</li>
527 <li>Bei <module>leader</module>, <module>threadpool</module> und
528 <module>worker</module> muss der Wert größer oder gleich
529 der Summe aus <directive
530 module="mpm_common">MinSpareThreads</directive> und
531 <directive module="mpm_common">ThreadsPerChild</directive> sein.</li>
535 <seealso><directive module="mpm_common">MinSpareThreads</directive></seealso>
536 <seealso><directive module="mpm_common">StartServers</directive></seealso>
540 <name>MinSpareThreads</name>
541 <description>Minimale Anzahl unbeschäftigter Threads, die zur
542 Bedienung von Anfragespitzen zur Verfügung stehen</description>
543 <syntax>MinSpareThreads <var>Anzahl</var></syntax>
544 <default>Für Details siehe Beschreibung</default>
545 <contextlist><context>server config</context></contextlist>
546 <modulelist><module>beos</module><module>leader</module>
547 <module>mpm_netware</module><module>mpmt_os2</module>
548 <module>perchild</module><module>threadpool</module><module>worker</module>
552 <p>Minimale Anzahl unbeschäftigter Threads, um Anfragespitzen
553 zu bedienen. Die verschiedenen MPMs behandeln die Anweisung
556 <p><module>perchild</module> verwendet die Voreinstellung
557 <code>MinSpareThreads 5</code> und überwacht die Anzahl der
558 unbeschäftigten Threads auf der Basis einzelner Kindprozesse. Wenn
559 in einem Kindprozess nicht genügend unbeschäftigte
560 Threads vorhanden sind, erstellt der Server neue Threads innerhalb
561 dieses Kindprozesses. Wenn Sie also <directive module="perchild"
562 >NumServers</directive> auf <code>10</code> und <directive
563 >MinSpareThreads</directive> auf einen Wert von <code>5</code> setzen,
564 haben Sie mindestens 50 unbeschäftigte Threads auf Ihrem
567 <p><module>worker</module>, <module>leader</module> und
568 <module>threadpool</module> verwenden eine Voreinstellung von
569 <code>MinSpareThreads 75</code> und behandeln unbeschäftigte
570 Threads auf serverweiter Basis. Wenn nicht genügend
571 unbeschäftigte Threads im Server vorhanden sind, dann
572 werden solange Kindprozesse erzeugt, bis die Anzahl unbeschäftigter
573 Threads größer als der angegebene Wert ist.</p>
575 <p><module>mpm_netware</module> verwendet die Voreinstellung
576 <code>MinSpareThreads 10</code> und verfolgt dies serverweit, da
577 es ein Einzelprozess-MPM ist.</p>
579 <p><module>beos</module> und <module>mpmt_os2</module> arbeiten
580 ähnlich wie <module>mpm_netware</module>. Die Voreinstellung
581 für <module>beos</module> ist <code>MinSpareThreads 1</code>.
582 Die Voreinstellung für <module>mpmt_os2</module> ist
586 <seealso><directive module="mpm_common">MaxSpareThreads</directive></seealso>
587 <seealso><directive module="mpm_common">StartServers</directive></seealso>
591 <name>ScoreBoardFile</name>
592 <description>Ablageort der Datei, die zur Speicherung von Daten zur
593 Koordinierung der Kindprozesse verwendet wird</description>
594 <syntax>ScoreBoardFile <var>Dateipfad</var></syntax>
595 <default>ScoreBoardFile logs/apache_status</default>
596 <contextlist><context>server config</context></contextlist>
597 <modulelist><module>beos</module><module>leader</module>
598 <module>mpm_winnt</module><module>perchild</module><module>prefork</module>
599 <module>threadpool</module><module>worker</module></modulelist>
602 <p>Apache verwendet ein Scoreboard zur Kommunikation zwischen
603 seinen Eltern- und Kindprozessen. Einige Architekturen erfordern
604 eine Datei zur Unterstützung der Kommunikation. Wenn die Datei
605 undefiniert bleibt, versucht der Apache zuerst, das Scoreboard im
606 Arbeitsspeicher zu erstellen (Verwendung von anonymem Shared-Memory),
607 und versucht bei einem Fehlschlag anschließend die Datei auf
608 der Festplatte zu erstellen (Verwendung von Datei-basiertem
609 Shared-Memory). Die Angabe dieser Direktive veranlaßt den
610 Apache stets, die Datei auf der Festplatte zu erstellen.</p>
612 <example><title>Beispiel</title>
613 ScoreBoardFile /var/run/apache_status
616 <p>Datei-basiertes Shared-Memory ist für Applikationen von
617 Drittanbietern hilfreich, die direkten Zugriff auf das Scoreboard
620 <p>Wenn Sie eine <directive>ScoreBoardFile</directive>-Anweisung
621 verwenden, erreichen Sie eventuell eine höhere Geschwindigkeit, wenn
622 Sie die Datei auf einer RAM-Disk ablegen. Achten Sie darauf, die
623 gleichen Warnungen wie über die Ablage von Protokolldateien und
624 <a href="../misc/security_tips.html">Sicherheit</a> zu beherzigen.</p>
626 <seealso><a href="../stopping.html">Apache beenden und neu
627 starten</a></seealso>
631 <name>SendBufferSize</name>
632 <description>Größe des TCP-Puffers</description>
633 <syntax>SendBufferSize <var>Bytes</var></syntax>
634 <default>SendBufferSize 0</default>
635 <contextlist><context>server config</context></contextlist>
636 <modulelist><module>beos</module><module>leader</module>
637 <module>mpm_netware</module><module>mpm_winnt</module>
638 <module>mpmt_os2</module><module>perchild</module><module>prefork</module>
639 <module>threadpool</module><module>worker</module></modulelist>
642 <p>Der Server setzt die Größe des TCP-Puffers auf die
643 angegebene Anzahl Bytes. Dies ist sehr hilfreich, um Voreinstellungen
644 alter Standardbetriebssysteme für Hochgeschwindigkeitsverbindungen
645 mit hoher Latenzzeit anzuheben (<em>d.h.</em> 100ms oder so, wie bei
646 Interkontinentalverbindungen).</p>
648 <p>Wird der Wert auf <code>0</code> gesetzt, dann verwendet der Server
649 die Voreinstellung des Betriebssystems.</p>
654 <name>ServerLimit</name>
655 <description>Obergrenze für die konfigurierbare Anzahl von
656 Prozessen</description>
657 <syntax>ServerLimit <var>Anzahl</var></syntax>
658 <default>Für Details siehe Beschreibung</default>
659 <contextlist><context>server config</context></contextlist>
660 <modulelist><module>leader</module><module>perchild</module>
661 <module>prefork</module><module>threadpool</module><module>worker</module>
665 <p>Bei dem MPM <module>prefork</module> bestimmt die Direktive
666 den während der Lebensdauer des Apache-Prozesses maximal
667 einstellbaren Wert für <directive
668 module="mpm_common">MaxClients</directive>. Beim MPM
669 <module>worker</module> bestimmt die Direktive in Verbindung mit
670 <directive module="mpm_common">ThreadLimit</directive> den Maximalwert
671 für <directive module="mpm_common">MaxClients</directive>
672 für die Lebensdauer des Apache-Prozesses. Jeder Versuch, diese
673 Anweisung während eines Neustarts zu ändern, wird ignoriert.
674 <directive module="mpm_common">MaxClients</directive> kann jedoch
675 während eines Neustarts geändert werden.</p>
677 <p>Lassen Sie besondere Vorsicht bei der Verwendung dieser Direktive
678 walten. Wenn <directive>ServerLimit</directive> auf einen Wert deutlich
679 höher als notwendig gesetzt wird, wird zusätzliches,
680 unbenutztes Shared-Memory belegt. Wenn sowohl
681 <directive>ServerLimit</directive> als auch <directive
682 module="mpm_common">MaxClients</directive> auf Werte gesetzt werden, die
683 größer sind, als das System sie handhaben kann, dann kann
684 der Apache möglicherweise nicht starten, oder das System kann
687 <p>Verwenden Sie die Direktive bei dem MPM <module>prefork</module>
688 nur, wenn Sie <directive module="mpm_common">MaxClients</directive>
689 auf mehr als 256 (Voreinstellung) setzen müssen. Setzen Sie den
690 Wert nicht höher als den Wert, den Sie für <directive
691 module="mpm_common">MaxClients</directive> angeben möchten.</p>
693 <p>Verwenden Sie die Direktive bei <module>worker</module>,
694 <module>leader</module> und <module>threadpool</module> nur, wenn Ihre
695 <directive module="mpm_common">MaxClients</directive>- und
696 <directive module="mpm_common">ThreadsPerChild</directive>-Einstellungen
697 mehr als 16 Serverprozesse (Voreinstellung) erfordern. Setzen Sie den
698 Wert dieser Direktive nicht höher, als die Anzahl der Serverprozesse,
699 die dafür erforderlich ist, was Sie bei <directive
700 module="mpm_common">MaxClients</directive> und
701 <directive module="mpm_common">ThreadsPerChild</directive> angeben
704 <p>Verwenden Sie die Direktive beim MPM <module>perchild</module> nur,
705 wenn Sie <directive module="perchild">NumServers</directive> auf einen
706 Wert größer als 8 (Voreinstellung) setzen müssen.</p>
708 <note><title>Anmerkung</title>
709 <p>Eine feste Begrenzung von <code>ServerLimit 20000</code> ist in den
710 Server einkompiliert (bei dem MPM <module>prefork</module> 200000).
711 Dies soll unangenehme Effekte durch Tippfehler verhindern.</p>
714 <seealso><a href="../stopping.html">Apache beenden und neu
715 starten</a></seealso>
719 <name>StartServers</name>
720 <description>Anzahl der Kindprozesse des Servers, die beim Start erstellt
722 <syntax>StartServers <var>Anzahl</var></syntax>
723 <default>Für Details siehe Beschreibung</default>
724 <contextlist><context>server config</context></contextlist>
725 <modulelist><module>leader</module><module>mpmt_os2</module>
726 <module>prefork</module><module>threadpool</module><module>worker</module>
730 <p>Die Direktive <directive>StartServers</directive> bestimmt
731 die Anzahl der Kindprozesse des Servers, die beim Start erstellt
732 werden. Da die Anzahl der Prozesse abhängig von der Last
733 dynamisch kontrolliert wird, besteht normalerweise wenig
734 Grund für eine Änderung dieses Parameters.</p>
736 <p>Die Voreinstellung unterscheidet sich von MPM zu MPM. Bei
737 <module>leader</module>, <module>threadpool</module> und
738 <module>worker</module> ist die Voreinstellung
739 <code>StartServers 3</code>. Die Voreinstellung bei
740 <module>prefork</module> ist <code>5</code> und bei
741 <module>mpmt_os2</module> <code>2</code>.</p>
746 <name>StartThreads</name>
747 <description>Anzahl der Threads, die beim Start erstellt werden</description>
748 <syntax>StartThreads <var>Anzahl</var></syntax>
749 <default>Für Details siehe Beschreibung</default>
750 <contextlist><context>server config</context></contextlist>
751 <modulelist><module>beos</module><module>mpm_netware</module>
752 <module>perchild</module></modulelist>
755 <p>Anzahl der Threads, die beim Start erstellt werden. Da die Anzahl
756 der Threads abhängig von der Last dynamisch kontrolliert wird,
757 besteht normalerweise wenig Grund für eine Änderung
758 dieses Parameters.</p>
760 <p>Die Voreinstellung für <module>perchild</module> ist
761 <code>StartThreads 5</code>. Die Direktive setzt während des
762 Starts die Anzahl der Threads pro Prozess.</p>
764 <p>Die Voreinstellung bei <module>mpm_netware</module> ist
765 <code>StartThreads 50</code>. Da hier lediglich ein einzelner Prozess
766 existiert, ist dies die Gesamtzahl der Threads, die beim Start
767 erstellt wird, um Anfragen zu bedienen.</p>
769 <p>Die Voreinstellung für <module>beos</module> ist <code>StartThreads
770 10</code>. Die Einstellung reflektiert ebenfalls die Gesamtzahl der Threads, die
771 beim Start erstellt werden, um Anfragen zu bedienen.</p>
776 <name>ThreadLimit</name>
777 <description>Bestimmt die Obergrenze der konfigurierbaren Anzahl von Threads
778 pro Kindprozess</description>
779 <syntax>ThreadLimit <var>Anzahl</var></syntax>
780 <default>Für Details siehe Beschreibung</default>
781 <contextlist><context>server config</context></contextlist>
782 <modulelist><module>leader</module><module>mpm_winnt</module>
783 <module>perchild</module><module>threadpool</module><module>worker</module>
785 <compatibility>Verfügbar für <module>mpm_winnt</module> ab
786 Apache 2.0.41</compatibility>
789 <p>Die Direktive bestimmt den während der Lebensdauer des
790 Apache-Prozesses maximal einstellbaren Wert für
791 <directive module="mpm_common">ThreadsPerChild</directive>. Jeder
792 Versuch, diese Direktive während eines Neustarts zu ändern,
793 wird ignoriert. <directive module="mpm_common">ThreadsPerChild</directive>
794 kann jedoch während eines Neustarts modifiziert werden bis zu dem
795 Wert dieser Anweisung.</p>
797 <p>Lassen Sie besondere Vorsicht bei der Verwendung dieser Direktive
798 walten. Wenn <directive>ThreadLimit</directive> auf einen Wert
799 deutlich höher als <directive
800 module="mpm_common">ThreadsPerChild</directive> gesetzt wird, wird
801 zusätzliches, ungenutztes Shared-Memory belegt. Wenn sowohl
802 <directive>ThreadLimit</directive> als auch <directive
803 module="mpm_common">ThreadsPerChild</directive> auf Werte gesetzt werden,
804 die größer sind, als das System sie handhaben kann, dann kann
805 der Apache möglicherweise nicht starten oder das System kann
806 instabil werden. Setzen Sie den Wert dieser Direktive nicht höher
807 als Ihre größte erwartete Einstellung für
808 <directive module="mpm_common">ThreadsPerChild</directive>
809 während der aktuellen Ausführung des Apache.</p>
811 <p>Die Voreinstellung für <directive>ThreadLimit</directive> ist
812 <code>1920</code> wenn sie zusammen mit <module>mpm_winnt</module>
813 verwendet wird, und <code>64</code> bei der Verwendung mit anderen
816 <note><title>Anmerkung</title>
817 <p>Eine feste Begrenzung von <code>ThreadLimit 20000</code>
818 (oder <code>ThreadLimit 15000</code> bei <module>mpm_winnt</module>)
819 ist in den Server einkompiliert. Dies soll unangenehme Effekte durch
820 Tippfehler verhindern.</p>
826 <name>ThreadsPerChild</name>
827 <description>Anzahl der Threads, die mit jedem Kindprozess gestartet
829 <syntax>ThreadsPerChild <var>Anzahl</var></syntax>
830 <default>Für Details siehe Beschreibung</default>
831 <contextlist><context>server config</context></contextlist>
832 <modulelist><module>leader</module><module>mpm_winnt</module>
833 <module>threadpool</module><module>worker</module></modulelist>
836 <p>Die Direktive legt die Anzahl der Threads fest, die mit jedem
837 Kindprozess gestartet werden. Der Kindprozess erstellt diese Threads
838 beim Start und erstellt später keine weiteren mehr. Wenn Sie ein
839 MPM wie <module>mpm_winnt</module> verwenden, wo nur ein
840 Kindprozess existiert, dann sollte diese Angabe hoch genug sein,
841 die gesamte Last des Servers zu bewältigen. Wenn Sie ein MPM
842 wie <module>worker</module> verwenden, wo mehrere Kindprozesse
843 existieren, dann sollte die <em>Gesamt</em>zahl der Thread groß
844 genug sein, die übliche Last auf dem Server zu bewältigen.</p>
846 <p>Die Voreinstellung für <directive>ThreadsPerChild</directive> ist
847 <code>64</code>, wenn <module>mpm_winnt</module> verwendet wird, und
848 <code>25</code> bei der Verwendung der anderen MPMs.</p>
854 <description>Die Benutzerkennung, unter welcher der Server Anfragen
855 beantwortet</description>
856 <syntax>User <var>Unix-User-ID</var></syntax>
857 <default>User #-1</default>
858 <contextlist><context>server config</context></contextlist>
859 <modulelist><module>leader</module><module>perchild</module>
860 <module>prefork</module><module>threadpool</module><module>worker</module>
862 <compatibility>Seit Apache 2.0 nur in der globalen Server-Konfiguration
863 gültig</compatibility>
866 <p>Die Direktive <directive>User</directive> legt die Benutzerkennung
867 fest, mit der der Server Anfragen beantwortet. Um diese Anweisung
868 zu verwenden, muss der Server als <code>root</code> gestartet werden.
869 Wenn Sie den Server unter einem nicht-root-Benutzer starten, kann
870 er nicht zu dem minder privilegierten Benutzer wechseln und wird statt
871 dessen weiter mit der ursprünglichen Benutzerkennung laufen.
872 Wenn Sie den Server als <code>root</code> starten, dann ist es normal,
873 dass der Elternprozess als root weiterläuft.
874 <var>Unix-User-ID</var> kann sein:</p>
877 <dt>Ein Benutzername</dt>
878 <dd>Verweist auf den durch Namen angegebenen Benutzer.</dd>
880 <dt># gefolgt von einer Benutzernummer.</dt>
881 <dd>Verweist auf einen durch eine Nummer angegebenen Benutzer.</dd>
884 <p>Der Benutzer sollte keine Rechte besitzen, die dazu führen,
885 dass er in der Lage ist, auf Dateien zuzugreifen, die nicht dafür
886 bestimmt sind, für die Außenwelt sichtbar zu sein.
887 Gleichermaßen sollte der Benutzer nicht in der Lage sein,
888 Code auszuführen, der nicht für HTTP-Anfragen bestimmt ist.
889 Es wird empfohlen, einen neuen Benutzer und eine neue Gruppe speziell
890 zur Ausführung des Servers zu erstellen. Einige Administratoren
891 verwenden den Benutzer <code>nobody</code>. Dies ist jedoch nicht
892 immer wünschenswert, da der Benuter <code>nobody</code> andere
893 Rechte auf dem System besitzen kann.</p>
895 <note type="warning"><title>Sicherheit</title>
896 <p>Setzen Sie <directive>User</directive> (oder <directive
897 module="mpm_common">Group</directive>) nicht auf <code>root</code>,
898 solange Sie nicht genau wissen, was Sie tun, und welches die Gefahren
902 <p>Beim MPM <module>perchild</module>, das dafür gedacht ist,
903 virtuelle Hosts unter verschiedenen Benutzerkennungen auszuführen,
904 bestimmt die Direktive <directive>User</directive> die
905 Benutzerkennung für den Hauptserver und bildet den Rückfallwert
906 für <directive type="section"
907 module="core">VirtualHost</directive>-Abschnitte ohne eine
908 <directive module="perchild">AssignUserID</directive>-Anweisung.</p>
910 <p>Wichtiger Hinweis: Die Verwendung dieser Direktive innerhalb von
911 <directive module="core" type="section">VirtualHost</directive> wird
912 nicht mehr unterstützt. Benutzen Sie <directive
913 module="mod_suexec">SuexecUserGroup</directive>, um Ihren Server
914 für <a href="../suexec.html">suexec</a> einzurichten.</p>
916 <note><title>Anmerkung</title>
917 <p>Obwohl die Direktive <directive>User</directive> in den MPMs
918 <module>beos</module> und <module>mpmt_os2</module> existiert, ist
919 sie dort tatsächlich eine Leeranweisung und exisitert nur
920 aus Kompatibilitätsgründen.</p>