summaryrefslogtreecommitdiffstats
path: root/docs/manual/mod/mpm_common.xml.de
blob: d2b1fc3e0c4ed3055f4287fac14b6f40a706b868 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
<!-- English Revision: 151408:1737809 (outdated) -->

<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<modulesynopsis metafile="mpm_common.xml.meta">

<name>mpm_common</name>
<description>Eine Sammlung von Direktiven, die in mehr als einem
  Multi-Processing-Modul (MPM) implementiert sind.</description>
<status>MPM</status>

<directivesynopsis>
<name>AcceptMutex</name>
<description>Vom Apache verwendete Methode zur Serialisierung mehrerer
  Kindprozesse, die Anfragen an Netzwerk-Sockets entgegennehmen.</description>
<syntax>AcceptMutex Default|<var>Methode</var></syntax>
<default>AcceptMutex Default</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>leader</module><module>perchild</module>
<module>prefork</module><module>threadpool</module><module>worker</module>
</modulelist>

<usage>
    <p>Die Direktive <directive>AcceptMutex</directive> bestimmt die
    Methode, die der Apache zur Serialisierung mehrerer Kindprozesse
    verwendet, welche Anfragen an Netzwerk-Sockets entgegennehmen. Vor
    Apache 2.0 war diese Methode nur zur Kompilierungszeit einstellbar.
    Die optimale Methode ist sehr stark von der Architektur und
    Plattform abh&auml;ngig. Lesen Sie bitte <a
    href="../misc/perf-tuning.html">Perfomance-Hinweise</a> f&uuml;r
    weitere Details.</p>

    <p>Wenn die Direktive auf <code>Default</code> eingestellt ist, dann
    wird die zur Kompilierungszeit gew&auml;hlte Voreinstellung verwendet.
    Weitere m&ouml;gliche Methoden sind unten angegeben. Beachten Sie, dass
    nicht alle Methoden auf allen Plattformen verf&uuml;gbar sind. Wird
    eine Methode angegeben, die nicht verf&uuml;gbar ist, dann wird
    eine Nachricht in das Fehlerprotokoll geschrieben, welche die
    verf&uuml;gbaren Methoden auflistet.</p>

    <dl>
      <dt><code>flock</code></dt>
      <dd>verwendet die Systemfunktion <code>flock(2)</code>, um die
      durch die <directive module="mpm_common"
      >LockFile</directive>-Direktive definierte Datei zu sperren.</dd>

      <dt><code>fcntl</code></dt>
      <dd>verwendet die Systemfunktion <code>fcntl(2)</code>, um die
      durch die <directive module="mpm_common"
      >LockFile</directive>-Direktive definierte Datei zu sperren.</dd>

      <dt><code>posixsem</code></dt>
      <dd>verwendet POSIX-kompatible Semaphore, um den Mutex zu
      implementieren.</dd>

      <dt><code>pthread</code></dt>
      <dd>verwendet gem&auml;&szlig; der POSIX-Thread-Spezifikation
      implementierte POSIX-Mutexe.</dd>

      <dt><code>sysvsem</code></dt>
      <dd>verwendet Semaphoren des SysV-Typs, um den Mutex zu
      implementieren.</dd>
    </dl>

    <p>Um die bei der Kompilierung gew&auml;hlte Voreinstellung f&uuml;r
    Ihr System herauszufinden, k&ouml;nnen Sie Ihr <directive module="core"
    >LogLevel</directive> auf <code>debug</code> setzen. Dann wird der
    voreingestellte <directive>AcceptMutex</directive> ins <directive
    module="core">ErrorLog</directive> geschrieben.</p>

    <note type="warning"><title>Warnung</title>
      <p>Auf den meisten Systemen stoppt der Server mit der Beantwortung von
        Anfragen, wenn die Option <code>pthread</code> ausgew&auml;hlt wurde und
        ein Kindprozess unkontrolliert endet w&auml;hrend er den
        <code>AcceptCntl</code>-Mutex h&auml;lt. In diesem Fall muss der Server
        manuell neu gestartet werden, um wieder weiter zu arbeiten.</p>
      <p>Eine Ausnahme stellt Solaris dar, da es einen Mechanismus anbietet, den
        der Apache verwendet und der &uuml;blicherweise die Freigabe des Mutex
        erlaubt, nachdem ein Kindprozess, der gerade einen Mutex h&auml;lt,
        abgest&uuml;rzt ist.</p>
      <p>Wenn Ihr System die Funktion
        <code>pthread_mutexattr_setrobust_np()</code> bereitstellt, k&ouml;nnen
        Sie wahrscheinlich die Option <code>pthread</code> problemlos
        verwenden.</p>
    </note>
</usage>
</directivesynopsis>

<directivesynopsis>
<name>CoreDumpDirectory</name>
<description>Verzeichnis, in das der Apache zu wechseln versucht, bevor er
  einen Hauptspeicherauszug erstellt</description>
<syntax>CoreDumpDirectory <var>Verzeichnis</var></syntax>
<default>F&uuml;r die Voreinstellung siehe Beschreibung</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>beos</module><module>leader</module>
<module>mpm_winnt</module><module>perchild</module><module>prefork</module>
<module>threadpool</module><module>worker</module></modulelist>

<usage>
    <p>Dies beeinflusst das Verzeichnis, in welches der Apache zu wechseln
    versucht, bevor er einen Hauptspeicherauszug <transnote>einen
    so genannten Core-Dump</transnote> erstellt. Die Voreinstellung ist das
    <directive module="core">ServerRoot</directive>-Verzeichnis. Da dieses
    jedoch nicht f&uuml;r den Benutzer beschreibbar sein soll, unter dem
    der Server l&auml;uft, werden normalerweise keine
    Hauptspeicherausz&uuml;ge geschrieben. Wenn Sie zum Debuggen
    einen Hauptspeicherauszug haben m&ouml;chten, k&ouml;nnen Sie
    ihn mit dieser Direktive an einem anderen Ort ablegen lassen.</p>

    <note><title>Hauptspeicherausz&uuml;ge unter Linux</title>
      <p>Wenn Apache als <code>root</code> startet und zu einem anderen Benutzer 
      wechselt, <em>deaktiviert</em> der Linux-Kernel Hauptspeicherausz&uuml;ge
      auch dann, wenn der Prozess in dem Verzeichnis schreiben darf. Ab Linux
      2.4 reaktiviert Apache (ab 2.0.46) Hauptspeicherausz&uuml;ge wieder,
      jedoch nur dann, wenn Sie explizit
      <directive>CoreDumpDirectory</directive> konfigurieren.</p>
    </note>
