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для перегляду цих файлів.


14

Якщо ви не можете знайти файл журналу або файл журналу порожній, ви можете запустити тест конфігурації apache, який виведе друк будь-яких проблем із файлами конфігурації:

apachectl configtest

2

Біжи service apache2 restart. Він відображатиме будь-яке повідомлення про помилку (зазвичай служба запускає тест конфігурації перед тим, як зупинятись і запускати апаш)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.