Apache không tải lại được Có bản ghi nào tôi có thể xem chi tiết không?


12

Tôi có một máy chủ web mà tôi đang làm việc để thêm một trang web vào.

Sau khi chạy a2ensite, tôi chạy service apache2 reloadvà nhận được điều này:

[FAIL] Đang tải lại cấu hình máy chủ web: apache2 không thành công!

Có một tệp nhật ký mà tôi có thể xem để biết thêm chi tiết không?

Câu trả lời:


9

Bạn có thể thấy nơi httpdđược cấu hình để tìm tệp cấu hình của nó bằng cách sử dụng công -Vtắc:

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

Bạn cũng có thể sử dụng lệnh lsofđể xem các tệp mà tiến trình Unix đang truy cập. Phiên bản của tôi httpdđang sử dụng cổng chứng khoán 80, vì vậy hãy thay đổi 80 thành 8443 trong trường hợp của bạn!

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

Bây giờ bạn có thể chạy lsofđể tìm nơi các tệp nhật ký được ghi vào:

$ 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

Bạn sẽ có thể xác định vị trí của các access_logtệp cấu hình cũng như xem qua chúng để xác định các lệnh "Thư mục" và "Vị trí". Chúng chỉ định những thư mục cục bộ nào sẽ sử dụng khi báo cho Apache những tệp nào sẽ phục vụ.

Giờ thì sao?

Sau đó tôi sẽ xem qua access_logđể đảm bảo rằng có các mục trong đó tương ứng với các truy cập đối với máy chủ. Ý tôi là điều này là nếu tôi duyệt máy chủ tại http://www.somedom.com/somefiletôi sẽ thấy quyền truy cập này được ghi lại trong access_logtệp như thế này:

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"

Các tập tin ở đâu?

Bạn có thể lấy kiến ​​thức trên mà chúng tôi có được và bắt đầu áp dụng nó như vậy:

Các bit này httpd -Vcho chúng ta biết gốc của Apache:

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

Vì vậy, chúng tôi biết các tập tin cấu hình chính là ở đây : /etc/httpd/conf/httpd.conf. Vì vậy, hãy xem qua tập tin đó cho các dòng này:

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

Vì vậy, bây giờ tôi biết rằng các thư mục này là nguồn tiềm năng cho tệp chúng ta đã thấy trong access_log. Các DocumentRootDirectoriestôi muốn xem xét thông qua cho các tập tin, somefile. Nếu nó không ở bất kỳ vị trí nào trong số này thì tôi sẽ tập trung vào Includethư mục được đề cập ở trên trong grepđầu ra , /etc/httpd/conf.d/*.conf.

Các tệp này là các cấu hình bổ sung mà Apache sử dụng, do đó bạn cũng cần lặp lại các bước bằng cách sử dụng grepđể xem qua các tệp này.


14

Nếu bạn không thể tìm thấy tệp nhật ký hoặc tệp nhật ký trống, bạn có thể chạy kiểm tra cấu hình apache sẽ in ra bất kỳ vấn đề nào với các tệp cấu hình:

apachectl configtest

2

Chạy đi service apache2 restart. Nó sẽ hiển thị bất kỳ thông báo lỗi nào (thường là dịch vụ chạy kiểm tra cấu hình trước khi dừng và bắt đầu apache)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.