사이트를 추가하는 웹 서버가 있습니다.
을 실행 한 후을 실행 a2ensite
하고 이것을 service apache2 reload
얻었습니다.
[FAIL] 웹 서버 구성을 다시로드하는 중 : apache2가 실패했습니다!
자세한 내용을 볼 수있는 로그 파일이 있습니까?
답변
스위치를 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
이러한 파일을 살펴 보려면를 사용하여 단계를 반복해야합니다 .
답변
로그 파일을 찾을 수 없거나 로그 파일이 비어있는 경우 구성 파일의 문제점을 인쇄하는 아파치 구성 테스트를 실행할 수 있습니다.
apachectl configtest
답변
를 실행하십시오 service apache2 restart
. 오류 메시지가 표시됩니다 (보통 서비스는 아파치를 중지하고 시작하기 전에 구성 테스트를 실행합니다)