エラー:「VirtualHost *:80 — NameVirtualHost アドレスを持つ * ポートと非 * ポートの混合はサポートされておらず、未定義の結果が続行されます。」
質問
WindowsXP 上で WAMP v2.0 を実行しており、http-vhosts.conf ファイルに多数の仮想ホストが設定されています。
これは機能していましたが、先週 WAMP を起動しようとするたびに、イベント ログに次のエラーが記録されます。
VirtualHost *:80-NameVirtualHostアドレスを備えたポートと非 *ポートの混合 *ポートと非 *ポートはサポートされておらず、未定義の結果を進めます。
そしてサーバーは起動しません。何が変わったのか思いつきません。
以下のconfファイルをコピーしました。
NameVirtualHost *
<VirtualHost *:80>
ServerName dev.blog.slaven.net.au
ServerAlias dev.blog.slaven.net.au
ServerAdmin user@host.com
DocumentRoot "c:/Project Data/OtherProjects/slaven.net.au/blog/"
ErrorLog "logs/blog.slaven.localhost-error.log"
CustomLog "logs/blog.slaven.localhost-access.log" common
<Directory "c:/Project Data/OtherProjects/slaven.net.au/blog/">
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
編集: NameVirtualHosts ディレクティブを変更してポートを指定する場合、つまり、
NameVirtualHost *:80
このエラーが発生します:
通常、各ソケット アドレス (プロトコル/ネットワーク アドレス/ポート) の使用は 1 つだけ許可されます。:靴下作り:アドレス 0.0.0.0:80 にバインドできませんでした
解決
名前仮想ホスト *:80
このエラーが発生します:
通常、各ソケット アドレス (プロトコル/ネットワーク アドレス/ポート) の使用は 1 つだけ許可されます。:靴下作り:アドレス 0.0.0.0:80 にバインドできませんでした
これは、他にポート 80 をリッスンしているものが原因である可能性があります。他のサーバー (または Skype など) が実行されていますか?
(Skype の場合:「ツール > オプション > 詳細 > 接続 > 受信接続の代替としてポート 80 と 443 を使用する」のチェックを外します)
他のヒント
そうですね、問題はポートを割り当てる方法 (および順序) にあるようです。
基本的に、*:80 は「この構成内のすべてのホストにポート 80 を使用する」ことを意味します。これを行うと、Apache はそのホストを 0.0.0.0:80 にバインドしようとします。これは、宛先がどの仮想ホストであるかに関係なく、ホストはポート 80 経由でマシンに着信するすべてのパケットを受信することを意味します。それは一度だけ使用すべきであり、持っている場合にのみ使用してください。 1つ その構成内のホスト。
したがって、構成ファイル内の 2 つのホストに同じ *:80 ディレクティブがある場合、サーバーは 0.0.0.0:80 のバインドを 2 回試行し、2 回目の試行で失敗するため、ロードされません。(これは、「通常、各ソケット アドレス (プロトコル/ネットワーク アドレス/ポート) の使用は 1 つだけ許可されます。」を説明しています。:靴下作り:アドレス 0.0.0.0:80 にバインドできませんでした」というメッセージ)。