5 votes

Pourquoi apache ne démarre-t-il pas et indique-t-il seulement "Configuration Failed" dans le journal des erreurs ?

Apache 2.2.23 ne démarre pas pour moi, et les seules entrées dans le fichier journal sont :

[Fri Feb 22 02:54:24 2013] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Fri Feb 22 02:54:24 2013] [notice] Digest: generating secret for digest authentication ...
[Fri Feb 22 02:54:24 2013] [notice] Digest: done
Configuration Failed
[Fri Feb 22 02:54:57 2013] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Fri Feb 22 02:54:57 2013] [notice] Digest: generating secret for digest authentication ...
[Fri Feb 22 02:54:57 2013] [notice] Digest: done
Configuration Failed

Ça m'a rendu fou. Le réseau est en bon état, les disques sont en bon état, les fichiers de configuration passent les contrôles de syntaxe, rien n'a été modifié depuis le précédent fonctionnement. Il refuse simplement de démarrer, généralement après un pic de charge.

J'aimerais également mentionner que le mécanisme de redémarrage comprend l'exécution de kill -9 si l'arrêt gracieux ne réussit pas.

Je ne trouve rien sur Google ou ici à ce sujet.

12voto

Mike Venzke Points 271

J'ai finalement trouvé la solution à ce problème, en supprimant toutes les configurations du site, les modules et les directives de configuration.

Puis, finalement, le journal des erreurs a produit cette perle :

[Fri Feb 22 03:04:22 2013] [emerg] (28)No space left on device: Couldn't create accept lock (/etc/httpd/logs/accept.lock.10752) (5)
[Fri Feb 22 03:04:24 2013] [warn] pid file /etc/httpd/run/httpd.pid overwritten -- Unclean shutdown of previous Apache run?

Maintenant, il y avait des réponses pour ça sur google. Comme mentionné aquí et d'autres endroits, cette erreur a été causée par un trop grand nombre de sémaphores ouverts par apache, car le disque était vide et inscriptible.

J'ai résolu ce problème en courant :

ipcs -s | grep www-data | awk '{print $2;}' | while read -r line; do ipcrm sem "$line"; done

et l'ajouter au script de redémarrage script. Maintenant, tout va bien. Je suppose qu'il y a une corrélation entre cela et l'utilisation de kill -9, mais sans cela, je me retrouve avec des processus apache suspendus et sans réponse.

4voto

quanta Points 49664

Je vous suggère d'effectuer un strace pour voir ce qui se passe :

strace -f -o apache.trace /usr/sbin/httpd

Le disque est peut-être plein ?

2voto

Vérifiez les autorisations de l'emplacement où vos journaux sont écrits, y compris les fichiers eux-mêmes. Apache doit être capable d'écrire dans le journal lorsqu'il perd les permissions de root, et vous n'aurez que peu d'utilité des journaux si Apache s'arrête parce qu'il ne peut plus y écrire. C'est l'un des problèmes les plus simples, mais aussi les plus insaisissables, que vous pouvez rencontrer.

Si ce n'est pas le cas, la suggestion de @quanta est probablement la meilleure façon d'identifier ce qui se passait quand Apache s'est retiré.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X