서버에서 CentOS 7
하단에 include 파일을 추가한 후 입력하면 다음과 같은 오류가 발생합니다.sudo apachectl restart
httpd.conf
Job for httpd.service failed. See 'systemctl status httpd.service' and 'journalctl -xn' for details.
이것을 입력하면 sudo systemctl status httpd.service -l
결과는 다음과 같습니다.
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
Active: failed (Result: exit-code) since Tue 2014-12-23 20:10:37 EST; 2min 15s ago
Process: 2101 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
Process: 2099 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
Main PID: 2099 (code=exited, status=1/FAILURE)
Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec"
Dec 23 20:10:37 ip-address httpd[2099]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::e23f:49ff:feb7:2a21. Set the 'ServerName' directive globally to suppress this message
Dec 23 20:10:37 ip-address systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Dec 23 20:10:37 ip-address systemd[1]: Failed to start The Apache HTTP Server.
Dec 23 20:10:37 ip-address systemd[1]: Unit httpd.service entered failed state.
apache
포함 지시문을 주석 처리하면 재부팅할 수 있으며 포함 지시문의 주석 처리를 제거하면 오류가 다시 생성될 수 있습니다.apache
포함된 파일의 내용을 올바르게 사용하려면 어떻게 해야 합니까 ?
httpd.conf
오류를 유발하는 결론은 다음과 같습니다 IncludeOptional sites-enabled/*.conf
. .conf
폴더에 있는 유일한 파일은 다음 내용을 포함하는 sites-enabled
입니다 .mydomain.com.conf
<VirtualHost *:80>
ServerName www.mydomain.com
ServerAlias mydomain.com
DocumentRoot /var/www/mydomain.com/public_html
ErrorLog /var/www/mydomain.com/error.log
CustomLog /var/www/mydomain.com/requests.log combined
</VirtualHost>
위의 한 줄 include 지시문을 제외하면 httpd.conf
사전 설치된 것과 동일 합니다. 나는 httpd
이 오류가 발생하기 전에 이 작업을 sudo yum remove httpd mod_ssl
수행했기 때문에 알고 있습니다. sudo yum install httpd mod_ssl
전문은 파일 공유 사이트에서 보실 수 있습니다.httpd.conf
이 링크를 클릭하세요.
명시적으로 따를 때 이 문제가 발생했습니다.이 튜토리얼의 단계.
포함 파일을 주석 처리하면 에 정의되어 있는 http/mydomain.com
에 있는 정적 콘텐츠가 성공적으로 제공됩니다 . 문제는 위에 표시된 포함 파일의 지시문에서 발생한 것 같습니다. /var/www/html
DocumentRoot
httpd.conf
VirtualHost
진단을 돕기 위해 아래 EDIT#3의 .conf
세 가지 include 지시문에 포함된 모든 파일에 대한 링크를 포함했습니다.httpd.conf
.
편집 #1
/etc/hostname
m32가 제안한 Define 변경을 시도했지만 mydomain.com
여전히 apache
재부팅되지 않았으며 systemctl status httpd.service
결과는 다음과 같습니다.
[sudo_user_account@server-ip-address ~]$ sudo systemctl status httpd.service -l
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
Active: failed (Result: exit-code) since Tue 2014-12-23 14:25:35 EST; 20s ago
Process: 31993 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
Process: 31991 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
Main PID: 31991 (code=exited, status=1/FAILURE)
Status: "Total requests: 1; Current requests/sec: 0; Current traffic: 0 B/sec"
Dec 23 14:25:35 hostname systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Dec 23 14:25:35 hostname systemd[1]: Failed to start The Apache HTTP Server.
Dec 23 14:25:35 hostname systemd[1]: Unit httpd.service entered failed state.
편집 #2
/etc/hosts
나는 또한 아래와 같이 파일의 내용을 변경하라는 eyoung100의 제안을 시도했지만 여전히 위의 EDIT#1에 정의된 동일한 오류가 발생합니다.
편집 #3
DerekC의 요청에 따라 실행하여 sudo apachectl configtest
다음을 얻었습니다.
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::e23f:49ff:feb7:2a21. Set the 'ServerName' directive globally to suppress this message
Syntax OK
또한 GarethTheRed가 제안한 대로 include 지시문을 확인했습니다.httpd.conf. 세 가지 include 지시문이 있습니다.httpd.conf. 각 지시문의 폴더에 있는 모든 파일과 함께 아래에 이 세 개의 파일을 나열했습니다. 이것들은 .conf
무작위 입니다 httpd
. 아직 아무것도 수정하지 않았습니다. .conf
다음 링크를 클릭하면 파일 공유 사이트에서 각 파일을 볼 수 있습니다 .
Include conf.modules.d/*.conf
디렉토리에서 다음 파일을 참조하십시오 conf.modules.d
.
00-base.conf
00-dav.conf
00-lua.conf
00-mpm.conf
00-proxy.conf
00-ssl.conf
00-systemd.conf
01-cgi.conf
IncludeOptional conf.d/*.conf
디렉토리에서 다음 파일을 참조하십시오 conf.d
.
파일 자동 색인화
SSL 구성 파일
사용자 디렉터리 구성 파일
Welcome.conf
여기서는 생략한 README 파일도 있습니다.
또한 IncludeOptional sites-enabled/*.conf
지침과 해당 내용은 위 OP에 자세히 설명되어 있습니다.
여기에 포함된 파일이 의 VirtualHost
설정과 충돌 합니까 mydomain.com.conf
?
편집 #4
mydomain.com.conf
garethTheRed의 제안에 따라 해당 디렉토리로 이동 하고 conf.d
재부팅할 수 있을 때까지 한 줄씩 주석을 달기 시작했습니다. 그런 다음 얼마나 많은 줄을 유지하고 재부팅할 수 있는지 알아보기 위해 줄의 주석 처리를 제거하기 시작했습니다. 재부팅할 수 있었지만 계속해서 동일한 경고가 표시됩니다. mydomain.com.conf
httpd
httpd
httpd
systemctl status httpd.service -l
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::e23f:49ff:feb7:2a21. Set the 'ServerName' directive globally to suppress this message
VirtualHost
위의 경고가 계속 생성되더라도 시작을 허용하는 구문은 다음과 같습니다 httpd
.
<VirtualHost *:80>
ServerName www.mydomain.com
ServerAlias mydomain.com
DocumentRoot /var/www/mydomain.com/public_html
</VirtualHost>
다음 줄을 생략해야 했다는 점에 유의하세요. 해당 줄이 있으면 http 시작에 대한 완전한 실패로 경고가 확대됩니다.
# ErrorLog /var/www/mydomain.com/error.log
# CustomLog /var/www/mydomain.com/requests.log combined
또한 실행 sudo journalctl -xelu httpd
해 보니 터미널이 다음을 여러 번 반복하여 응답했습니다.
--
-- Unit httpd.service has finished shutting down.
Dec 24 17:48:43 server-ip-address systemd[1]: Stopped The Apache HTTP Server.
-- Subject: Unit httpd.service has finished shutting down
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit httpd.service has finished shutting down.
Dec 24 17:48:48 server-ip-address systemd[1]: Starting The Apache HTTP Server...
-- Subject: Unit httpd.service has begun with start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit httpd.service has begun starting up.
Dec 24 17:48:48 server-ip-address httpd[10364]: AH00558: httpd: Could not reliably d
Dec 24 17:48:48 server-ip-address systemd[1]: Started The Apache HTTP Server.
-- Subject: Unit httpd.service has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit httpd.service has finished starting up.
--
-- The start-up result is done.
lines 887-909/909 (END)
참고: eyoung100의 호스트 파일을 사용하든 m32의 호스트 파일을 사용하든 위의 결과는 동일합니다. 이 질문에 대답하려면 로그 파일을 만들고 서버 이름 경고를 피할 수 있어야 한다고 생각했습니다. 그렇지 않으면 httpd를 구성하는 후속 단계에서 오류가 오래 지속되는 것이 걱정됩니다.
답변1
apache
웹 사이트의 루트 디렉터리에 쓸 수 없기 때문에 로그에서 오류가 발생하고 있습니다 . 파일 권한을 수정하더라도 여전히 SELinux에 의해 차단됩니다. apache
로그만 기록 할 /var/log/httpd
수 있습니다. 가장 쉬운 해결책은 웹사이트를 이 디렉터리에 로그인하도록 변경하는 것입니다. 웹사이트 이름이 포함된 파일 이름을 사용할 수도 있습니다. 다른 로그와 구별되도록 합니다.
ErrorLog /var/log/httpd/mydomain_com_error.log
CustomLog /var/log/httpd/mydomain_com_requests.log combined
서버의 호스트 이름을 설정하고 AH00558 경고를 제거하려면 다음을 사용하면 됩니다.
hostnamectl set-hostname --static <FQDN of your machine>
예를 들어
hostnamectl set-hostname --static mydomain.com
답변2
내 컴퓨터의 호스트 이름을 설정하는 것을 잊었을 때 이 오류가 발생했습니다. 이 일을 해 보셨나요?
다음 명령을 실행하세요:
echo 'example.com' >> /etc/hostname
확인hostname
편집하다:
최신 OP를 사용하면 호스트 파일이 올바르게 설정되지 않은 것 같습니다. 이것이 내 모습입니다.
127.0.0.1 localhost.localdomain localhost
# Auto-generated hostname. Please do not remove this comment.
166.66.666.66 m32.me m32
::1 ip6-localhost ip6-loopback
이렇게 간단하게 설정해 보세요. 물론 모든 정보를 자신의 정보로 바꾸십시오.
166.66.666.66
자신의 IP
m32.me and m32
와 도메인, TLD가 없는 도메인을 사용하세요.