J'exécute donc cette commande:
/etc/init.d/apache2 start
Et ça dit:
* Starting web server apache2 [ OK ]
Mais! Mon site Web ne fonctionne toujours pas. Et!
service --status-all
[ - ] apache2
Whaattt ....? Que se passe-t-il? ; (
[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
la source
la source
dpkg --configure -a
pour vous assurer que tous les fichiers ont été configurés correctement.Réponses:
Sous Linux, cela est généralement dû à un nombre élevé de ThreadsPerChild + ulimit -s élevés ou illimités.
Sous Linux, la taille de pile par défaut pour chaque thread est la valeur ulimit -s ou 8-10 mégaoctets - Apache a besoin d'environ 512 kilo-octets d'espace de pile ou moins en utilisation normale.
Cela dépasse rapidement la taille de l'espace d'adressage 32 bits avec TPC près de 200+, ou si vous avez des limites de mémoire système, vous pouvez également les ignorer.
Définissez ulimit -s 512 dans votre fichier "envvars" livré avec apachectl - notez que ThreadStackSize n'aide pas ici car cela définit un minimum.
la source
S'agit-il d'une nouvelle installation ou était-elle précédemment stable et ne peut pas redémarrer?
Une mémoire insuffisante pourrait être la cause même si "(12) Impossible d'allouer de la mémoire: apr_thread_create: impossible de créer un thread de travail" devrait s'afficher si tel est le cas.
Il est plus probable que vous dépassez le paramètre PTHREAD_THREADS_MAX dans votre système d'exploitation. Vous pouvez augmenter cela ou réduire ThreadsPerChild dans Apache.
Vous utilisez probablement la distribution "Worker" d'Apache, la "préfork" peut être plus appropriée car elle utilise 1 thread par processus, par opposition à "worker" qui utilise de nombreux threads par processus.
Sources:
la source
prefork
résolu cela pour moi.Jetez un œil aux journaux, en particulier à error_log. Cela devrait aider. Si cela n'aide pas, essayez de renforcer la commande apache2:
strace -f -o output.txt /etc/init.d/apache2 start
strace tracera les appels système (l'indicateur -f ordonne à strace de suivre également les processus enfants et l'indicateur -o écrit la sortie dans le fichier output.txt)
la source