Apache 2 시작 경고 : NameVirtualHost * : 80에는 VirtualHosts가 없습니다.


68

Ubuntu Apache 서버 (Apache 2)가 시작되면 다음과 같은 경고 메시지가 나타납니다.

[warn] NameVirtualHost *:80 has no VirtualHosts

그러나 웹 서버는 정상적으로 작동합니다. 이 경고 메시지를 표시하기 위해 사이트 구성에서 무엇이 잘못되었을 수 있습니까?

문제의 구성 파일 (에 있음 /etc/apache2/sites-available)은 다음과 같이 읽습니다 (간단하게 세부 사항이 제거됨)

<VirtualHost *>
    <Location /mysite>
        # Configuration details here...
    </Location>

    # Use the following for authorization.
    <LocationMatch "/mysite/login">
        AuthType Basic
        AuthName "My Site"
        AuthUserFile /etc/sitepasswords/passwd
        Require valid-user
    </LocationMatch>
</VirtualHost>

내가 사용하고 있다는 사실이 <Location>문제의 일부일 수 있습니까?

답변:


53

변화

<VirtualHost *>

읽다

<VirtualHost *:80>

또는 (NameVirtualHost * : 80)이 apache2 Confing 파일에 두 번 추가되었습니다. (기본적으로 ports.conf 파일에 추가됨)

오류가 해결됩니다.

따로 : 이 오류를 무시해서는 안됩니다. Apache의 구성, 특히 가상 호스트를 globbing하는 경우 (예 : /etc/httpd/vhosts.d/* 포함) 안정적이지 않습니다. 즉, 호스트를 명시 적으로로드하는 순서를 제어하지 않으므로 IP의 기본 vhost가 먼저로드되는 호스트가되므로 의도하지 않은 결과가 발생할 수 있습니다.

이것의 한 가지 예는 IP의 기본 가상 호스트가 name이 아니라 해당 IP에서 사용 가능하다는 것 입니다. 이로 인해 이름이 아닌 사이트 IP를 참조하여 정보가 Google에 유출되어 고객에게 혼란을 줄 수 있습니다.

위의 NameVirtualHost 오류는 아파치가 물건을 최적이 아닌 방식으로로드했음을 암시 할 수 있으므로 무시해서는 안됩니다.


5
다음과 같이 기본 호스트를 설정할 수 있습니다.<VirtualHost _default_ thehostname.com>
Amy B

51

NameVirtualHost 지시문이 둘 이상의 위치에 있기 때문일 수 있습니다.

다른 배포판에 대해서는 모르지만 Ubuntu / Debian에서는 Apache의 구성이 여러 파일로 분할되어 있으므로 복제 위치 (httpd.conf, apache2.conf, ports.conf, conf.d)를 확인해야합니다. / *).

: 아, 그리고 난 그냥 자세한 내용은이 훌륭한 자원을 발견 일반적인 아파치 잘못된 구성을 .


3
당신이 준 링크는 Apache 설정 파일의 뉘앙스를 이해하기위한 훌륭한 리소스처럼 보입니다. 감사!
키트 Roed

4
감사! 이것은 내 문제였습니다-NameVirtualHost에 virtual.conf를 만들었습니다. 이미 그것이 ports.conf에 있다는 것을 몰랐습니다
rcampbell

감사합니다-우분투 서버 기본 구성에서 동일한 문제가 있습니다 : ports.conf에는 NameVirtualHost : 80이 포함 되어 있으며 사이트 활성화 / 구성 파일 에서 반복해서는 안됩니다 !
DrSAR

1
필자의 경우이 문제는 우분투에 NameVirtualHost *:80in ports.conf과 in 이 있었기 때문에 우분투 conf.d/virtualhosts버그로 보입니다.
푹신한

9

데비안 / 레니 상자 : /etc/apache2/ports.conf에 추가적인 NameVirtualHost 문이 있습니다-이 문제의 원인이 될 수 있습니다 (/ etc / apache2 / sites-available / default에도 같은 문이 있습니다) . 나는 그 진술에 주석을 달았고 오류는 사라졌다.


3

일치하는 VirtualHost 항목이없는 NameVirtualHost가 있습니다.

이는 일반적으로 치명적이지 않으며 정보 오류 일뿐입니다.


3

NameVirtualHost 줄에 포트 번호 ( :80)가 있지만 VirtualHost 섹션에는 없습니다.


2

AS Rune은 데비안 시스템에서 NameVirtualHost가 여러 파일 (ports.conf, conf.d / virtual.conf) 및 가능하면 자신의 conf 파일 (사이트에서 사용 가능)에 나타남

한 위치에 NameVirtualHost * : 80 (mine은 conf.d / virtual.conf에 있음)으로 존재하고 경고가 표시되는지 확인하십시오.

언급했듯이 사용 가능한 각 사이트의 VirtualHost 방향을이 형식으로 만들어야합니다. <VirtualHost *:80>


2

나는 같은 문제가 있지만 잠시 후에 Apache의 기본 사이트를 비활성화합니다. 나는 같은 것을 입력

# a2dissite default

Apache 2를 다시 시작하려고하면 다음 메시지가 나타납니다.

"[경고] NameVirtualHost * : 80에는 VirtualHosts가 없습니다"

그런 다음 Apache 2의 '기본'사이트를 다시 활성화하고 모든 것이 다시 작동합니다. 사용 된 명령은 다음과 같습니다.

# a2ensite default

그게 다야!


이것이 최선의 조언이었습니다.
jini

멋진 조언, zpanelCP를 실행 중이며 아무것도 작동하지 않습니다. 감사 ! :)
Eliran Efron
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.