(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 触ったときはこれを付けた記憶がなかったんで、すっかり見落としてました。
やっぱり頭ん中の記憶だけに頼るとミスりますね。。。
参考: