NameVirtualHostアドレスを持つ*ポートと非*ポートの混合はサポートされていませんapache2 httpdエラーを解決する方法


24

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 admin@xxx.com
    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'dドメインを使用して:-)

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

NameVirtualHost *

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


完全な(!)Apache httpd構成、または少なくともすべてのNameVirtualHostおよび<VirtualHost ...>行を投稿します。
joschi

同じip:portで2つのタイプを混在させることはできません。私は2つのIPがあり、1つはmassvhostがハングアップし、もう1つは通常の名前ベースのホストがすべてあるセットアップをしました。さらに重要なことは、目標は何ですか?何を達成しようとしていますか?あなたの制約は何ですか?
マルチン

回答:


29

という名前NameVirtualHostのIPアドレスは、各VirtualHost要素のIPアドレスと一致する必要があります。

例:

NameVirtualHost *:80
NameVirtualHost *:81

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

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

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

詳細については、Apache Virtual Hostのドキュメントをお読みください。


何度も賛成票を投じることができたらいいのに。彼らは本当にドキュメントでこれをより明確に呼ぶべきです。
アレックスW

13

これを置き換えます:

NameVirtualHost *

これとともに:

NameVirtualHost *:80

2
私は簡単な答えを感謝し、私は両方を受け入れることがしたい
rcampbell

5

応答に加えて、私が気づいた1つのことは、すべてのNameVirtualHostおよびVirtualHostディレクティブで明示的に:80を宣言することなくSSLを実行できないことです。

NameVirtualHost *

そして

NameVirtualHost *:443

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

私にとっては、SSLが適切に機能するように、すべてのホストに:80を追加しました。


0

例:

<VirtualHost 85.25.97.252:80>
ServerName domain.com
ServerAlias * .domain.com
ServerAdmin webmaster@domain.com
DocumentRoot "/var/www/domain.com/httpdocs/"
<Directory "/var/www/domain.com/ httpdocs / ">
オプションインデックスFollowSymLinks
AllowOverride All
Order allow、deny
all from all
</ Directory>
</ VirtualHost>

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.