Apache2 ne démarre pas mon serveur Web


8

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!

4
journaux, s'il vous plaît! jetez un œil à '/var/logs/apache2/error.log' ou à d'autres fichiers dans le même répertoire.
lajuette

Rien, les journaux n'en disent rien.
Robert Ross

Juste pour être sûr, exécutez-vous cela en tant que root ou utilisez sudo? c'est-à-dire pas un compte d'utilisateur normal
David Rickman

Êtes-vous sûr que votre installation est bien faite? Tapez dpkg --configure -apour vous assurer que tous les fichiers ont été configurés correctement.
ℝaphink

Réponses:


3

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.


2

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:


Merci! Passer à preforkrésolu cela pour moi.
Felix Frank

1

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)


[Sat May 01 14:45:18 2010] [warn] pid file /var/run/apache2.pid écrasé - Arrêt impur de la précédente exécution d'Apache? [Sam 01 mai 14:45:18 2010] [avis] Apache / 2.2.11 (Ubuntu) PHP / 5.3.2 configuré - reprise des opérations normales [Sam 01 mai 14:45:18 2010] [alerte] (11) Ressource temporairement indisponible: apr_thread_create: impossible de créer le thread de travail [sam 01 mai 14:45:18 2010] [alerte] (11) Ressource temporairement indisponible: apr_thread_create: impossible de créer le thread de travail
Robert Ross

quelle est la sortie strace? les dernières lignes doivent être pertinentes ...
Marco Ramos
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.