Apache2 (XAMPP) 仮想ホストディレクティブが機能しない (どうやら)

Apache2 (XAMPP) 仮想ホストディレクティブが機能しない (どうやら)

私はいくつかIP ベースの仮想ホストを設定するときに問題が発生します。まず、Windows 7 で apachefriends の最新の XAMPP (XAMPP 1.7.7 と Apache 2.2.21) を使用しています。

「メイン」サーバー ( からhttpd.conf) の基本機能は完璧に動作します。ただし、ネットワーク カードを 192.168.2.95 から 192.168.2.105 までのすべての IP アドレスを使用するように構成したので、異なる IP アドレスを持つ複数の vhost をセットアップしたいと考えています。

これは仮想ホストのエントリです:

<VirtualHost 192.168.2.96:80>
    DocumentRoot "/xampp/hegedocs/www"
    ServerName 192.168.2.96:80
</VirtualHost>

httpd -D DUMP_VHOSTSこう言っています。

PS G:\xampp\apache\bin> ./httpd -D DUMP_VHOSTS
VirtualHost configuration:
192.168.2.96:80        192.168.2.96 (G:/xampp/apache/conf/extra/httpd-vhosts.conf:45)
Syntax OK

しかし、vhost にアクセスできず、Apache が 192.168.2.96:80 を listen しているようにも見えません。このアドレスのエントリは表示されませんnetstat -a -b

答え1

問題が見つかりました。IP ベースの vhost は機能しません。hosts ファイルでいくつかの名前 (foo.localhost、bar.localhost はすべて同じ IP アドレスにマッピング) を定義して、名前ベースの vhost を使用すると問題なく機能します。もちろん、これは IP アドレスほど移植性が高くありません。ネットワーク内の他のマシンは当然これらの名前を知らないからです... でも、何とか機能するのであれば...

答え2

このガイドをチェックしてください

http://i.justrealized.com/2008/how-to-set-up-virtualhost-in-xampp-for-windows/

私にとっては効果があります

答え3

正しいポートを取得していることを確認するために、追加してみることができる基本的な項目をいくつか示します。

# Ensure that Apache listens on port 80
Listen 80

# Listen for virtual host requests on all IP addresses
NameVirtualHost *:80

以下は、appache からの例です。

<VirtualHost *:80>
DocumentRoot /www/example1
ServerName www.example1.com

# Other directives here

</VirtualHost>

<VirtualHost *:80>
DocumentRoot /www/example2
ServerName www.example2.org

# Other directives here

</VirtualHost>

これまでにも見たことがあると思いますが、時には単純なことを振り返ってみるのも役に立つことがあります。

私のセットアップは、ServerName www.example.com を使用して 1 つのボックスで 2 つの Web サイトを実行することで正常に動作します。

お役に立てれば!

答え4

Apacheがvhost.confファイルの場所を認識していることを確認してください。httpd.confの下部で、コメントを解除する必要があるかもしれません。

Include conf/*.conf

関連情報