ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

windowsでapacheのNAME virtualhostをやってみた

NAMEベースの バーチャルホスト を設定してみる。
(windows XP Home SP2 / apache2.2.3)

NAMEベースのバーチャルホスト:
 IP一つで二つの名前を持つようにすること(だと思う)
 ブラウザが送ってくるホスト名から応答ホストを決定する方式。(ということは、ブラウザがホスト名を送ってこないと動かないのか? ←あとで調べる)

apacheは、インストーラ形式のを普通にインストールしただけの状態。

まずhttpd.confの
# Virtual hosts
#Include conf/extra/httpd-vhosts.conf

のコメントをはずす。
# Virtual hosts
Include conf/extra/httpd-vhosts.conf

これでextra/httpd-vhosts.confが読み込まれるようになる。

次にextra/httpd-vhosts.confを見る。
VirtualHostディレクティブがすでに二つ書かれてるので、
中身を適当に書き換える。

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot "C:/hogehoge/apache/htdocs"
ServerName vh1.localhost
ServerAlias www.dummy-host.
ErrorLog logs/vh1-error.log
CustomLog logs/vh1-access.log common
</VirtualHost>

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot "C:/hogehoge/apache/htdocs_2"
ServerName vh2.localhost
ServerAlias www.dummy-host.
ErrorLog logs/vh2-error.log
CustomLog logs/vh2-access.log common
</VirtualHost>


あとは設定したDocumentRootに実ファイルをおく。(順番的にはファイル置いてから設定な気がするけど気にしない) 一応、それぞれのindex.htmlは、"It works! (hv1)" と "It works! (hv2)" というように区別できるように書いておいた。

これでapacheを再起動してみる。

http://vh1.localhost/にアクセス
サーバが見つかりません。

http://vh2.localhost/にアクセス
サーバが見つかりません。

だめでした。名前解決ができてない。

hostsにAliasを設定する。
XPなら "C:\WINDOWS\system32\drivers\etc\hosts" があるはず。
127.0.0.1 localhost

たぶんデフォルトだとこの状態なので、以下のように書き換える。
(このファイルに山ほどIPとホスト名があって、特に身に覚えがない場合、たぶん怪しいソフトにやられてますので、調べるなり何なりしましょう)

127.0.0.1 localhost vh1.localhost vh2.localhost



よし、見れるハズ。

http://vh1.localhost/にアクセス
It works! (hv1)

http://vh2.localhost/にアクセス
Forbidden
You don't have permission to access / on this server.

だめでした。403ということはアクセス制限っぽい何かでしょう。
さっき設定したエラーログに
[Mon Jan 15 20:37:15 2007] [error] [client 127.0.0.1] client denied by server configuration: C:/hogehoge/apache/htdocs_v/

こんなのが出てる。
extra/httpd-vhosts.conf に
<directory "C:/hogehoge/apache/htdocs_v">
order deny,allow
deny from ALL
allow from ALL
</directory>


を追記しないとダメっぽい。

さて、見れるハズ。

http://vh1.localhost/にアクセス
It works! (hv1)

http://vh2.localhost/にアクセス
It works! (hv2)


やったー動いた。

名前解決をhostsに書いてるから、hosts書いたこのマシンからしかアクセスできないけど、そこは本題じゃないから無視!
スポンサーサイト
  1. 2007/01/15(月) 21:21:58|
  2. その他
  3. | トラックバック:0
  4. | コメント:0
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。