Apache2 startet meinen Webserver nicht


8

Also führe ich diesen Befehl aus:

/etc/init.d/apache2 start

Und es heißt:

* Starting web server apache2 [ OK ]

Aber! Meine Website wird immer noch nicht aufgerufen. Und!

service --status-all
 [ - ]  apache2

Was ....? Was ist hier los? ; (

[Sat May 01 14:45:18 2010] [warn] pid file /var/run/apache2.pid overwritten -- Unclean shutdown of previous Apache run?
[Sat May 01 14:45:18 2010] [notice] Apache/2.2.11 (Ubuntu) PHP/5.3.2 configured -- resuming normal operations
[Sat May 01 14:45:18 2010] [alert] (11)Resource temporarily unavailable: apr_thread_create: unable to create worker thread
[Sat May 01 14:45:18 2010] [alert] (11)Resource temporarily unavailable: apr_thread_create: unable to create worker thread
[Sat May 01 14:45:20 2010] [alert] No active workers found... Apache is exiting!

4
Protokolle bitte! Schauen Sie sich '/var/logs/apache2/error.log' oder andere Dateien im selben Verzeichnis an.
Lajuette

Nichts, Protokolle sagen nichts darüber.
Robert Ross

Nur um sicherzugehen, führen Sie dies als root aus oder verwenden Sie sudo? dh kein normales Benutzerkonto
David Rickman

Sind Sie sicher, dass Ihre Installation gut gemacht ist? Geben Sie ein dpkg --configure -a, um sicherzustellen, dass alle Dateien ordnungsgemäß konfiguriert wurden.
inkaphink

Antworten:


3

Unter Linux ist dies normalerweise auf hohe ThreadsPerChild + hohe oder unbegrenzte ulimit -s zurückzuführen.

Unter Linux beträgt die Standardstapelgröße für jeden Thread ulimit -s Wert oder 8-10 Megabyte. Apache benötigt bei normaler Verwendung höchstens 512 Kilobyte Stapelspeicherplatz.

Dies überschreitet schnell entweder die 32-Bit-Adressraumgröße mit TPC in der Nähe von 200+, oder wenn Sie Systemspeicherbeschränkungen haben, können Sie auch gegen diese verstoßen.

Stellen Sie ulimit -s 512 in Ihrer "envvars" -Datei ein, die neben apachectl ausgeliefert wird. Beachten Sie, dass ThreadStackSize hier nicht hilft, da dies ein Minimum festlegt.


2

Handelt es sich um eine Neuinstallation oder war sie zuvor stabil und kann nicht neu gestartet werden?

Zu wenig Speicher kann die Ursache sein, obwohl in diesem Fall "(12) Speicher kann nicht zugeordnet werden: apr_thread_create: Worker-Thread kann nicht erstellt werden" angezeigt werden sollte.

Es ist wahrscheinlicher, dass Sie die Einstellung PTHREAD_THREADS_MAX in Ihrem Betriebssystem überschreiten. Sie können das ThreadsPerChild in Apache erhöhen oder verringern.

Sie verwenden wahrscheinlich die "Worker" -Distribution von Apache. Die "Prefork" ist möglicherweise besser geeignet, da 1 Thread pro Prozess verwendet wird, während "Worker" viele Threads pro Prozess verwendet.

Quellen:


Vielen Dank! Der Wechsel zu hat preforkdas für mich gelöst.
Felix Frank

1

Schauen Sie sich die Protokolle an, insbesondere das error_log. Das sollte helfen. Wenn es nicht hilft, versuchen Sie, den Befehl apache2 zu verwenden:

strace -f -o output.txt /etc/init.d/apache2 start

strace verfolgt die Systemaufrufe (das Flag -f befiehlt strace, auch untergeordneten Prozessen zu folgen, und das Flag -o schreibt die Ausgabe in die Datei output.txt).


[Sat May 01 14:45:18 2010] [warn] PID-Datei /var/run/apache2.pid überschrieben - Unreines Herunterfahren des vorherigen Apache-Laufs? [Sa 01. Mai 14:45:18 2010] [Hinweis] Apache / 2.2.11 (Ubuntu) PHP / 5.3.2 konfiguriert - Wiederaufnahme des normalen Betriebs [Sa 01. Mai 14:45:18 2010] [Warnung] (11) Ressource vorübergehend nicht verfügbar: apr_thread_create: Worker-Thread kann nicht erstellt werden [Sa 01. Mai 14:45:18 2010] [alert] (11) Ressource vorübergehend nicht verfügbar: apr_thread_create: Worker-Thread kann nicht erstellt werden
Robert Ross

Was ist die Strace-Ausgabe? Die letzten Zeilen sollten relevant sein ...
Marco Ramos
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.