Apache non riesce a ricaricare ... Esiste un registro in cui posso cercare i dettagli?


12

Ho un server web a cui sto lavorando per aggiungere un sito.

Dopo aver corso a2ensite, ho corso service apache2 reload, e ho ottenuto questo:

[FAIL] Ricaricamento della configurazione del server Web: apache2 non riuscito!

Esiste un file di registro che posso cercare per maggiori dettagli?

Risposte:


9

Puoi vedere dove httpdè configurato per cercare i suoi file di configurazione usando l' -Vopzione:

$ 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"

Puoi anche usare il comando lsofper vedere a quali file accede un processo Unix. La mia versione di httpdsta usando la porta stock 80, quindi cambia da 80 a 8443 nel tuo caso!

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

Ora puoi eseguire lsofper scoprire dove vengono scritti i file di registro:

$ 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

Dovresti essere in grado di determinare la posizione dei access_logfile di configurazione e di esaminare i file per determinare le direttive "Directory" e "Posizione". Questi specificano quali directory locali usare quando comunicano ad Apache quali file servire.

E adesso?

Vorrei quindi esaminare il access_logper assicurarsi che ci siano voci che corrispondono agli accessi al server. Quello che intendo con questo è se sfoglio il server su http://www.somedom.com/somefiledovrei vedere questo accesso registrato nel access_logfile in questo modo:

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"

Dove sono i file?

Puoi prendere le conoscenze di cui sopra che abbiamo acquisito e iniziare ad applicarlo in questo modo:

Questi bit da httpd -Vci dicono la radice di Apache:

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

Così sappiamo che il file di configurazione principale è qui: /etc/httpd/conf/httpd.conf. Quindi cerca nel file per queste righe:

$ 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">

Quindi ora so che queste directory sono potenziali fonti per il file che abbiamo visto nel file access_log. L' DocumentRoote Directoriesmi piacerebbe guardare attraverso il file, somefile. Se non è in nessuno di questi luoghi, allora farei prossimo focus sulla Includedirectory di cui sopra in grepuscita, /etc/httpd/conf.d/*.conf.

Questi file sono configurazioni aggiuntive che Apache utilizza, quindi è necessario ripetere i passaggi usando anche grepper guardare attraverso questi file.


14

Se non riesci a trovare il file di registro o il file di registro è vuoto, puoi eseguire il test di configurazione di Apache che stamperà eventuali problemi con i file di configurazione:

apachectl configtest

2

Corri service apache2 restart. Verrà visualizzato qualsiasi messaggio di errore (di solito il servizio esegue un test di configurazione prima di arrestare e avviare apache)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.