3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

(Apache)名前バーチャルホストでハマった

Apache2.2の話。

LAN内にDNSサーバ持ってるので、それでWEB開発用PCに複数のホスト名をふって、名前バーチャルホストで開発サイトを簡単に切り替えられるようにしたかったんですが、ハマりました。

最初、httpd.conf には下記のように設定してました。

80>

ServerName pc1

DocumentRoot "D:/eclipse_workspace/site1/public_html/"

ErrorLog logs/error_log

TransferLog logs/access_log

"D:/eclipse_workspace/site1/public_html/">

Options Indexes FollowSymLinks

AllowOverride All

order deny,allow

deny from ALL

allow from ALL

 

80>

ServerName pc2

DocumentRoot "D:/eclipse_workspace/site2/public_html/"

ErrorLog logs/error_log

TransferLog logs/access_log

"D:/eclipse_workspace/site2/public_html/">

Options Indexes FollowSymLinks

AllowOverride All

order deny,allow

deny from ALL

allow from ALL

で、二つ目のバーチャルホスト(http://pc2/)にアクセスしても、pc1で設定したほうが表示されます。

あれっ?と思って、Apacheのログを見ると、

[warn] _default_ VirtualHost overlap on port 80, the first has precedence

ってなってました。

最初に設定したバーチャルホストが有効になってるっぽいです。

で、調べてみると、下記の設定が抜けてました。

NameVirtualHost *:80

ずっと前に Apahce 触ったときはこれを付けた記憶がなかったんで、すっかり見落としてました。

やっぱり頭ん中の記憶だけに頼るとミスりますね。。。

参考:

apache2.2 バーチャルホストの設定 前編

Apacheドキュメント