Apache yeniden yüklenemiyor… Ayrıntılar için arayabileceğim bir günlük var mı?


12

Bir site eklemek için çalıştığım bir web sunucum var.

Koştuktan sonra a2ensitekoştum service apache2 reloadve anladım:

[FAIL] Web sunucusu yapılandırması yeniden yükleniyor: apache2 başarısız oldu!

Daha fazla ayrıntı için arayabileceğim bir günlük dosyası var mı?

Yanıtlar:


9

Anahtarı httpdkullanarak yapılandırma dosyalarını arayacak şekilde nerede yapılandırıldığını görebilirsiniz -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"

Bu komutu lsof, bir Unix işleminin hangi dosyalara eriştiğini görmek için de kullanabilirsiniz . Benim httpdsürümüm stok portu 80 kullanıyor, bu yüzden sizin durumunuzda 80'i 8443 olarak değiştirin!

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

Artık lsofgünlük dosyalarının nereye yazıldığını bulmak için çalışabilirsiniz :

$ 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_logYapılandırma dosyalarının yanı sıra konumunu da belirleyebilmeli ve "Dizin" ve "Konum" yönergelerini belirlemek için bu dosyalara bakabilmelisiniz. Bunlar, Apache'ye hangi dosyaların sunulacağını söylerken hangi yerel dizinlerin kullanılacağını belirtir.

Şimdi ne olacak?

Daha sonra access_logorada sunucuya erişim karşılık gelen girişleri olduğundan emin olmak için bakmak . Bununla ne demek istediğim ben sunucuya göz atarsanız http://www.somedom.com/somefileben bu erişim access_logdosya gibi kaydedilmiş görmeliyim :

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"

Dosyalar nerede?

Aldığımız yukarıdaki bilgiyi alabilir ve aşağıdaki gibi uygulamaya başlayabilirsiniz:

Bu parçalar httpd -Vbize Apache'nin kökünü anlatıyor:

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

Ana yapılandırma dosyası biliyorum Yani burada: /etc/httpd/conf/httpd.conf. Bu nedenle, şu satırlar için bu dosyaya bakın:

$ 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">

Artık bu dizinlerin içinde gördüğümüz dosya için potansiyel kaynaklar olduğunu biliyorum access_log. DocumentRootVe Directoriesben, dosya için bakmak istiyorum somefile. Bu konumlardan herhangi birinde değilse, daha sonra çıktıda Includebelirtilen dizine odaklanacağım .grep/etc/httpd/conf.d/*.conf

Bu dosyalar Apache'nin kullandığı ek yapılandırmalardır, bu nedenle grepbu dosyaları da aramak için bu adımları kullanarak tekrarlamanız gerekir .


14

Günlük dosyasını bulamıyorsanız veya günlük dosyası boşsa, yapılandırma dosyalarıyla ilgili sorunları yazdıracak olan apache yapılandırma testini çalıştırabilirsiniz:

apachectl configtest

2

Koş service apache2 restart. Herhangi bir hata mesajı görüntüler (genellikle servis apache'yi durdurup başlatmadan önce bir yapılandırma testi çalıştırır)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.