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


14

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 구성의 후속 단계에서 오류가 발생할 가능성이 있습니다.


1
ServerName지시문 을 추가 할 때 어떤 정확한 "nebulous"오류가 발생 합니까? 질문에 추가하십시오.
wurtel

1
출력은 apachectl configtest무엇입니까?
DerekC

거기가 IncludeOptional원래의 끝에 httpd.conf파일? 기본 설치가 있다고 생각합니다. 문제는 IncludeOptional마지막에 추가 구성 요소 를 추가 apache하여 포함 된 구성 파일을 두 번 읽게되어 결과적으로 실패 할 수 있다는 것입니다.
garethTheRed

시작 하려면 ( 다른 모든 것이있는 곳) 으로 이동 mydomain.com.conf하고 /etc/httpd/conf.d( /etc/httpd/sites-enabled데비안 / 우분투 것)을 삭제하고에 IncludeOptional추가 한 항목 을 추가해야 httpd.conf합니다. AH00558메시지가 중지되지 않으므로 지금 은 메시지를 무시할 수 있습니다 apache. 그런 다음 conf범인을 찾을 때까지 파일 에서 한 줄을 제거하십시오 (또는 비어있는 것으로 시작하여 한 번에 한 줄씩 복원).
garethTheRed

1
@garethTheRed 및 Google 사용자는 IncludeOptional sites-enabled / *. conf를 제거 할 필요가 없습니다. 그것은 빨간 청어였습니다. 실제 문제는 garethTheRed가 아래에 지적한 로그 파일이었습니다. OP와 동일한 자습서를 따르고 동일한 문제가있었습니다. 가상 호스트 conf 파일에서 로그 파일 행을 제거하면 문제가 해결되었습니다.
Louise Eggleton

답변:


19

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

이 작업을 계속하면서 다른 오류가 발생했습니다. 당신은 또한 그것을 도와 드리겠습니다? 다음 링크가 있습니다 : unix.stackexchange.com/questions/176052/…
CodeMed

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


그래도 문제가 해결되지 않았습니다. AH00558예제 호스트 파일을 my ip및로 사용하면 여전히 오류가 발생합니다 mydomain.com mydomain.
CodeMed
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.