</usage>
</directivesynopsis>

<directivesynopsis>
<name>EnableExceptionHook</name>
<description>Aktiviert einen Hook, der nach einem Absturz noch
Ausnahmefehler behandeln lassen kann</description>
<syntax>EnableExceptionHook On|Off</syntax>
<default>EnableExceptionHook Off</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>leader</module><module>perchild</module>
<module>prefork</module><module>threadpool</module>
<module>worker</module></modulelist>
<compatibility>Verf&uuml;gbar seit Version 2.0.49</compatibility>

<usage>
    <p>Diese Direktive ist aus Sicherheitsgr&uuml;nden nur verf&uuml;gbar,
    wenn der Server mit der Option <code>--enable-exception-hook</code>
    konfiguriert wurde. Sie aktiviert einen Hook, der es externen Modulen
    erlaubt, sich dort einzuh&auml;ngen und nach dem Absturz eines
    Kindprozesses noch Aktionen durchzuf&uuml;hren.</p>

    <p>Es existieren bereits zwei Module, <code>mod_whatkilledus</code> und
    <code>mod_backtrace</code>, welche diesen Hook verwenden. Weitere
    Informationen hierzu finden Sie auf Jeff Trawicks <a
    href="http://www.apache.org/~trawick/exception_hook.html"
    >EnableExceptionHook-Seite</a>.</p>
</usage>
</directivesynopsis>

<directivesynopsis>
<name>Group</name>
<description>Benutzergruppe, unter welcher der Server Anfragen
  beantwortet</description>
<syntax>Group <var>Unix-Gruppe</var></syntax>
<default>Group #-1</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>beos</module><module>leader</module>
<module>mpmt_os2</module><module>perchild</module><module>prefork</module>
<module>threadpool</module><module>worker</module></modulelist>
<compatibility>Seit Apache 2.0 nur in der globalen Server-Konfiguration
  g&uuml;ltig</compatibility>

<usage>
    <p>Die Direktive <directive>Group</directive> bestimmt die
    Benutzergruppe, unter welcher der Server Anfragen beantwortet.
    Um diese Direktive zu verwenden, muss der Server als <code>root</code> gestartet
    werden. Wenn Sie den Server unter einem nicht-root-Benutzer starten,
    wird er nicht zur angegebenen Gruppe wechseln k&ouml;nnen und statt
    dessen weiter mit der Gruppe des urspr&uuml;nglichen Benutzers
    laufen. <var>Unix-Gruppe</var> kann sein:</p>

    <dl>
      <dt>Ein Gruppenname</dt>
      <dd>Verweist auf die durch den Namen angegebene Gruppe.</dd>

      <dt><code>#</code> gefolgt von einer Gruppennummer.</dt>
      <dd>Verweist auf die durch ihre Nummer angegebene Gruppe.</dd>
    </dl>

    <example><title>Beispiel</title>
      Group www-group
    </example>

    <p>Es wird empfohlen, dass Sie eine neue Gruppe speziell zum Betrieb
    des Servers erstellen. Einige Administratoren verwenden den Benutzer
    <code>nobody</code>. Dies ist jedoch nicht immer m&ouml;glich
    oder gew&uuml;nscht.</p>

    <note type="warning"><title>Sicherheit</title>
      <p>Setzen Sie <directive>Group</directive> (oder <directive
      module="mpm_common">User</directive>) nicht auf <code>root</code>,
      solange Sie nicht ganz genau wissen, was Sie tun und welche Gefahren
      Sie eingehen.</p>
    </note>

    <p>Wichtiger Hinweis: Die Verwendung der Direktive innerhalb von
    <directive module="core" type="section">VirtualHost</directive>
    wird nicht l&auml;nger unterst&uuml;tzt. Benutzen Sie <directive
    module="mod_suexec">SuexecUserGroup</directive> um Ihren Server
    f&uuml;r <program>suexec</program> einzurichten.</p>

    <note><title>Anmerkung</title>
      <p>Obwohl die Direktive <directive>Group</directive> in den MPMs
      <module>beos</module> und <module>mpmt_os2</module> existiert, ist
      sie dort tats&auml;chlich eine Leeranweisung und exisitert nur
      aus Kompatibilit&auml;tsgr&uuml;nden.</p>
    </note>
</usage>
</directivesynopsis>

<directivesynopsis>
<name>PidFile</name>
<description>Datei, in welcher der Server die Prozess-ID des Daemons
ablegt</description>
<syntax>PidFile <var>Dateiname</var></syntax>
<default>PidFile logs/httpd.pid</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>beos</module><module>leader</module>
<module>mpm_winnt</module><module>mpmt_os2</module>
<module>perchild</module><module>prefork</module>
<module>threadpool</module><module>worker</module></modulelist>

<usage>
    <p>Die Direktive <directive>PidFile</directive> bestimmt die Datei,
    in welcher der Server die Prozess-ID des Daemons ablegt. Wenn der
    Dateiname nicht absolut angegeben wird, wird er relativ zu
    <directive module="core">ServerRoot</directive> interpretiert.</p>

    <example><title>Beispiel</title>
      PidFile /var/run/apache.pid
    </example>

    <p>Es ist oft hilfreich, dem Server ein Signal senden zu k&ouml;nnen,
    damit er seine <directive module="core">ErrorLog</directive>s und
    <directive module="mod_log_config">TransferLog</directive>s
    schlie&szlig;t und dann neu &ouml;ffnet und seine
    Konfigurationsdateien neu einliest. Dies kann durch Senden eines
    SIGHUP-Signals (kill -1) an die Prozess-ID geschehen, die im
    <directive>PidFile</directive> eingetragen ist.</p>

    <p>Die <directive>PidFile</directive>-Datei unterliegt den
    gleichen Warnungen &uuml;ber die Ablage von Protokolldateien
    und <a href="../misc/security_tips.html#serverroot">Sicherheit</a>.</p>

    <note><title>Anmerkung</title>
      <p>Ab Apache 2 wird empfohlen, nur das Skript <program>
      apachectl</program> zum (Neu-)Starten und Stoppen des Servers zu
      verwenden.</p>
    </note>
</usage>
</directivesynopsis>

<directivesynopsis>
<name>Listen</name>
<description>IP-Adressen und Ports, an denen der Server lauscht</description>
<syntax>Listen [<var>IP-Addresse</var>:]<var>Port</var></syntax>
<contextlist><context>server config</context></contextlist>
<modulelist><module>beos</module><module>leader</module>
<module>mpm_netware</module><module>mpm_winnt</module>
<module>mpmt_os2</module><module>perchild</module>
<module>prefork</module><module>threadpool</module><module>worker</module>
</modulelist>
<compatibility>Seit Apache 2.0 vorgeschrieben</compatibility>

