Где находится файл журнала ошибок httpd на Lion?


39

Я использую локальный веб-сервер (для разработчиков) на моем Mac с установленным apache.

Я уверен, что это зависит от моей конфигурации Apache, но в основном я просто хочу работать tail -f /var/log/httpd-error.logв терминале, чтобы я мог видеть ошибки и предупреждения, которые появляются во время разработки моих веб-сайтов.

Итак, мой вопрос, где или как я могу найти, где этот файл журнала находится, так как он не находится в /var/log/

Ответы:


59

Как Morth отметил, для установки Mac OS X Apache по умолчанию они расположены в: /var/log/apache2/error_log.

Расположение можно изменить в конфигурации httpd с помощью директивы ErrorLog даже для отдельных виртуальных хостов. Также обратите внимание, что если вы установили другой Apache, кроме встроенного (например, через MacPorts или MAMP), это, вероятно, будет отличаться и для вас. В этом случае вы должны взглянуть на httpd.conf или эквивалентный для вашей установки.

tip:Если у вас установлен Growl, взгляните также на этот скрипт ' growltail '. Я думаю, что замечательно получать уведомления об ошибках во время разработки без необходимости все время переключаться обратно в Терминал.


3
Разве лев не использует apache2 и apache в / var / log для хранения журналов веб-сервера? Кроме того, консольное приложение в / Applications / Utilities является средством просмотра журналов «Какао», но для большинства разработчиков это не так удобно, как хвост, кроме как для изучения содержимого / var / log или просмотра нескольких журналов в течение коротких промежутков времени.
bmike



4

Это нормально, /var/log/apache2/error_logно ...

Обратите внимание, что есть определенные типы ошибок, которые могут произойти до того, как apache начнет регистрировать , что может заставить вас поверить, что вы ищете не в том месте. Если у вас возникли проблемы с запуском apache, и он не регистрирует новые ошибки, попробуйте выполнить:

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

или попробуйте

sudo apachectl -e debug

или пропустите скрипт apachectl и попробуйте просто

sudo httpd -k start

3

Приведенные выше ответы отлично подходят для Apache по умолчанию, который предустановлен на Mac. В моем случае я использую Apache (на High Sierrra), установленный через Homebrew. Вот процедура, которую я использовал, чтобы найти свой журнал ошибок:

>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 (вторая строка), и именно там мои ошибки идут.


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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.