[unix] VirtualHost conf 파일을 추가 한 후 아파치가 다시 시작되지 않습니다.

A의 CentOS 7I 입력 할 때 서버, 나는 다음과 같은 오류가 발생합니다 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.

내가 얻을 수있는 apacheI는이 지침이 포함 주석 경우 다시 시작, 그리고 주석 표시를 없애 지시어 포함하여 다시 오류를 다시 만들 수 있습니다. 포함 파일의 내용을 사용하여 올바르게 시작하려면 어떻게 apache해야합니까?

맨 아래에 httpd.conf있는 오류는 다음과 같습니다 IncludeOptional sites-enabled/*.conf. 폴더 .conf에있는 유일한 파일 은 다음과 같은 내용을 갖습니다. sites-enabledmydomain.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>

(가) httpd.conf와 함께 사전 설치되어 것과 동일 httpd하나 개의 라인을 제외하고는, 위의 지시 등이 있습니다. 내가했기 때문에 나는 알고 sudo yum remove httpd mod_sslsudo yum install httpd mod_ssl바로이 오류를 발생시킵니다. 이 링크를 클릭하면httpd.conf 파일 공유 사이트에서 전체 를 읽을 수 있습니다 .

이 튜토리얼의 단계를 명시 적으로 따를 때이 문제가 발생했습니다 .

포함 파일을 주석 처리 하면에 정의 된에 http/mydomain.com있는 정적 콘텐츠를 성공적으로 제공합니다 . 위의 포함 파일 의 지시문에서 문제가 발생한 것으로 보입니다 . 진단을 돕기 위해 3 개의 include 지시문에 포함 된 모든 파일 에 대한 링크를 아래 편집 # 3에 포함 시켰 습니다 ./var/www/htmlDocumentRoothttpd.confVirtualHost.confhttpd.conf

편집 # 1

나는 M32의 조언을하려고하면 변경하는 /etc/hostname정의 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의 제안에 따라 httpd.conf 의 include 지시문을 조사했습니다 . httpd.conf 에는 세 개의 include 지시문이 있습니다 . 각 지시문의 폴더에있는 모든 파일과 함께 아래 세 가지를 나열했습니다. 이것들은 모두 .conf함께 설치된 표준 파일입니다 httpd. 아직 아무것도 수정하지 않았습니다. .conf아래 링크를 클릭하면 파일 공유 사이트에서 각 파일을 볼 수 있습니다 .

Include conf.modules.d/*.confconf.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: 디렉토리
autoindex.conf
ssl.conf
userdir.conf
welcome.conf
내가 여기 생략하고있는 README 파일도 있습니다.

또한 IncludeOptional sites-enabled/*.conf지침과 그 내용은 위의 OP에 철저히 설명되어 있습니다.

이 포함 파일 중의 VirtualHost설정 과 충돌하는 파일 이 mydomain.com.conf있습니까?

편집 # 4

GarethTheRed의 제안 mydomain.com.conf에 따라 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 구성의 후속 단계에서 오류가 발생할 가능성이 있습니다.



답변

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


답변

컴퓨터의 호스트 이름을 설정하는 것을 잊었을 때이 오류가 발생했습니다. 그렇게 했습니까?
이 명령을 실행하십시오 :

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가없는 도메인


답변