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

covener
la source
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:

iainlbc
la source
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)

Marco Ramos
la source
[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