La meilleure façon de dépanner apache ne démarre pas?

8

Nous avons récemment obtenu un serveur de sauvegarde pour refléter toutes nos données au cas où le serveur principal tomberait en panne.

J'ai mis à jour toutes les données des sites via rsync et toutes les config et bases de données apache mises à jour. Les deux machines sont sur Ubuntu 9 (9.04 sur le primaire, 9.10 sur la sauvegarde).

Donc, tout semble synchronisé pour la plupart à ce stade (il faut toujours comprendre la synchronisation de l'utilisateur), et j'essaie de démarrer Apache. Je reçois

* Starting web server apache2                                       [fail]

Rien d'autre indiquant quel pourrait être le problème.

Je sais que je n'ai pas assez d'informations pour attendre une solution de votre part, alors j'aimerais simplement savoir où je peux aller à partir d'ici pour approfondir ce problème. Y aurait-il des journaux d'erreurs pour cela?

Merci!

Lowgain
la source
jusqu'à présent, j'ai trouvé des journaux indiquant "Aucun fichier ou répertoire de ce type: mod_fcgid" - c'est un bon début
Lowgain

Réponses:

11

Dans certains cas spécifiques, une entrée de journal ne sera pas écrite sur le disque - cela peut se produire si les journaux n'existent pas, par exemple, ou Apache ne peut tout simplement pas écrire dans les fichiers journaux en raison de problèmes d'autorisations, etc. Dans de tels cas, le la meilleure façon de diagnostiquer une erreur est d'utiliser `strace ':

[root@server ~]# strace -Ff apachectl start

Alors que la sortie sera assez verbeuse, si Apache ne démarre pas pour une raison quelconque, vous verrez un write () à la fin avec le contenu de ce qui serait entré dans les journaux avec la raison de l'échec (s'il ne se connecte pas pourquoi dans le journal des erreurs, ne soyez pas surpris si le message d'erreur contient "Impossible d'ouvrir le journal" avec le chemin d'accès au journal;).

Bien que vous regardiez votre commentaire concernant mod_fcgid, je suggère de revoir la configuration d'Apache et d'examiner les références à mod_fcgid - il semble qu'il essaie d'ouvrir un fichier "mod_fcgid" littéral au lieu de charger le module.

slm
la source
13

httpd -t testera la syntaxe de vos fichiers de configuration et crachera toutes les erreurs sur le terminal.

Ignacio Vazquez-Abrams
la source
2
C'était super utile. +1
Tom Busby
Si cela ne fonctionne pas, essayez apachectl -t.
berry120
3

Toutes les erreurs doivent être imprimées dans les journaux d'erreurs (souvent dans / var / log / http / error_logs. Grep for ErrorLog dans votre httpd.conf pour savoir où.

Je recommande d'utiliser deux fenêtres. Faites un 'tail -f error_log' dans une fenêtre et utilisez une autre fenêtre pour exécuter la commande 'apachectl restart'. Après avoir trouvé l'erreur, mettez à jour votre réponse ici avec le message d'erreur.

Stefan Lasiewski
la source
L'étape de dépannage numéro un de tout doit toujours être de lire les journaux. Apache enregistre presque chaque événement qui le traverse, vous devez donc être plein à craquer de données à parcourir.
phuzion
2

J'ai eu un problème similaire avec le serveur de débogage apache sur Mac OS, alors j'ai décidé de partager mon expérience et de gagner du temps aux autres, j'ai trouvé les informations suivantes très utiles:

  1. localiser les journaux:

apachectl -S | grep log

  1. dans la sortie, vous trouverez des fichiers journaux que vous pouvez commencer à rechercher l'exemple d'erreurs:

tail -n 15 /var/log/apache2/ssl_engine.log

Dans le cas où il y a plus d'un fichier journal, continuez à les suivre jusqu'à ce que vous trouviez l'erreur qui empêche apache de démarrer

talsibony
la source
0

Si votre Apache ne fonctionne pas, vérifiez votre port skype, la plupart du temps skype et apache utilisent le port 80, et cela signifie que skype peut être la raison pour laquelle apache ne peut pas démarrer. arrêtez skype s'il est installé.

Biffon Momanyi
la source