<usage>
    <p>Die Direktive <directive>Listen</directive> weist den Apache an,
    nur an den angegebenen IP-Adressen oder Ports zu lauschen.
    Standardm&auml;&szlig;ig antwortet er auf alle Anfragen an allen
    IP-Interfaces. <directive>Listen</directive> ist nun eine notwendige
    Anweisung. Wenn sie nicht in der Konfigurationsdatei enthalten ist,
    wird der Server-Start fehlschlagen. Dies ist eine &Auml;nderung
    gegen&uuml;ber fr&uuml;heren Versionen des Apache.</p>

    <p>Die Direktive <directive>Listen</directive> weist den Server an,
    ankommende Anfragen am angegebenen Port oder der
    Kombination aus Adresse und Port entgegenzunehmen. Wenn nur eine Portnummer
    angegeben ist, dann lauscht der Server am angegebenen Port an allen
    Interfaces. Wenn sowohl eine IP-Adresse als auch ein Port angegeben
    sind, dann lauscht der Server am angegeben Port und Interface.</p>

    <p>Es k&ouml;nnen mehrere <directive>Listen</directive>-Anweisungen
    verwendet werden, um eine Reihe von Adressen und Port anzugeben, an
    denen gelauscht werden soll. Der Server antwortet auf Anfragen von
    jedem der aufgef&uuml;hrten Adressen und Ports.</p>

    <p>Um beispielsweise den Server Verbindungen an den beiden Ports 80 und
    8000 annehmen zu lassen, verwenden Sie:</p>

    <example>
      Listen 80<br />
      Listen 8000
    </example>

    <p>Um den Server Verbindungen an zwei angegebenen Interfaces und Ports
    annehmen zu lassen, verwenden Sie:</p>

    <example>
      Listen 192.170.2.1:80<br />
      Listen 192.170.2.5:8000
    </example>

    <p>IPv6-Adressen m&uuml;ssen wie in dem folgenden Beispiel in eckige
    Klammern eingeschlossen werden:</p>

    <example>
      Listen [2001:db8::a00:20ff:fea7:ccea]:80
    </example>

    <note><title>Fehlerm&ouml;glichkeit</title>
      Mehrere <directive>Listen</directive>-Direktiven f&uuml;r gleiche
      IP-Adresse und Port f&uuml;hren zur Fehlermeldung
      <code>Address already in use</code> <transnote>Adresse schon in
      Benutzung</transnote>.
    </note>
</usage>
<seealso><a href="../dns-caveats.html">DNS-Probleme</a></seealso>
<seealso><a href="../bind.html">Bestimmen, welche Adressen und Ports der
    Apache verwendet</a></seealso>
</directivesynopsis>

<directivesynopsis>
<name>ListenBackLog</name>
<description>Maximale L&auml;nge der Warteschlange schwebender
  Verbindungen</description>
<syntax>ListenBacklog <var>backlog</var></syntax>
<default>ListenBacklog 511</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>beos</module><module>leader</module>
<module>mpm_netware</module><module>mpm_winnt</module>
<module>mpmt_os2</module><module>perchild</module><module>prefork</module>
<module>threadpool</module><module>worker</module></modulelist>

<usage>
    <p>Die maximale L&auml;nge der Warteschlange schwebender Verbindungen.
    &Uuml;blicherweise ist keine Feineinstellung notwendig oder sinnvoll,
    auf einigen System kann es jedoch gew&uuml;nscht sein, diesen Wert bei
    TCP-SYN-Angriffen zu erh&ouml;hen. Beachten Sie auch die Beschreibung des
    backlog-Parameters der Systemfunktion <code>listen(2)</code>.</p>

    <p>Der Wert wird vom Betriebssystem oft auf eine niedrigere
    Einstellung begrenzt. Dies variiert von Betriebssystem zu Betriebssystem.
    Beachten Sie auch, dass viele Betriebssyteme nicht genau beachten,
    was f&uuml;r backlog angegeben ist, jedoch einen Wert basierend auf der
    Angabe (normalerweiseweise jedoch gr&ouml;&szlig;er als diese) verwenden.</p>
</usage>
</directivesynopsis>

<directivesynopsis>
<name>LockFile</name>
<description>Ablageort der Lock-Datei f&uuml;r die Serialisierung von
entgegengenommenen Anfragen</description>
<syntax>LockFile <var>Dateiname</var></syntax>
<default>LockFile logs/accept.lock</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>leader</module><module>perchild</module>
<module>prefork</module><module>threadpool</module><module>worker</module>
</modulelist>

<usage>
    <p>Die Direktive <directive>LockFile</directive> legt den Pfad zur
    Lock-Datei fest, die verwendet wird, wenn der Apache mit einer der
    <directive module="mpm_common">AcceptMutex</directive>-Einstellungen
    <code>fcntl</code> oder <code>flock</code> verwendet wird. Die Anweisung
    sollte normalerweise bei der Voreinstellung belassen werden.
    Der Hauptgrund, sie zu &auml;ndern, ist, wenn das
    <code>logs</code>-Verzeichnis auf einem per NFS-eingebundenen Laufwerk
    liegt, da <strong>die Lock-Datei auf einer lokalen Platte abgelegt sein
    muss</strong>. Die PID <transnote>Prozess-ID</transnote> des
    Hauptserverprozesses wird automatisch an den Dateinamen angeh&auml;ngt.</p>

    <note type="warning"><title>Sicherheit</title>
      <p>Es ist am besten, die Ablage in einem allgemein <transnote>f&uuml;r
      jedermann</transnote> beschreibbaren
      Verzeichnis wie <code>/var/tmp</code> <em>zu vermeiden</em>, da
      ein Denial-of-Servide-Angriff gestartet werden k&ouml;nnte und der
      Server am Start gehindert werden k&ouml;nnte, indem eine Lock-Datei
      mit dem gleichen Namen erstellt wird, wie der Server sie zu erstellen
      versuchen w&uuml;rde.</p>
    </note>
</usage>
<seealso><directive module="mpm_common">AcceptMutex</directive></seealso>
</directivesynopsis>

<directivesynopsis>
<name>MaxClients</name>
<description>Maximale Anzahl der Kindprozesse, die zur Bedienung von Anfragen
  gestartet wird</description>
<syntax>MaxClients <var>Anzahl</var></syntax>
<default>F&uuml;r Details siehe Beschreibung</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>beos</module><module>leader</module>
<module>prefork</module><module>threadpool</module><module>worker</module>
</modulelist>

