Apache ne parvient pas à se recharger… Existe-t-il un journal dans lequel je peux rechercher des détails?

12

J'ai un serveur Web auquel je travaille pour ajouter un site.

Après avoir couru a2ensite, j'ai couru service apache2 reloadet j'ai obtenu ceci:

[FAIL] Rechargement de la configuration du serveur Web: échec d'apache2!

Existe-t-il un fichier journal dans lequel je peux consulter pour plus de détails?

Point d'interrogation
la source

Réponses:

9

Vous pouvez voir où httpdest configuré pour rechercher ses fichiers de configuration à l'aide du -Vcommutateur:

$ httpd -V
Server version: Apache/2.2.15 (Unix)
Server built:   Feb 13 2012 22:31:42
Server's Module Magic Number: 20051115:24
Server loaded:  APR 1.3.9, APR-Util 1.3.9
Compiled using: APR 1.3.9, APR-Util 1.3.9
Architecture:   64-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/etc/httpd"
 -D SUEXEC_BIN="/usr/sbin/suexec"
 -D DEFAULT_PIDLOG="run/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="logs/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

Vous pouvez également utiliser la commande lsofpour voir à quels fichiers un processus Unix accède. Ma version de httpdutilise le port stock 80 alors changez le 80 en 8443 dans votre cas!

$ netstat -tapn|grep ::80
tcp        0      0 :::80                       :::*                        LISTEN      5338/httpd     

Vous pouvez maintenant exécuter lsofpour savoir où les fichiers journaux sont écrits:

$ lsof -p 5338|grep log
httpd   5338 root  mem    REG  253,0    10440   3141 /usr/lib64/httpd/modules/mod_logio.so
httpd   5338 root  mem    REG  253,0    27200   3139 /usr/lib64/httpd/modules/mod_log_config.so
httpd   5338 root    2w   REG  253,0     2014 395029 /var/log/httpd/error_log
httpd   5338 root    7w   REG  253,0     4140 394789 /var/log/httpd/access_log

Vous devriez être en mesure de déterminer l'emplacement des access_logfichiers de configuration ainsi que et de les parcourir pour déterminer les directives "Répertoire" et "Emplacement". Ceux-ci spécifient les répertoires locaux à utiliser pour indiquer à Apache les fichiers à servir.

Maintenant quoi?

Je voudrais ensuite regarder à travers le access_logpour m'assurer qu'il y a des entrées qui correspondent aux accès contre le serveur. Ce que je veux dire par là, c'est que si je navigue sur le serveur, http://www.somedom.com/somefileje devrais voir cet accès enregistré dans le access_logfichier comme ceci:

192.168.1.110 - - [17/Jul/2013:14:39:50 -0400] "GET /somefile HTTP/1.1" 200 4303 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/5
37.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36"

Où sont les fichiers?

Vous pouvez prendre les connaissances ci-dessus que nous avons acquises et commencer à les appliquer comme suit:

Ces bits de httpd -Vnous indiquent la racine d'Apache:

-D HTTPD_ROOT="/etc/httpd"
-D SERVER_CONFIG_FILE="conf/httpd.conf"

Nous savons donc le principal fichier de configuration est ici: /etc/httpd/conf/httpd.conf. Alors regardez dans ce fichier pour ces lignes:

$ grep -E "DocumentRoot|Directory \"|^Include" /etc/httpd/conf/httpd.conf |grep -v "^#"
Include conf.d/*.conf
DocumentRoot "/var/www/html"
<Directory "/var/www/html">
<Directory "/var/www/icons">
<Directory "/var/www/cgi-bin">
    <Directory "/var/www/error">

Je sais donc maintenant que ces répertoires sont des sources potentielles pour le fichier que nous avons vu dans le access_log. Le DocumentRootet Directoriesje chercherais à travers le fichier, somefile. Si elle est dans aucun de ces endroits alors je me concentrerais à côté du Includerépertoire mentionné ci - dessus dans la grepsortie, /etc/httpd/conf.d/*.conf.

Ces fichiers sont des configurations supplémentaires qu'Apache utilise, vous devez donc répéter les étapes à l'aide de greppour parcourir ces fichiers également.

slm
la source
14

Si vous ne trouvez pas le fichier journal ou si le fichier journal est vide, vous pouvez exécuter le test de configuration d'apache qui imprimera tous les problèmes avec les fichiers de configuration:

apachectl configtest
kkr
la source
2

Courez service apache2 restart. Il affichera tout message d'erreur (généralement, le service exécute un test de configuration avant d'arrêter et de démarrer apache)

seydu
la source