Apache 2の起動時の警告:NameVirtualHost *:80にはVirtualHostsがありません


68

Ubuntu Apacheサーバー(Apache 2)が起動すると、次の警告メッセージが表示されます。

[warn] NameVirtualHost *:80 has no VirtualHosts

ただし、Webサーバーは正常に動作しています。この警告を出すためにサイトの構成に何が間違っているのでしょうか?

問題の構成ファイル(にある/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ファイルに2回追加されました。(デフォルトではports.confファイルに追加されています)

これによりエラーがクリアされます。

余談ですが、このエラーは無視しないでください。Apacheの設定、特に仮想ホストをグロブする場合(たとえば、/ etc / httpd / vhosts.d / *を含む)は安定していません。つまり、ホストのロード順序を明示的に制御しないため、IPのデフォルトの仮想ホストが最初にロードされるホストになり、意図しない結果を招く可能性があります。

この一例は、名前ではなく、そのIPで使用可能なIPのデフォルトの仮想ホストです。これにより、名前ではなくサイトのIPを参照してGoogleに情報が漏洩する可能性があり、顧客を混乱させる可能性があります。

上記のNameVirtualHostエラーは、Apacheが最適でない方法で物事をロードしたというヒントになる可能性があるため、無視しないでください。


5
:あなたはこのように、デフォルトのバーチャルホストを設定することができます<VirtualHost _default_ thehostname.com>
エイミー・B

51

NameVirtualHostディレクティブが複数の場所にあることが原因である可能性があります。

他のディストリビューションについては知りませんが、Ubuntu / Debianでは、Apacheの構成はいくつかのファイルに分割されているため、複製の場所(httpd.conf、apache2.conf、ports.conf、conf.dを確認する必要があります) / *)。

ああ、そして私はちょうどもっと多くの情報を持つこの素晴らしいリソースを見つけました:一般的なApache Misconfigurations


3
あなたが与えたリンクは、Apache構成ファイルの微妙な違いを理解しようとするための素晴らしいリソースのように見えます。ありがとう!
キットRoed

4
ありがとう!これが私の問題でした-NameVirtualHostのvirtual.confを作成しましたが、それが既にports.confにあることを知らずに
rcampbell

ありがとう-ubuntuサーバーのデフォルト設定で同じ問題があります:ports.confにはNameVirtualHost :80が含まれており、sites-enabled / configファイルで繰り返さないでください
DrSAR

1
私の場合、この問題は、ubuntuにNameVirtualHost *:80in ports.confとinの両方があるためでconf.d/virtualhosts、これはUbuntuのバグのようです。
ふわふわ

9

Debian / Lennyボックス:/etc/apache2/ports.confに追加のNameVirtualHostステートメントがあります-これがこの問題の原因である可能性があります(/ etc / apache2 / sites-available / defaultにも同じステートメントがあります) 。私はその声明にコメントし、エラーは消えました。


3

一致するVirtualHostエントリのないNameVirtualHostがあります。

これは通常、致命的ではなく、単なる情報提供上のエラーです。


3

NameVirtualHost行にはポート番号(:80)がありますが、VirtualHostセクションにはないためです。


2

AS Runeが言及しているように、DebianシステムではNameVirtualHostが多くのファイル(ports.conf、conf.d / virtual.confおよび場合によっては独自のconfファイルint sites-available)に現れます

NameVirtualHost *:80(conf.d / virtual.confにあります)として1つの場所に存在することを確認し、警告が表示されるはずです。

前述のように、各サイトのVirtualHostの方向をこの形式にする必要もあります。 <VirtualHost *:80>


2

私も同じ問題を抱えていますが、しばらくしてApacheのデフォルトサイトを無効にします。次のように入力します

# a2dissite default

Apache 2を再起動しようとすると、次のメッセージが表示されます。

「[警告] NameVirtualHost *:80にはVirtualHostsがありません」

次に、Apache 2の「デフォルト」サイトを再度有効にすると、すべてが再び機能します。使用するコマンドは次のとおりです。

# a2ensite default

それはすべての人々です!


これが最善のアドバイスです。
ジニ

素晴らしいアドバイス、私はzpanelCPを実行していますが、これ以外は何も機能しませんでした。ありがとう!:)
エリランエフロン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.