Gdzie jest plik dziennika błędów httpd na Lion?


37

Używam lokalnego serwera WWW (rozwoju) na moim komputerze Mac z zainstalowanym apache.

Jestem pewien, że zależy to od mojej konfiguracji apache, ale w zasadzie chcę tylko uruchomić tail -f /var/log/httpd-error.log w terminalu, więc mogę zobaczyć błąd i ostrzeżenia, które pojawiają się podczas tworzenia moich stron internetowych.

Moje pytanie brzmi: gdzie lub jak znaleźć miejsce, w którym ten plik dziennika jest umieszczony, ponieważ nie jest on umieszczony w /var/log/

Odpowiedzi:


57

Jak zauważyłem, dla domyślnej instalacji Mac OS X Apache znajdują się one w: /var/log/apache2/error_log.

Lokalizację można zmienić w konfiguracji httpd za pomocą Dyrektywa ErrorLog , nawet dla poszczególnych wirtualnych hostów. Zauważ również, że jeśli zainstalowałeś inny Apache oprócz wbudowanego (np. Przez MacPorts lub MAMP), to prawdopodobnie dla ciebie też jest inaczej. W takim przypadku powinieneś zajrzeć do httpd.conf lub odpowiednika dla swojej instalacji.

tip: Jeśli masz zainstalowany Growl, spójrz na to ” warkocz „skrypt. Myślę, że wspaniale jest otrzymywać powiadomienia o błędach podczas tworzenia, bez konieczności ciągłego przełączania się z powrotem na Terminal.


2
Czy lew nie używa apache2, a nie apache w / var / log, aby zawierać dzienniki serwera WWW? Ponadto aplikacja Console w / Applications / Utilities jest przeglądarką dziennika „Cocoa”, ale nie jest tak przydatna jak ogon dla większości programistów, poza eksplorowaniem zawartości / var / log lub przeglądaniem wielu dzienników przez krótki czas.
bmike



3

To normalnie /var/log/apache2/error_log ale...

Pamiętaj, że istnieją pewne typy błędy, które mogą wystąpić przed rozpoczęciem rejestrowania apache , co może prowadzić do przekonania, że ​​patrzysz w niewłaściwe miejsce. Jeśli wydaje się, że masz problemy z uruchomieniem apache i nie rejestruje żadnych nowych błędów, spróbuj:

sudo bash -x /usr/sbin/apachectl -k start

lub spróbuj

sudo apachectl -e debug

lub pomiń skrypt apachectl i spróbuj tylko

sudo httpd -k start

2

Powyższe odpowiedzi sprawdzają się w przypadku domyślnego apache, który jest fabrycznie zainstalowany na Macu. W moim przypadku używam Apache (w High Sierrra) zainstalowanego przez Homebrew. Oto procedura, której użyłem do zlokalizowania mojego dziennika błędów:

>ps -ef |grep httpd

Daje to wyjście z liniami takimi jak ta:

502 10587 10586   0 11:11AM ??         0:00.00 /usr/local/opt/httpd/bin/httpd -k start

To daje lokalizację pliku wykonywalnego httpd. Teraz uruchom:

>/usr/local/opt/httpd/bin/httpd -V

Zastępowanie lokalizacji pliku wykonywalnego httpd. Otrzymasz coś takiego (skrócone)

Server compiled with....
 -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=256
 -D HTTPD_ROOT="/usr/local/Cellar/httpd/2.4.29_1"
 -D SUEXEC_BIN="/usr/local/opt/httpd/bin/suexec"
 -D DEFAULT_PIDLOG="/usr/local/var/run/httpd/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="/usr/local/etc/httpd/mime.types"
 -D SERVER_CONFIG_FILE="/usr/local/etc/httpd/httpd.conf"

Więc „DEFAULT_ERRORLOG” jest włączony logs/error_log - ale w stosunku do czego?

Teraz otwórz „SERVER_CONFIG_FILE”

Tam znalazłem dwa wpisy, które mogą być pomocne:

ServerRoot "/usr/local/opt/httpd"
ErrorLog "/usr/local/var/log/httpd/error_log"

W niektórych przypadkach DEFAULT_ERRORLOG może być relatywny do ServerRoot. Jednak w moim przypadku został określony jawnie ErrorLog (druga linia) i tam właśnie pojawiają się moje błędy.


0
#/usr/sbin/httpd -V
Server version: Apache/2.2.24 (Unix)
Server built:   Aug 24 2013 21:10:43
Server's Module Magic Number: 20051115:31
Server loaded:  APR 1.4.5, APR-Util 1.3.12
Compiled using: APR 1.4.5, APR-Util 1.3.12
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_FLOCK_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="/usr"
 -D SUEXEC_BIN="/usr/bin/suexec"
 -D DEFAULT_PIDLOG="/private/var/run/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="/private/var/run/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="/private/etc/apache2/mime.types"
 -D SERVER_CONFIG_FILE="/private/etc/apache2/httpd.conf"

#find / -name error_log
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.