web-dev-qa-db-ja.com

Apache2のhttpdエラー「*ポートと*以外のポートをNameVirtualHostアドレスで混在させることはサポートされていません」を解決するにはどうすればよいですか

Apache2の起動時に発生するエラーは次のとおりです。

 * Starting web server Apache2
 Apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
 [Wed Oct 21 16:37:26 2009] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
 [Wed Oct 21 16:37:26 2009] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
 [Wed Oct 21 16:37:26 2009] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
 [Wed Oct 21 16:37:26 2009] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
 [Wed Oct 21 16:37:26 2009] [warn] NameVirtualHost *:80 has no VirtualHosts

私は最初にこのガイドに従って、複数のサイトをホストするようにApacheを設定しました。

http://www.debian-administration.org/articles/412

次に、ServerFaultで 同様の質問 を見つけてソリューションを適用しようとしましたが、役に立ちませんでした。

これが私の最終的なVirtualHost構成の例です。

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName  www.xxx.com
    ServerAlias xxx.com

    # Indexes + Directory Root.
    DirectoryIndex index.html
    DocumentRoot /var/www/www.xxx.com

    # Logfiles
    ErrorLog  /var/www/www.xxx.com/logs/error.log
    CustomLog /var/www/www.xxx.com/logs/access.log combined
</VirtualHost>

無実を保護するためにドメインXを使いました:-)

また、ガイドに記載されているconf.d/virtual.confファイルは次のようになっています。

NameVirtualHost *

奇妙なことに、3つのサイトのうち2つですべてが正常に機能しているように見えます。

24
rcampbell

NameVirtualHostで名前が付けられたIPアドレスは、各VirtualHost要素のIPアドレスと一致する必要があります。

例:

NameVirtualHost *:80
NameVirtualHost *:81

<VirtualHost *:80>
# ...
</VirtualHost>

<VirtualHost *:81>
# ...
</VirtualHost>

# This will not work!
<VirtualHost *>
# ...
</VirtualHost>

詳細は Apache Virtual Hostのドキュメント を参照してください。

29
joschi

これを交換してください:

NameVirtualHost *

これとともに:

NameVirtualHost *:80
13
Eric Dennis

応答に加えて、私が気付いたことの1つは、すべてのNameVirtualHostおよびVirtualHostディレクティブで:80を明示的に宣言しないとSSLを実行できないことです。Apacheは次のものをサポートしません。

NameVirtualHost *

そして

NameVirtualHost *:443

同じ構成で混同すると、ポート0でリッスンしているApacheでエラーが発生します。

私にとっては、すべてのホストに:80を追加しただけなので、SSLは適切に機能します。

5
Rodrigo

例:

<VirtualHost 85.25.97.252:80>
ServerName domain.com
ServerAlias * .domain.com
ServerAdmin [email protected]
DocumentRoot "/var/www/domain.com/httpdocs/"
<ディレクトリ "/var/www/domain.com/httpdocs /">
オプションインデックスFollowSymLinks
AllowOverride All
注文許可、拒否
すべてから許可
</ Directory>
</ VirtualHost>

0
friv