web-dev-qa-db-ja.com

NameVirtualHost *:80にはVirtualHostsがありません

2つのドメイン名、2つのSSL証明書、2つのIPアドレスがあります。 Apache仮想ホストファイルを構成しようとしています。

最初に、ポート80および443の「NameVirtualHost」および「Listen」のすべてのインスタンスをコメントアウトしました。次に、仮想ホストファイルで次の操作を行いました。

Domain1のVirtualHostファイル:

NameVirtualHost 1.1.1.1:80
Listen 1.1.1.1:80
Listen 1.1.1.1:443
<VirtualHost 1.1.1.1:80>
    ServerName domain1.com
    ...
</VirtualHost>
<VirtualHost 1.1.1.1:443>
    ...
</VirtualHost>

Domain2のVirtualHostファイル:

NameVirtualHost 2.2.2.2:80
Listen 2.2.2.2:80
Listen 2.2.2.2:443
<VirtualHost 2.2.2.2:80>
    ServerName domain2.com
    ...
</VirtualHost>
<VirtualHost 2.2.2.2:443>
    ...
</VirtualHost>
35
Jay

あなたの設定のどこか、おそらくApacheのデフォルトの設定ファイル(私は/etc/Apache2/httpd.conf Ubuntuで?誰かがコメントで私を修正することができます)、次のような行です:

NameVirtualHost *:80

# Also
Listen 80
Listen 443

それらをコメントアウトし、VirtualHost構成ファイルに以下を追加します。

Listen 111.111.111.111:80
Listen 222.222.222.222:80
# If also using SSL
Listen 111.111.111.111:443
Listen 222.222.222.222:443

NameVirtualHost 111.111.111.111:80
NameVirtualHost 222.222.222.222:80

多くのデフォルトのApache構成では、ListenおよびNameVirtualHostディレクティブにワイルドカードが提供されるか、すべてのネットワークインターフェイスにグローバルに適用されます。異なる構成にバインドされた複数のIPアドレスを使用しているため、ディストリビューションのデフォルトの構成ファイルよりも、構成ディレクティブをより具体的にする必要があります。

29

Ubuntuサーバーを使用して2か月間、同じエラーを無視していました。この投稿でエラーがうまく解決されたことがわかりました。ありがとう マイケル !! Jay のように、犯人は/etc/Apache2/ports.confで見つかりました。私はこれを簡単に試しました:

#NameVirtualHost *:80

「NameVirtualHost *:80にはVirtualHostsがありません」

41
Randy Skretka