Apache не может перезагрузить ... Есть ли журнал, в котором я могу посмотреть детали?

12

У меня есть веб-сервер, на котором я работаю над добавлением сайта.

После запуска a2ensiteя побежал service apache2 reload, и получил это:

[FAIL] Перезагрузка конфигурации веб-сервера: ошибка apache2!

Есть ли файл журнала, в котором я могу найти более подробную информацию?

Вопросительный знак
источник

Ответы:

9

Вы можете увидеть, где httpdнастроен поиск файлов конфигурации с помощью -Vпереключателя:

$ httpd -V
Server version: Apache/2.2.15 (Unix)
Server built:   Feb 13 2012 22:31:42
Server's Module Magic Number: 20051115:24
Server loaded:  APR 1.3.9, APR-Util 1.3.9
Compiled using: APR 1.3.9, APR-Util 1.3.9
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_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=128
 -D HTTPD_ROOT="/etc/httpd"
 -D SUEXEC_BIN="/usr/sbin/suexec"
 -D DEFAULT_PIDLOG="run/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="logs/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

Вы также можете использовать команду, lsofчтобы увидеть, к каким файлам обращается процесс Unix. Моя версия httpdиспользует стандартный порт 80, поэтому измените 80 на 8443 в вашем случае!

$ netstat -tapn|grep ::80
tcp        0      0 :::80                       :::*                        LISTEN      5338/httpd     

Теперь вы можете запустить, lsofчтобы узнать, куда записываются файлы журнала:

$ lsof -p 5338|grep log
httpd   5338 root  mem    REG  253,0    10440   3141 /usr/lib64/httpd/modules/mod_logio.so
httpd   5338 root  mem    REG  253,0    27200   3139 /usr/lib64/httpd/modules/mod_log_config.so
httpd   5338 root    2w   REG  253,0     2014 395029 /var/log/httpd/error_log
httpd   5338 root    7w   REG  253,0     4140 394789 /var/log/httpd/access_log

Вы должны быть в состоянии определить расположение access_logфайлов конфигурации, а также просмотреть их, чтобы определить директивы «Каталог» и «Местоположение». Они указывают, какие локальные каталоги использовать при сообщении Apache, какие файлы обслуживать.

Что теперь?

Затем я просматриваю, access_logчтобы убедиться, что там есть записи, которые соответствуют доступам к серверу. Под этим я подразумеваю, что, просматривая сервер, http://www.somedom.com/somefileя должен увидеть этот доступ в access_logфайле следующим образом:

192.168.1.110 - - [17/Jul/2013:14:39:50 -0400] "GET /somefile HTTP/1.1" 200 4303 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/5
37.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36"

Где файлы?

Вы можете взять полученные выше знания и начать применять их так:

Эти биты httpd -Vговорят нам о корне Apache:

-D HTTPD_ROOT="/etc/httpd"
-D SERVER_CONFIG_FILE="conf/httpd.conf"

Таким образом , мы знаем , что основной конфигурационный файл находится здесь: /etc/httpd/conf/httpd.conf. Итак, просмотрите этот файл для этих строк:

$ grep -E "DocumentRoot|Directory \"|^Include" /etc/httpd/conf/httpd.conf |grep -v "^#"
Include conf.d/*.conf
DocumentRoot "/var/www/html"
<Directory "/var/www/html">
<Directory "/var/www/icons">
<Directory "/var/www/cgi-bin">
    <Directory "/var/www/error">

Итак, теперь я знаю, что эти каталоги являются потенциальными источниками для файла, который мы видели в access_log. DocumentRootИ Directoriesя бы полистать для файла, somefile. Если его нет ни в одном из этих мест, я бы сосредоточился на Includeкаталоге, указанном выше в grepвыводе /etc/httpd/conf.d/*.conf.

Эти файлы являются дополнительными конфигурациями, которые использует Apache, поэтому вам нужно будет повторить шаги, используя также grepдля просмотра этих файлов.

SLM
источник
14

Если вы не можете найти файл журнала или файл журнала пуст, вы можете запустить тест конфигурации Apache, который распечатает любые проблемы с файлами конфигурации:

apachectl configtest
KKR
источник
2

Беги service apache2 restart. Он будет отображать любое сообщение об ошибке (обычно служба запускает тест конфигурации перед остановкой и запуском apache)

seydu
источник