<usage>
    <p>Die Direktive <directive>MaxClients</directive> setzt die Grenze
    f&uuml;r die Anzahl gleichzeitig bedienter Anfragen. Jeder
    Verbindungsversuch oberhalb der <directive
    >MaxClients</directive>-Begrenzung wird &uuml;blicherweise in eine
    Warteschlange gestellt, bis zu einer Anzahl basierend auf der
    <directive module="mpm_common">ListenBacklog</directive>-Anweisung.
    Sobald ein Kindprozess am Ende einer anderen Anfrage freigegeben wird,
    wird die Verbindung bedient.</p>

    <p>F&uuml;r Server ohne Thread-Unterst&uuml;tzung (<em>z.B.</em>
    <module>prefork</module>) wird <directive>MaxClients</directive> als
    maximale Anzahl der Kindprozesse verstanden, die zur Bedienung von
    Anfragen gestartet werden. Die Voreinstellung ist <code>256</code>. Um
    diesen Wert zu erh&ouml;hen, muss auch <directive
    module="mpm_common">ServerLimit</directive> angehoben werden.</p>

    <p>Bei Servern mit Thread-Unterst&uuml;tzung und bei Hybrid-Servern
    (<em>z.B.</em> <module>beos</module> oder <module>worker</module>)
    begrenzt <directive>MaxClients</directive> die Gesamtzahl der Threads,
    die f&uuml;r die Bedienung von Anfragen verf&uuml;gbar sind.
    Die Voreinstellung f&uuml;r <module>beos</module> ist <code>50</code>.
    Bei Hybrid-MPMs ist die Voreinstellung <code>16</code> (<directive
    module="mpm_common">ServerLimit</directive>) multipliziert mit
    dem Wert <code>25</code> (<directive module="mpm_common"
    >ThreadsPerChild</directive>). Um <directive>MaxClients</directive>
    auf einen Wert zu erh&ouml;hen, der mehr als 16 Prozesse erfordert,
    m&uuml;ssen Sie daher auch <directive module="mpm_common"
    >ServerLimit</directive> anheben.</p>
</usage>
</directivesynopsis>

<directivesynopsis>
<name>MaxMemFree</name>
<description>Maximale Menge des Arbeitsspeichers, den die
  Haupt-Zuteilungsroutine verwalten darf, ohne <code>free()</code>
  aufzurufen</description>
<syntax>MaxMemFree <var>KBytes</var></syntax>
<default>MaxMemFree 0</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>beos</module><module>leader</module>
<module>mpm_netware</module><module>prefork</module>
<module>threadpool</module><module>worker</module><module>mpm_winnt</module></modulelist>

<usage>
    <p>Die Direktive <directive>MaxMemFree</directive> gibt die maximale
    Menge freier Kilobytes an, welche die Haupt-Zuteilungsroutine verwalten
    darf, ohne <code>free()</code> aufzurufen. Wenn keine Angabe gemacht wird,
    oder Null angegeben ist, wird dieser Wert nicht eingeschr&auml;nkt.</p>
</usage>
</directivesynopsis>

<directivesynopsis>
<name>MaxRequestsPerChild</name>
<description>Obergrenze f&uuml;r die Anzahl von Anfragen, die ein einzelner
  Kindprozess w&auml;hrend seines Lebens bearbeitet</description>
<syntax>MaxRequestsPerChild <var>number</var></syntax>
<default>MaxRequestsPerChild 10000</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>leader</module><module>mpm_netware</module>
<module>mpm_winnt</module><module>mpmt_os2</module>
<module>perchild</module><module>prefork</module>
<module>threadpool</module><module>worker</module></modulelist>

<usage>
    <p>Die Direktive <directive>MaxRequestsPerChild</directive> legt die
    Grenze f&uuml;r die Anzahl von Anfragen fest, die ein einzelner
    Kinprozess w&auml;hrend seines Lebens bearbeitet. Nach
    <directive>MaxRequestsPerChild</directive> Anfragen stirbt der
    Kindprozess. Wenn <directive>MaxRequestsPerChild</directive>
    <code>0</code> ist, endet der Prozess niemals.</p>

    <note><title>Abweichende Voreinstellungen</title>
      <p>Die Voreinstellung f&uuml;r <module>mpm_netware</module> und
      <module>mpm_winnt</module> ist <code>0</code>.</p>
    </note>

    <p>Die Begrenzung von <directive>MaxRequestsPerChild</directive> auf einen
    Wert ungleich Null hat zwei vorteilhafte Auswirkungen:</p>

    <ul>
      <li>sie begrenzt die Menge an Arbeitsspeicher, die ein Prozess
      durch (versehentliche) Speicherlecks verbrauchen kann.</li>

      <li>das Festlegen einer endlichen Lebensdauer von Prozessen hilft, die
      Anzahl von Prozessen zu reduzieren, wenn die Serverlast
      zur&uuml;ckgeht.</li>
    </ul>

    <note><title>Anmerkung</title>
      <p>Bei <directive module="core">KeepAlive</directive>-Anfragen
      wird nur die erste Anfrage f&uuml;r diese begrenzung gez&auml;hlt.
      Eigentlich wird nur die Begrenzung f&uuml;r die Anzahl der
      <em>Verbindungen</em> pro Kindprozess ge&auml;ndert.</p>
    </note>
</usage>
</directivesynopsis>

<directivesynopsis>
<name>MaxSpareThreads</name>
<description>Maximale Anzahl unbesch&auml;ftigter Threads</description>
<syntax>MaxSpareThreads <var>Anzahl</var></syntax>
<default>F&uuml;r Details siehe Beschreibung</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>beos</module><module>leader</module>
<module>mpm_netware</module><module>mpmt_os2</module>
<module>perchild</module><module>threadpool</module><module>worker</module>
</modulelist>

