匿名質問者

Apache でバーチャルホストの設定をしているのですが、ドキュメントルートを読んでくれません。


<VirtualHost xxx.255.118.79:80>
ServerAdmin hoge@hoge.foo.com
DocumentRoot /var/www/html
ServerName main.foo.com
ErrorLog logs/main.foo.com-error_log
TransferLog logs/main.foo.com-access_log
</VirtualHost>

<VirtualHost xxx.255.118.79:8080>
ServerAdmin hoge@hoge.foo.com
DocumentRoot /opt/another_www/
ServerName anotherhost.foo.com
ErrorLog logs/host.foo.com-error_log
TransferLog logs/host.foo.com-access_log
</VirtualHost>

port が 8080 でアクセスしても /var/www/html を読んでしまいます。
httpd -S で確認したところ、ちゃんと設定できているようにも見えるのですが、何がまちがっているのでしょうか?

[iron@birdwatch html]$ sudo httpd -S
VirtualHost configuration:
xxx.255.118.79:80 main.foo.com (/etc/httpd/conf/httpd.conf:1012)
xxx.255.118.79:8080 anotherhost.foo.com (/etc/httpd/conf/httpd.conf:1020)
Syntax OK

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2014/01/30 03:50:52

ベストアンサー

匿名回答1号 No.1

> port が 8080 でアクセスしても /var/www/html を読んでしまいます
/var/www/html をアクセスしてしまうのは、このデフォルトサーバの名前で呼び出されているか、他のバーチャルホストに合致しない場合のハズです。
つまり、(デフォルトではない)バーチャルホストの期待されている呼び出し方ではないのだろうと予想します。


> xxx.255.118.79:8080 anotherhost.foo.com
となっているので、anotherhost.foo.com:8080 でアクセスしないとダメなのでは?

匿名質問者

そのとおりでした。Virtual Host を呼び出すのは、Apache が動いているマシンだから、インターナルのIPにしないといけなかったんですね。
<VirtualHost *:8080>
で、期待通り /opt/another_www/ が表示されるようになりました。
ありがとうございました。

2014/01/30 03:50:11

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません