バーチャルホストを設定する
ローカルでテストサーバーを立てると、http://localhost/でアクセスできるようになります。この方法で複数のサイトをテストするには、一つ目のサイトがhttp://localhost/hogefoobar1.co.jp/ で、二つ目のサイトが http://localhost/hoagefoobar2.co.jp/ という具合になるでしょうか。しかし、このような方法は一つ問題点が出てきます。それは、本番サーバーと階層が異なってしまうということです。
たとえば、本番のURIがhttp://www.hogefoobar1.co.jp/というサイトだったとします。これを先ほどの方法でローカル管理するには http://localhost/hogefoobar1.co.jp/ ということになるでしょう。しかしそれでは公開ディレクトリからの階層が異なるため、[ / ]から始まる絶対パス指定がくるってしまいます。これでもテストすることは可能ではありますが、できるだけ本番に近い形でテストした方が便利なことも多いでしょう。
そんな時に使われるのがバーチャルホスト(VirtualHosts)という機能です。この機能を使えば、例えばローカルでは http://local.hogefoobar.co.jp/、本番サーバではhttp://www.hogefoobar.co.jp/などのようにアクセスすることができるようになります。このページでは、そんな非常に便利なバーチャルホストの設定方法について説明します。
当サイトに記載されているものは、全て学習目的のローカルテストサーバー向けです。その他の用途には適切でない可能性もありますのでご注意下さい。
バーチャルホストの設定方法
今回は下記のような状態を、
http://www.hogefoobar.co.jp/
■テストサーバ
http://localhost/hogefoobar.co.jp/
■サイトのデータが入っているローカルのディレクトリ
D:/www/hogefoobar.co.jp
下記のように変更するという前提で話を進めていきます。
http://www.hogefoobar.co.jp/
■テストサーバ
http://local.hogefoobar.co.jp/
■サイトのデータが入っているローカルのディレクトリ
D:/www/hogefoobar.co.jp
バーチャルホストの設定ファイルを開く
まずはバーチャルホストの設定ファイルを開きます。まずはhttpd.confを検索機能付きのエディタで開いてください。開いたら、
でファイル内を検索します。もし検索で見つからなかったらこのままhttpd.confをいじりますので、ファイルの一番最後など分かりやすい位置に移動し、次の項目に進んでください。
見つかった方は、大体下記のような表示になっているでしょうか(右側のパス部分は多少異なることもあるかもしれません)。
該当行を下記のようにコメントアウトし、httpd.confを保存します。そして赤文字部分に記載されているファイルパス(httpd.confからの相対パスです)を頼りに、そのファイル[ httpd-vhost.conf ]を開きます。これからの説明は、httpd-vhost.confをいじってください。
# Include conf/extra/httpd-vhosts.conf
■変更後
Include conf/extra/httpd-vhosts.conf
バーチャルホストの設定をする
下記のような文字をファイル内に貼り付けてください。なお、灰色の文字は任意のメールアドレス、青文字は、サイトのデータが入っているディレクトリ、赤文字は、今回ローカル環境でアクセスしたいホスト部分です。
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin example@example.jp
DocumentRoot "D:/www/hogefoobar.co.jp"
ServerName local.hogefoobar.co.jp
ErrorLog "logs/local.hogefoobar.co.jp"
</VirtualHost>
上記の設定を簡単に説明すると、http://local.hogefoobar.co.jpでアクセスしたときは、DocumentRootはD:/www/hogefoobar.co.jpですよ、ということを設定しているということです。上記でいったんファイルを保存してください。
hostsファイルを修正する
http://local.hogefoobar.co.jpでアクセスしたとき、と言いましたが、実際にはそんなアドレスは存在しません。どうやってそのURIをローカルサーバに向けるかというと、hostsファイルを修正して、そのコンピュータからのアクセスのみ、http://local.hogefoobar.co.jpを、自分のコンピュータに向けるのです。
hostsファイルの場所
Windowsでは、下記の場所にあります。VISTAでは右クリックして表示されるコンテキストメニューの「管理者として実行」でないと編集できません。なお、ファイルの拡張子がないので驚かれるかもしれませんが、テキストエディタで開いてください。
Macでは、下記にありますがhttpd.confと同様、ファインダーでは行きづらい場所にあります。また、保存には管理者権限も必要になります。基本的には、httpd.confと同様の方法を用いて変更してください。
hostsファイルの修正箇所
ファイルの一番下の方に追加する形で、下記を入力します。
なお、127.0.0.1とlocal.hogefoobar.co.jpの間はタブまたは半角スペースで区切ってください。それが終了したら、hostsファイルを保存し、Apacheを再起動します。
その後、ブラウザのアドレスバーにhttp://local.hogefoobar.co.jp/ と入力して、ローカルのサイトが表示されたら完了です!
一文字でも間違うとダメ
私もよくやりますが、ほんの一文字でも間違ってしまうとうまくいきません。もし上記でうまく行かない場合は、設定ミスがないかをよく確認してください。また、hostsが反映されるまでに多少時間がかかる場合があります。念のためブラウザを再起動してみるのもいいでしょう。