<usage>
    <p>Maximale Anzahl unbesch&auml;ftigter Threads. Die verschiedenen MPMs
    behandeln diese Anweisung unterschiedlich.</p>

    <p>Die Voreinstellung f&uuml;r <module>perchild</module> ist
    <code>MaxSpareThreads 10</code>. Das MPM &uuml;berwacht die Anzahl der
    unbesch&auml;ftigten Threads auf der Basis einzelner Kindprozesse. Wenn
    zu viele unbesch&auml;ftigte Threads in einem Kindprozess existieren,
    beendet der Server Threads innerhalb dieses Kindprozesses.</p>

    <p>Die Voreinstellung f&uuml;r <module>worker</module>,
    <module>leader</module> und <module>threadpool</module> ist
    <code>MaxSpareThreads 250</code>. Diese MPMs behandeln Threads
    auf einer serverweiten Basis. Wenn zu viele unbesch&auml;ftigte Threads
    im Server existieren, dann werden solange Kindprozesse beendet, bis
    die Anzahl der unbesch&auml;ftigten Threads kleiner als der
    angegebene Wert ist.</p>

    <p>Die Voreinstellung f&uuml;r <module>mpm_netware</module> ist
    <code>MaxSpareThreads 100</code>. Da dieses MPM nur einen einzigen
    Prozess ausf&uuml;hrt, ist die Z&auml;hlung &uuml;bersch&uuml;ssiger
    Threads ebenfalls serverweit.</p>

    <p><module>beos</module> and <module>mpmt_os2</module> arbeiten
    &auml;hnlich wie <module>mpm_netware</module>. Die Voreinstellung
    f&uuml;r <module>beos</module> ist <code>MaxSpareThreads 50</code>.
    Die Voreinstellung f&uuml;r <module>mpmt_os2</module> ist
    <code>10</code>.</p>

    <note><title>Restriktionen</title>
      <p>Der Wertebereich von <directive>MaxSpareThreads</directive>
      ist eingeschr&auml;nkt. Apache korrigiert den angegebenen Wert
      automatisch gem&auml;&szlig; den folgenden Regeln:</p>
      <ul>
        <li><module>perchild</module> verlangt, dass <directive
        >MaxSpareThreads</directive> kleiner oder gleich <directive
        module="mpm_common">ThreadLimit</directive> ist.</li>

        <li><module>mpm_netware</module> verlangt einen Wert gr&ouml;&szlig;er
        als <directive module="mpm_common">MinSpareThreads</directive>.</li>

        <li>Bei <module>leader</module>, <module>threadpool</module> und
        <module>worker</module> muss der Wert gr&ouml;&szlig;er oder gleich
        der Summe aus <directive
        module="mpm_common">MinSpareThreads</directive> und
        <directive module="mpm_common">ThreadsPerChild</directive> sein.</li>
      </ul>
    </note>
</usage>
<seealso><directive module="mpm_common">MinSpareThreads</directive></seealso>
<seealso><directive module="mpm_common">StartServers</directive></seealso>
</directivesynopsis>

<directivesynopsis>
<name>MinSpareThreads</name>
<description>Minimale Anzahl unbesch&auml;ftigter Threads, die zur
  Bedienung von Anfragespitzen zur Verf&uuml;gung stehen</description>
<syntax>MinSpareThreads <var>Anzahl</var></syntax>
<default>F&uuml;r Details siehe Beschreibung</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>beos</module><module>leader</module>
<module>mpm_netware</module><module>mpmt_os2</module>
<module>perchild</module><module>threadpool</module><module>worker</module>
</modulelist>

<usage>
    <p>Minimale Anzahl unbesch&auml;ftigter Threads, um Anfragespitzen
    zu bedienen. Die verschiedenen MPMs behandeln die Anweisung
    unterschiedlich.</p>

    <p><module>perchild</module> verwendet die Voreinstellung
    <code>MinSpareThreads 5</code> und &uuml;berwacht die Anzahl der
    unbesch&auml;ftigten Threads auf der Basis einzelner Kindprozesse. Wenn
    in einem Kindprozess nicht gen&uuml;gend unbesch&auml;ftigte
    Threads vorhanden sind, erstellt der Server neue Threads innerhalb
    dieses Kindprozesses. Wenn Sie also <directive module="perchild"
    >NumServers</directive> auf <code>10</code> und <directive
    >MinSpareThreads</directive> auf einen Wert von <code>5</code> setzen,
    haben Sie mindestens 50 unbesch&auml;ftigte Threads auf Ihrem
    System.</p>

    <p><module>worker</module>, <module>leader</module> und
    <module>threadpool</module> verwenden eine Voreinstellung von
    <code>MinSpareThreads 75</code> und behandeln unbesch&auml;ftigte
    Threads auf serverweiter Basis. Wenn nicht gen&uuml;gend
    unbesch&auml;ftigte Threads im Server vorhanden sind, dann
    werden solange Kindprozesse erzeugt, bis die Anzahl unbesch&auml;ftigter
    Threads gr&ouml;&szlig;er als der angegebene Wert ist.</p>

    <p><module>mpm_netware</module> verwendet die Voreinstellung
    <code>MinSpareThreads 10</code> und verfolgt dies serverweit, da
    es ein Einzelprozess-MPM ist.</p>

    <p><module>beos</module> und <module>mpmt_os2</module> arbeiten
    &auml;hnlich wie <module>mpm_netware</module>. Die Voreinstellung
    f&uuml;r <module>beos</module> ist <code>MinSpareThreads 1</code>.
    Die Voreinstellung f&uuml;r <module>mpmt_os2</module> ist
    <code>5</code>.</p>

</usage>
<seealso><directive module="mpm_common">MaxSpareThreads</directive></seealso>
<seealso><directive module="mpm_common">StartServers</directive></seealso>
</directivesynopsis>

<directivesynopsis>
<name>ScoreBoardFile</name>
<description>Ablageort der Datei, die zur Speicherung von Daten zur
  Koordinierung der Kindprozesse verwendet wird</description>
<syntax>ScoreBoardFile <var>Dateipfad</var></syntax>
<default>ScoreBoardFile logs/apache_status</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>beos</module><module>leader</module>
<module>mpm_winnt</module><module>perchild</module><module>prefork</module>
<module>threadpool</module><module>worker</module></modulelist>

<usage>
    <p>Apache verwendet ein Scoreboard zur Kommunikation zwischen
    seinen Eltern- und Kindprozessen. Einige Architekturen erfordern
    eine Datei zur Unterst&uuml;tzung der Kommunikation. Wenn die Datei
    undefiniert bleibt, versucht der Apache zuerst, das Scoreboard im
    Arbeitsspeicher  zu erstellen (Verwendung von anonymem Shared-Memory),
    und versucht bei einem Fehlschlag anschlie&szlig;end die Datei auf
    der Festplatte zu erstellen (Verwendung von Datei-basiertem
    Shared-Memory). Die Angabe dieser Direktive veranla&szlig;t den
    Apache stets, die Datei auf der Festplatte zu erstellen.</p>

    <example><title>Beispiel</title>
      ScoreBoardFile /var/run/apache_status
    </example>

    <p>Datei-basiertes Shared-Memory ist f&uuml;r Applikationen von
    Drittanbietern hilfreich, die direkten Zugriff auf das Scoreboard
    ben&ouml;tigen.</p>

    <p>Wenn Sie eine <directive>ScoreBoardFile</directive>-Anweisung
    verwenden, erreichen Sie eventuell eine h&ouml;here Geschwindigkeit, wenn
    Sie die Datei auf einer RAM-Disk ablegen. Achten Sie darauf, die
    gleichen Warnungen wie &uuml;ber die Ablage von Protokolldateien und
    <a href="../misc/security_tips.html">Sicherheit</a> zu beherzigen.</p>
