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!
apache-2.2
Robert Ross
quelle
quelle
dpkg --configure -a
, um sicherzustellen, dass alle Dateien ordnungsgemäß konfiguriert wurden.Antworten:
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.
quelle
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:
quelle
prefork
das für mich gelöst.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).
quelle