Answers:
正如morth所指出的,对于Mac OS X Apache的默认安装,它们位于:中/var/log/apache2/error_log
。
即使使用单个虚拟主机,也可以使用ErrorLog指令在httpd配置中更改位置。还要注意,如果您安装了内置Apache之外的另一个Apache(例如通过MacPorts或MAMP),那么这对您也可能会有所不同。在这种情况下,您应该查看安装的httpd.conf或等效文件。
tip:
如果您安装了Growl,还请查看此' groltail '脚本。我认为在开发过程中收到错误通知非常好,而不必一直切换回终端。
错误日志位于:/var/log/apache2/error.log
这是给狮子的
上面的答案对于Mac上预装的默认Apache很有用。就我而言,我使用的是通过Homebrew安装的Apache(在High Sierrra上)。这是我用来定位错误日志的过程:
>ps -ef |grep httpd
这给出了带有以下行的输出:
502 10587 10586 0 11:11AM ?? 0:00.00 /usr/local/opt/httpd/bin/httpd -k start
这样就可以找到httpd可执行文件的位置。现在运行:
>/usr/local/opt/httpd/bin/httpd -V
替换您的httpd可执行文件的位置。你会得到这样的东西(缩短)
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"
因此,“ DEFAULT_ERRORLOG”位于logs/error_log
-但相对于什么?
现在打开“ SERVER_CONFIG_FILE”
在那里,我发现了两个条目可能会有所帮助:
ServerRoot "/usr/local/opt/httpd"
ErrorLog "/usr/local/var/log/httpd/error_log"
因此,在某些情况下,DEFAULT_ERRORLOG可能是相对于ServerRoot的。在我的情况下,有一个明确指定的ErrorLog(第二行),这就是我的错误所在。
#/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