</usage>
<seealso><a href="../stopping.html">Apache beenden und neu
  starten</a></seealso>
</directivesynopsis>

<directivesynopsis>
<name>SendBufferSize</name>
<description>Gr&ouml;&szlig;e des TCP-Puffers</description>
<syntax>SendBufferSize <var>Bytes</var></syntax>
<default>SendBufferSize 0</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>beos</module><module>leader</module>
<module>mpm_netware</module><module>mpm_winnt</module>
<module>mpmt_os2</module><module>perchild</module><module>prefork</module>
<module>threadpool</module><module>worker</module></modulelist>

<usage>
    <p>Der Server setzt die Gr&ouml;&szlig;e des TCP-Puffers auf die
    angegebene Anzahl Bytes. Dies ist sehr hilfreich, um Voreinstellungen
    alter Standardbetriebssysteme f&uuml;r Hochgeschwindigkeitsverbindungen
    mit hoher Latenzzeit anzuheben (<em>d.h.</em> 100ms oder so, wie bei
    Interkontinentalverbindungen).</p>

    <p>Wird der Wert auf <code>0</code> gesetzt, dann verwendet der Server
    die Voreinstellung des Betriebssystems.</p>
</usage>
</directivesynopsis>

<directivesynopsis>
<name>ServerLimit</name>
<description>Obergrenze f&uuml;r die konfigurierbare Anzahl von
  Prozessen</description>
<syntax>ServerLimit <var>Anzahl</var></syntax>
<default>F&uuml;r Details siehe Beschreibung</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>leader</module><module>perchild</module>
<module>prefork</module><module>threadpool</module><module>worker</module>
</modulelist>

<usage>
    <p>Bei dem MPM <module>prefork</module> bestimmt die Direktive
    den w&auml;hrend der Lebensdauer des Apache-Prozesses maximal
    einstellbaren Wert f&uuml;r <directive
    module="mpm_common">MaxClients</directive>. Beim MPM
    <module>worker</module> bestimmt die Direktive in Verbindung mit
    <directive module="mpm_common">ThreadLimit</directive> den Maximalwert
    f&uuml;r <directive module="mpm_common">MaxClients</directive>
    f&uuml;r die Lebensdauer des Apache-Prozesses. Jeder Versuch, diese
    Anweisung w&auml;hrend eines Neustarts zu &auml;ndern, wird ignoriert.
    <directive module="mpm_common">MaxClients</directive> kann jedoch
    w&auml;hrend eines Neustarts ge&auml;ndert werden.</p>

    <p>Lassen Sie besondere Vorsicht bei der Verwendung dieser Direktive
    walten. Wenn <directive>ServerLimit</directive> auf einen Wert deutlich
    h&ouml;her als notwendig gesetzt wird, wird zus&auml;tzliches,
    unbenutztes Shared-Memory belegt. Wenn sowohl
    <directive>ServerLimit</directive> als auch <directive
    module="mpm_common">MaxClients</directive> auf Werte gesetzt werden, die
    gr&ouml;&szlig;er sind, als das System sie handhaben kann, dann kann
    der Apache m&ouml;glicherweise nicht starten, oder das System kann
    instabil werden.</p>

    <p>Verwenden Sie die Direktive bei dem MPM <module>prefork</module>
    nur, wenn Sie <directive module="mpm_common">MaxClients</directive>
    auf mehr als 256 (Voreinstellung) setzen m&uuml;ssen. Setzen Sie den
    Wert nicht h&ouml;her als den Wert, den Sie f&uuml;r <directive
    module="mpm_common">MaxClients</directive> angeben m&ouml;chten.</p>

    <p>Verwenden Sie die Direktive bei <module>worker</module>,
    <module>leader</module> und <module>threadpool</module> nur, wenn Ihre
    <directive module="mpm_common">MaxClients</directive>- und
    <directive module="mpm_common">ThreadsPerChild</directive>-Einstellungen
    mehr als 16 Serverprozesse (Voreinstellung) erfordern. Setzen Sie den
    Wert dieser Direktive nicht h&ouml;her, als die Anzahl der Serverprozesse,
    die daf&uuml;r erforderlich ist, was Sie bei <directive
    module="mpm_common">MaxClients</directive> und
    <directive module="mpm_common">ThreadsPerChild</directive> angeben
    m&ouml;chten.</p>

    <p>Verwenden Sie die Direktive beim MPM <module>perchild</module> nur,
    wenn Sie <directive module="perchild">NumServers</directive> auf einen
    Wert gr&ouml;&szlig;er als 8 (Voreinstellung) setzen m&uuml;ssen.</p>

    <note><title>Anmerkung</title>
      <p>Eine feste Begrenzung von <code>ServerLimit 20000</code> ist in den
      Server einkompiliert (bei dem MPM <module>prefork</module> 200000).
      Dies soll unangenehme Effekte durch Tippfehler verhindern.</p>
    </note>
</usage>
<seealso><a href="../stopping.html">Apache beenden und neu
  starten</a></seealso>
</directivesynopsis>

<directivesynopsis>
<name>StartServers</name>
<description>Anzahl der Kindprozesse des Servers, die beim Start erstellt
  werden</description>
<syntax>StartServers <var>Anzahl</var></syntax>
<default>F&uuml;r Details siehe Beschreibung</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>leader</module><module>mpmt_os2</module>
<module>prefork</module><module>threadpool</module><module>worker</module>
</modulelist>

<usage>
    <p>Die Direktive <directive>StartServers</directive> bestimmt
    die Anzahl der Kindprozesse des Servers, die beim Start erstellt
    werden. Da die Anzahl der Prozesse abh&auml;ngig von der Last
    dynamisch kontrolliert wird, besteht normalerweise wenig
    Grund f&uuml;r eine &Auml;nderung dieses Parameters.</p>

    <p>Die Voreinstellung unterscheidet sich von MPM zu MPM. Bei
    <module>leader</module>, <module>threadpool</module> und
    <module>worker</module> ist die Voreinstellung
    <code>StartServers 3</code>. Die Voreinstellung bei
    <module>prefork</module> ist <code>5</code> und bei
    <module>mpmt_os2</module> <code>2</code>.</p>
