it-swarm-ko.tech

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

내 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> 문제의 일부입니까?

68
Kit Roed

변화

<VirtualHost *>

읽다

<VirtualHost *:80>

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

오류가 해결됩니다.

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

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

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

53
Dave Cheney

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

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

아, 그리고 방금 자세한 정보를 가진이 훌륭한 리소스를 찾았습니다. Common Apache Misconfigurations .

51
Ivan

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

9
Rune

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

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

3
Dominic Eidson

NameVirtualHost 줄에 포트 번호가 있기 때문입니다 (:80)이지만 VirtualHost 섹션은 그렇지 않습니다.

3
derobert

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

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

언급했듯이 각 사이트에 대해 VirtualHost 방향을 사용 가능하게해야합니다.이 형식은 <VirtualHost *:80>

2
Mo01

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

# a2dissite default

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

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

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

# a2ensite default

그게 다야!

2
Tiago