Apache nie ładuje się ponownie… Czy jest dziennik, w którym mogę szukać szczegółów?


12

Mam serwer WWW, nad którym pracuję nad dodaniem witryny.

Po uruchomieniu a2ensitepobiegłem service apache2 reloadi otrzymałem to:

[FAIL] Ponowne ładowanie konfiguracji serwera WWW: błąd apache2!

Czy istnieje plik dziennika, w którym mogę znaleźć więcej szczegółów?

Odpowiedzi:


9

Możesz zobaczyć, gdzie httpdskonfigurowano wyszukiwanie plików konfiguracyjnych za pomocą -Vprzełącznika:

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

Możesz także użyć tego polecenia, lsofaby zobaczyć, jakie pliki uzyskuje dostęp do procesu uniksowego. Moja wersja httpdużywa portu zapasowego 80, więc zmień 80 na 8443 w twoim przypadku!

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

Możesz teraz uruchomić, lsofaby dowiedzieć się, gdzie zapisywane są pliki dziennika:

$ 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

Powinieneś być w stanie określić lokalizację access_logplików konfiguracyjnych oraz przejrzeć je, aby określić dyrektywy „Katalog” i „Lokalizacja”. Określają one, jakich lokalnych katalogów użyć, informując Apache, które pliki mają być obsługiwane.

Co teraz?

Następnie przejrzałbym, access_logaby upewnić się, że są tam wpisy, które odpowiadają dostępom do serwera. Rozumiem przez to, że jeśli przeglądam serwer http://www.somedom.com/somefile, powinienem zobaczyć ten dostęp zapisany w access_logpliku w następujący sposób:

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"

Gdzie są pliki?

Możesz wziąć powyższą wiedzę, którą zdobyliśmy i zacząć ją stosować w następujący sposób:

Te fragmenty httpd -Vmówią nam o katalogu głównym Apache:

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

Więc wiemy, główny plik konfiguracyjny jest tutaj: /etc/httpd/conf/httpd.conf. Przejrzyj ten plik w poszukiwaniu następujących wierszy:

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

Teraz wiem, że te katalogi są potencjalnymi źródłami pliku, który widzieliśmy w access_log. DocumentRootI Directoriesbędę patrzeć przez do pliku somefile. Jeśli nie jest to w żadnym z tych miejsc to ja bym kolejny skupić się na Includekatalogu wymienionego powyżej w grepwyjściu /etc/httpd/conf.d/*.conf.

Te pliki są dodatkowymi konfiguracjami używanymi przez Apache, więc musisz powtórzyć kroki, używając również grepdo przejrzenia tych plików.


14

Jeśli nie możesz znaleźć pliku dziennika lub plik dziennika jest pusty, możesz uruchomić test konfiguracji Apache, który wydrukuje wszelkie problemy z plikami konfiguracji:

apachectl configtest

2

Uruchom service apache2 restart. Wyświetli każdy komunikat o błędzie (zazwyczaj usługa uruchamia test konfiguracji przed zatrzymaniem i uruchomieniem apache)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.