Де знаходиться файл журналу помилок httpd на Леві?


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, також ознайомтесь із цим сценарієм " зростання ". Я думаю, що здорово отримувати сповіщення про помилки під час розробки, не маючи необхідності весь час повертатися до Терміналу.


3
Чи не лев використовує apache2, а не apache в / var / log, щоб містити журнали веб-сервера? Крім того, додаток Console в програмі / Applications / Utilities - це переглядач журналів "Какао", але це не так зручно, як хвіст для більшості розробників, окрім як досліджувати вміст / var / log або зазирати в декілька журналів на короткий час.
bmike



4

Це нормально, /var/log/apache2/error_logале ...

Зауважте, що існують певні типи помилок, які можуть виникнути до того, як apache починає вести журнал , що може призвести до того, що ви вважаєте, що ви шукаєте не в тому місці. Якщо вам здається, що у вас виникли проблеми із запуском апаша, і він не записує жодних нових помилок, спробуйте зробити:

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

або спробуйте

sudo apachectl -e debug

або обійти скрипт apachectl і спробувати просто

sudo httpd -k start

3

Наведені вище відповіді чудово підходять для апаше за замовчуванням, який попередньо встановлений на mac. У моєму випадку я використовую Apache (на Високій Сьєрррі), встановлений через 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.