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!
Robert Ross
quelle
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.

Covener
quelle
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:

iainlbc
quelle
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).

Marco Ramos
quelle
[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