</usage>
</directivesynopsis>

<directivesynopsis>
<name>StartThreads</name>
<description>Anzahl der Threads, die beim Start erstellt werden</description>
<syntax>StartThreads <var>Anzahl</var></syntax>
<default>F&uuml;r Details siehe Beschreibung</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>beos</module><module>mpm_netware</module>
<module>perchild</module></modulelist>

<usage>
    <p>Anzahl der Threads, die beim Start erstellt werden. Da die Anzahl
    der Threads abh&auml;ngig von der Last dynamisch kontrolliert wird,
    besteht normalerweise wenig Grund f&uuml;r eine &Auml;nderung
    dieses Parameters.</p>

    <p>Die Voreinstellung f&uuml;r <module>perchild</module> ist
    <code>StartThreads 5</code>. Die Direktive setzt w&auml;hrend des
    Starts die Anzahl der Threads pro Prozess.</p>

    <p>Die Voreinstellung bei <module>mpm_netware</module> ist
    <code>StartThreads 50</code>. Da hier lediglich ein einzelner Prozess
    existiert, ist dies die Gesamtzahl der Threads, die beim Start
    erstellt wird, um Anfragen zu bedienen.</p>

    <p>Die Voreinstellung f&uuml;r <module>beos</module> ist <code>StartThreads
    10</code>. Die Einstellung reflektiert ebenfalls die Gesamtzahl der Threads, die
    beim Start erstellt werden, um Anfragen zu bedienen.</p>
</usage>
</directivesynopsis>

<directivesynopsis>
<name>ThreadLimit</name>
<description>Bestimmt die Obergrenze der konfigurierbaren Anzahl von Threads
  pro Kindprozess</description>
<syntax>ThreadLimit <var>Anzahl</var></syntax>
<default>F&uuml;r Details siehe Beschreibung</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>leader</module><module>mpm_winnt</module>
<module>perchild</module><module>threadpool</module><module>worker</module>
</modulelist>
<compatibility>Verf&uuml;gbar f&uuml;r <module>mpm_winnt</module> ab
  Apache 2.0.41</compatibility>

<usage>
    <p>Die Direktive bestimmt den w&auml;hrend der Lebensdauer des
    Apache-Prozesses maximal einstellbaren Wert f&uuml;r
    <directive module="mpm_common">ThreadsPerChild</directive>. Jeder
    Versuch, diese Direktive w&auml;hrend eines Neustarts zu &auml;ndern,
    wird ignoriert. <directive module="mpm_common">ThreadsPerChild</directive>
    kann jedoch w&auml;hrend eines Neustarts modifiziert werden bis zu dem
    Wert dieser Anweisung.</p>

    <p>Lassen Sie besondere Vorsicht bei der Verwendung dieser Direktive
    walten. Wenn <directive>ThreadLimit</directive> auf einen Wert
    deutlich h&ouml;her als <directive
    module="mpm_common">ThreadsPerChild</directive> gesetzt wird, wird
    zus&auml;tzliches, ungenutztes Shared-Memory belegt. Wenn sowohl
    <directive>ThreadLimit</directive> als auch <directive
    module="mpm_common">ThreadsPerChild</directive> auf Werte gesetzt werden,
    die gr&ouml;&szlig;er sind, als das System sie handhaben kann, dann kann
    der Apache m&ouml;glicherweise nicht starten oder das System kann
    instabil werden. Setzen Sie den Wert dieser Direktive nicht h&ouml;her
    als Ihre gr&ouml;&szlig;te erwartete Einstellung f&uuml;r
    <directive module="mpm_common">ThreadsPerChild</directive>
    w&auml;hrend der aktuellen Ausf&uuml;hrung des Apache.</p>

    <p>Die Voreinstellung f&uuml;r <directive>ThreadLimit</directive> ist
    <code>1920</code> wenn sie zusammen mit <module>mpm_winnt</module>
    verwendet wird, und <code>64</code> bei der Verwendung mit anderen
    MPMs.</p>

    <note><title>Anmerkung</title>
      <p>Eine feste Begrenzung von <code>ThreadLimit 20000</code>
      (oder <code>ThreadLimit 15000</code> bei <module>mpm_winnt</module>)
      ist in den Server einkompiliert. Dies soll unangenehme Effekte durch
      Tippfehler verhindern.</p>
    </note>
</usage>
</directivesynopsis>

<directivesynopsis>
<name>ThreadsPerChild</name>
<description>Anzahl der Threads, die mit jedem Kindprozess gestartet
  werden</description>
<syntax>ThreadsPerChild <var>Anzahl</var></syntax>
<default>F&uuml;r Details siehe Beschreibung</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>leader</module><module>mpm_winnt</module>
<module>threadpool</module><module>worker</module></modulelist>

<usage>
    <p>Die Direktive legt die Anzahl der Threads fest, die mit jedem
    Kindprozess gestartet werden. Der Kindprozess erstellt diese Threads
    beim Start und erstellt sp&auml;ter keine weiteren mehr. Wenn Sie ein
    MPM wie <module>mpm_winnt</module> verwenden, wo nur ein
    Kindprozess existiert, dann sollte diese Angabe hoch genug sein,
    die gesamte Last des Servers zu bew&auml;ltigen. Wenn Sie ein MPM
    wie <module>worker</module> verwenden, wo mehrere Kindprozesse
    existieren, dann sollte die <em>Gesamt</em>zahl der Thread gro&szlig;
    genug sein, die &uuml;bliche Last auf dem Server zu bew&auml;ltigen.</p>

    <p>Die Voreinstellung f&uuml;r <directive>ThreadsPerChild</directive> ist
    <code>64</code>, wenn <module>mpm_winnt</module> verwendet wird, und
    <code>25</code> bei der Verwendung der anderen MPMs.</p>
</usage>
</directivesynopsis>

<directivesynopsis>
<name>ThreadStackSize</name>
<description>Die Gr&ouml;&szlig;e des Stacks in Bytes, der von Threads
verwendet wird, die Client-Verbindungen bearbeiten.</description>
<syntax>ThreadStackSize <var>size</var></syntax>
<default>65536 unter NetWare; variiert bei anderen Betriebssystemen.</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>leader</module><module>mpm_netware</module>
<module>mpm_winnt</module><module>perchild</module>
<module>threadpool</module><module>worker</module>
</modulelist>
<compatibility>Verf&uuml;gbar seit Version 2.1</compatibility>

