apacheのバーチャルホストの設定について
XAMPPを一通りインストールして、apacheでバーチャルホストの設定を行っております。
環境:Windows2003server
ApacheFriends XAMPP (Basispaket) version 1.7.1 + Apache 2.2.11
固定のグローバルIPアドレスは1つ持っており、仮に111.222.333.444としておきます。
バーチャルホストのドメイン名は2つ設定したいと思っており、
aaa.hogehoge.net
bbb.hogehoge.net
他業者のDNSにて111.222.333.444をAレコードの値として、それぞれ割り当てしました。
ちなみに、hogehoge.netのAレコードは別のサーバーを当てています。
そこで、携帯から直接 http://aaa.hogehoge.netとhttp://bbb.hogehoge.net
をアクセスしましたら、自社サーバーのC:/xampp/htdocs/にあるindex.htmが表示されました。
一応、名前解決は成功したとして、、、
念のため、Windowsのhostsに
111.222.333.444 aaa.hogehoge.net bbb.hogehoge.net
を追加しました。
apacheのメイン設定-httpd.conf
------------------------------
ServerRoot "C:/xampp/apache"
Listen 80
ServerAdmin admin@localhost
ServerName localhost:80
DocumentRoot "C:/xampp/htdocs/"
↓バーチャルホストのファイルをインクルード
Include conf/extra/httpd-vhosts.conf
----以下、httpd-vhosts.confの中身 ホスト名を2つ設定
NameVirtualHost 111.222.333.444:80
<VirtualHost 111.222.333.444:80>
ServerAdmin admin@aaa.hogehoge.net
DocumentRoot C:/xampp/htdocs/aaa.hogehoge.net
ServerName aaa.hogehoge.net
ServerAlias www.aaa.hogehoge.net
<Directory "C:/xampp/htdocs/aaa.hogehoge.net">
Options FollowSymLinks Includes ExecCGI
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost 111.222.333.444:80>
ServerAdmin admin@bbb.hogehoge.net
DocumentRoot C:/xampp/htdocs/bbb.hogehoge.net
ServerName bbb.hogehoge.net
ServerAlias www.bbb.hogehoge.net
<Directory "C:/xampp/htdocs/bbb.hogehoge.net">
Options FollowSymLinks Includes ExecCGI
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
設定後、apacheを再起動して、再度携帯電話からhttp://aaa.hogehoge.netとhttp://bbb.hogehoge.netにアクセスしたのですが、C:/xampp/htdocs/にあるindex.htmが表示されてしまい、C:/xampp/htdocs/aaa.hogehoge.net/index.htm、C:/xampp/htdocs/aaa.hogehoge.net/index.htmが表示されません。それぞれのパーミッション自体は766になっているので、こちらは違うと思うのですが、バーチャルホストの設定が悪いのか何処が悪いのか、何か設定が悪いのか全くわからなくなりました。参考書のマニュアルを見ると、「バーチャルホストを設定すると、メインホストの設定が無効になる」と書いてあったので、それでもメインのホストが表示されてしまうということは、バーチャルホストの設定に問題があるのだと自分なりに察知しております。
どなたか、考えられる原因や心当たりある事がございましたら、ご教授をお願いします。
お礼
迅速なご回答ありがとうございます。 今しらべてたのですが LoadModule vhost_alias_module modules/mod_vhost_alias.so <IfModule mod_vhost_alias.c> VirtualDocumentRoot "/var/www/html/%-3+" </IfModule> たったこれだけの記述で、後は%uにあたる名前のディレクトリを作るだけで httpdの再起動をしたりすることなく、いくらでもバーチャルホストを追加できるんですよ。 ということがわかりました。