Wo befindet sich die httpd-Fehlerprotokolldatei auf Lion?

39

Ich verwende einen lokalen Web- (Entwicklungs-) Server auf meinem Mac, auf dem Apache installiert ist.

Ich bin mir sicher, dass es von meiner Apache-Konfiguration abhängt, aber im Grunde möchte ich nur tail -f /var/log/httpd-error.login einem Terminal laufen, damit ich die Fehler und Warnungen sehen kann, die während der Entwicklung meiner Websites auftreten.

Meine Frage ist also, wo oder wie ich finde, wo diese Protokolldatei abgelegt wird, da sie nicht abgelegt wird /var/log/

FLIEGE
quelle

Antworten:

59

Wie Morth wies darauf hin, für die Standard - Mac OS X Apache - Installation Diese befinden sich in: /var/log/apache2/error_log.

Der Speicherort kann in der httpd-Konfiguration mithilfe der ErrorLog-Direktive geändert werden , auch für einzelne virtuelle Hosts. Beachten Sie auch, dass, wenn Sie neben dem integrierten Apache (wie bei MacPorts oder MAMP) einen anderen Apache installiert haben, dies wahrscheinlich auch für Sie anders ist. In diesem Fall sollten Sie sich die httpd.conf oder eine entsprechende Datei für Ihre Installation ansehen.

tip:Wenn Sie Growl installiert haben, schauen Sie sich auch dieses ' Growltail' -Skript an. Ich finde es großartig, wenn Sie während der Entwicklung über Fehler informiert werden, ohne ständig zum Terminal zurückkehren zu müssen.

Gerry
quelle
3
Verwendet lion nicht apache2 und nicht apache in / var / log, um die Webserver-Protokolle zu enthalten? Die Konsolen-App in / Applications / Utilities ist der "Cocoa" -Protokoll-Viewer, ist jedoch für die meisten Entwickler nicht so praktisch, als den Inhalt von / var / log zu untersuchen oder mehrere Protokolle für kurze Zeit zu betrachten.
bmike
6

Ist /private/var/log/apache2/error_logwas du suchst

m0rth1um
quelle
5

Das Fehlerprotokoll befindet sich unter: /var/log/apache2/error.log

Dies ist für Lion ...

Holger von Ameln
quelle
4

Es ist normalerweise /var/log/apache2/error_logaber ...

Beachten Sie, dass es bestimmte Arten von Fehlern gibt, die auftreten können, bevor Apache mit der Protokollierung beginnt. Dies kann dazu führen, dass Sie glauben, dass Sie an der falschen Stelle suchen. Wenn Sie Probleme beim Starten von Apache haben und keine neuen Fehler protokollieren, versuchen Sie Folgendes:

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

oder Versuche

sudo apachectl -e debug

oder umgehen Sie das Apachectl-Skript und versuchen Sie es einfach

sudo httpd -k start
Harry Wood
quelle
3

Die obigen Antworten funktionieren hervorragend für den Standard-Apache, der auf dem Mac vorinstalliert ist. In meinem Fall verwende ich Apache (auf High Sierrra), das über Homebrew installiert wurde. So habe ich mein Fehlerprotokoll gefunden:

>ps -ef |grep httpd

Dies ergibt eine Ausgabe mit folgenden Zeilen:

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

Das gibt Ihnen den Speicherort der ausführbaren httpd-Datei. Führen Sie nun Folgendes aus:

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

Ersetzen Sie den Speicherort Ihrer ausführbaren httpd-Datei. Du bekommst so etwas (verkürzt)

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"

Also ist der "DEFAULT_ERRORLOG" drin logs/error_log- aber relativ zu was?

Öffnen Sie nun die "SERVER_CONFIG_FILE"

Dort habe ich zwei Einträge gefunden, die hilfreich sein könnten:

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

In einigen Fällen ist DEFAULT_ERRORLOG möglicherweise relativ zu ServerRoot. In meinem Fall wurde jedoch ein ErrorLog explizit angegeben (zweite Zeile), und dort werden meine Fehler angezeigt.

Witt
quelle
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
Jack D You
quelle