参考にさせて頂いたページ
バーチャルホストの例 - Apache HTTP サーバ バージョン 2.2
名前ベースの仮想ホスト - 仮想ホストの設定 - Apache入門
ホストマシン環境
ゲストマシン環境
httpd.confを確認と編集する
基本的にバーチャルホストの例 - Apache HTTP サーバ バージョン 2.2を参考にさせて頂いて進める。
suでログイン
ファイルの編集とか、apacheの再起動とかで権限が必要なのでsuで。
vagrant ssh
su
vagrant(パスワード)
ServerRootを確認する
/etc/httpd/conf/httpd.confを開くと、以下のようになっていると思う。
ServerRoot "/etc/httpd"
Listen 80
以下のようなところがあると思うので確認しておく。
たぶんそのままで大丈夫だけどListen 80
がもしコメントアウトされていたらコメント解除する。
#Listen 12.34.56.78:80
Listen 80
Include
以下のような箇所を確認する。
ここも最初からこういう風になっていると思うけど、一応確認しておく。
#
# Load config files from the config directory "/etc/httpd/conf.d".
#
Include conf.d/*.conf
ServerNameを一応つけておく
たぶん#ServerName www.example.com:80
とコメントアウトされている。
何かしら設定する必要があると思うので、一行追加して以下のようにしておいた。
#ServerName www.example.com:80
ServerName localhost:80
vagrantではとりあえず、以下のような適当な感じでも大丈夫だった。
hoge.foo.com:80
/etc/httpd/conf.d/httpd-vhosts.confを作成する
最初はconf.dディレクトリに、httpd-vhosts.confが無かったので、以下のような内容で作成した。
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /var/www/html/hoge
ServerName hoge.localhost.example
<Directory /var/www/html/hoge >
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
例えば、ブラウザでアクセスするときにhttp://hoge.localhost.example/hoge.htmlなどを公開するような設定。
vagrant内の/etc/hostsの編集
vagrantの仮想環境内に、/etc/hostsがあるので、元々の記述内容に一行追記して以下のようにした。
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1 hoge.localhost.example
httpd-vhosts.confの記述内容と合わせるので、127.0.0.1 hoge.localhost.example
とした。
Apacheを再起動する
以下のコマンドで再起動した。
service httpd restart
作業しているホストマシンのhostsを編集する
macなら/etc/hostsを編集するので、
cd /etc/
sudo vim hosts
みたいな感じで開いて、
192.168.33.10 hoge.localhost.example
と一行追記した。
192.168.33.10の部分はVagrantfile内で設定してあるIPと合わせる。
Windows7だと、c:¥windows¥system32¥drivers¥etc¥hostsにあると思う。
hoge.htmlの作成とアップロード
hoge.htmlを適当に作成して、DocumentRootに設定したディレクトリにアップロードする。
ここまで、サンプルコードの通りにやってきていたら、
となるような感じだと思う。
ブラウザで確認してみる
この段階で、以下のURLにアクセスすると、ようやくページが確認できると思う。
http://hoge.localhost.example/hoge.html
URLとDocumentRootを増やす
httpd-vhosts.confのNameVirtualHost *:80
の部分は何回も書かなくて良いけど、
<VirtualHost *:80>
DocumentRoot /var/www/html/hoge
ServerName hoge.localhost.example
<Directory /var/www/html/hoge >
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
の部分を丸ごと複製して、DocumentRootとかServerNameとか必要箇所を色々変更する。
あとは、vagrant内のhostsとホストマシンのhostsにURLを追記する。
logファイル
httpd-vhosts.conf内に、ErrorlogとかCustomLogの出力先も設定すると良さそう。
httpd-vhosts.confの設定内容
もっとhttpd.confの設定を見たりした。