<usage>
    <p>Die Direktive <directive>ThreadStackSize</directive> legt die
    Gr&ouml;&szlig;e des Stacks (f&uuml;r Autodaten) der Threads fest, die
    Client-Verbindungen bearbeiten und Module aufrufen, welche bei der
    Verarbeitung dieser Verbindungen helfen. In den meisten F&auml;llen ist die
    Voreinstellung des Betriebssystems angemessen, doch unter bestimmten
    Umst&auml;nden kann es sinnvoll sein, den Wert anzupassen:</p>

    <ul>
      <li>Auf Plattformen mit einer relativ kleinen Voreingestellung f&uuml;r
      die Gr&ouml;&szlig;e des Thread-Stacks (z.B. HP-UX) kann der Apache bei
      der Verwendung einiger Drittanbietermodule, die einen relativ hohen Bedarf
      an Speicherplatz haben, abst&uuml;rzen. Ebendiese Module arbeiten
      m&ouml;glicherweise problemlos auf anderen Plattformen, wo der
      voreingestellte Thread-Stack gr&ouml;&szlig;er ist. Derartige
      Abst&uuml;rze k&ouml;nnen Sie vermeiden, indem Sie
      <directive>ThreadStackSize</directive> auf einen h&ouml;heren Wert als die
      Betriebssystemvoreinstellung setzen.  Eine solche Anpassung ist nur
      notwendig, wenn es vom Anbieter des Moduls so spezifiziert wurde oder die
      Diagnose eines Apache-Absturzes ergeben hat, das die
      Thread-Stackgr&ouml;&szlig;e zu klein war.</li>

      <li>Auf Plattformen, wo die voreingestellte Thread-Stackgr&ouml;&szlig;e
      f&uuml;r die Webserverkonfiguration deutlich gr&ouml;&szlig;er als
      notwendig ist, kann eine gr&ouml;&szlig;ere Anzahl von Threads pro
      Kindprozess erreicht werden, wenn <directive>ThreadStackSize</directive>
      auf einen Wert kleiner als die Betriebssystemvoreinstellung gesetzt wird.
      Da es einzelne Anfragen geben kann, die mehr Stack zur Verarbeitung
      ben&ouml;tigen, sollte eine derartige Korrektur ausschlie&szlig;lich in
      Testumgebungen zum Einsatz kommen, auf denen die gesamte
      Webserververarbeitung ausprobiert werden kann. Eine &Auml;nderung der
      Webserverkonfiguration kann den aktuellen Wert der
      <directive>ThreadStackSize</directive> ung&uuml;ltig machen.</li>
    </ul>
</usage>
</directivesynopsis>

<directivesynopsis>
<name>User</name>
<description>Die Benutzerkennung, unter welcher der Server Anfragen
  beantwortet</description>
<syntax>User <var>Unix-User-ID</var></syntax>
<default>User #-1</default>
<contextlist><context>server config</context></contextlist>
<modulelist><module>leader</module><module>perchild</module>
<module>prefork</module><module>threadpool</module><module>worker</module>
</modulelist>
<compatibility>Seit Apache 2.0 nur in der globalen Server-Konfiguration
g&uuml;ltig</compatibility>

<usage>
    <p>Die Direktive <directive>User</directive> legt die Benutzerkennung
    fest, mit der der Server Anfragen beantwortet. Um diese Anweisung
    zu verwenden, muss der Server als <code>root</code> gestartet werden.
    Wenn Sie den Server unter einem nicht-root-Benutzer starten, kann
    er nicht zu dem minder privilegierten Benutzer wechseln und wird statt
    dessen weiter mit der urspr&uuml;nglichen Benutzerkennung laufen.
    Wenn Sie den Server als <code>root</code> starten, dann ist es normal,
    dass der Elternprozess als root weiterl&auml;uft.
    <var>Unix-User-ID</var> kann sein:</p>

    <dl>
      <dt>Ein Benutzername</dt>
      <dd>Verweist auf den durch Namen angegebenen Benutzer.</dd>

      <dt># gefolgt von einer Benutzernummer.</dt>
      <dd>Verweist auf einen durch eine Nummer angegebenen Benutzer.</dd>
    </dl>

    <p>Der Benutzer sollte keine Rechte besitzen, die dazu f&uuml;hren,
    dass er in der Lage ist, auf Dateien zuzugreifen, die nicht daf&uuml;r
    bestimmt sind, f&uuml;r die Au&szlig;enwelt sichtbar zu sein.
    Gleicherma&szlig;en sollte der Benutzer nicht in der Lage sein,
    Code auszuf&uuml;hren, der nicht f&uuml;r HTTP-Anfragen bestimmt ist.
    Es wird empfohlen, einen neuen Benutzer und eine neue Gruppe speziell
    zur Ausf&uuml;hrung des Servers zu erstellen. Einige Administratoren
    verwenden den Benutzer <code>nobody</code>. Dies ist jedoch nicht
    immer w&uuml;nschenswert, da der Benuter <code>nobody</code> andere
    Rechte auf dem System besitzen kann.</p>

    <note type="warning"><title>Sicherheit</title>
      <p>Setzen Sie <directive>User</directive> (oder <directive
      module="mpm_common">Group</directive>) nicht auf <code>root</code>,
      solange Sie nicht genau wissen, was Sie tun, und welches die Gefahren
      sind.</p>
    </note>

    <p>Beim MPM <module>perchild</module>, das daf&uuml;r gedacht ist,
    virtuelle Hosts unter verschiedenen Benutzerkennungen auszuf&uuml;hren,
    bestimmt die Direktive <directive>User</directive> die
    Benutzerkennung f&uuml;r den Hauptserver und bildet den R&uuml;ckfallwert
    f&uuml;r <directive type="section"
    module="core">VirtualHost</directive>-Abschnitte ohne eine
    <directive module="perchild">AssignUserID</directive>-Anweisung.</p>

    <p>Wichtiger Hinweis: Die Verwendung dieser Direktive innerhalb von
    <directive module="core" type="section">VirtualHost</directive> wird
    nicht mehr unterst&uuml;tzt. Benutzen Sie <directive
    module="mod_suexec">SuexecUserGroup</directive>, um Ihren Server
    f&uuml;r <program>suexec</program> einzurichten.</p>

    <note><title>Anmerkung</title>
      <p>Obwohl die Direktive <directive>User</directive> in den MPMs
      <module>beos</module> und <module>mpmt_os2</module> existiert, ist
      sie dort tats&auml;chlich eine Leeranweisung und exisitert nur
      aus Kompatibilit&auml;tsgr&uuml;nden.</p>
    </note>
</usage>
</directivesynopsis>

</modulesynopsis>