Apache-バーチャルホストを設定する(VirtualHost)

Apache(アパッチ)のVirtualHostにより、より本番に近い環境でテスト環境を構築する方法をご紹介します。

独学!未経験からWebデザイナーになる!! > テクニカルノート > テスト用Webサーバーの設定 > バーチャルホストを設定する

バーチャルホストを設定する

はてなブックマークに登録  Yahoo!ブックマークに登録  この記事をクリップ!

ローカルでテストサーバーを立てると、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-vhosts.conf

でファイル内を検索します。もし検索で見つからなかったらこのままhttpd.confをいじりますので、ファイルの一番最後など分かりやすい位置に移動し、次の項目に進んでください

見つかった方は、大体下記のような表示になっているでしょうか(右側のパス部分は多少異なることもあるかもしれません)。

# Include conf/extra/httpd-vhosts.conf

該当行を下記のようにコメントアウトし、httpd.confを保存します。そして赤文字部分に記載されているファイルパス(httpd.confからの相対パスです)を頼りに、そのファイル[ httpd-vhost.conf ]を開きます。これからの説明は、httpd-vhost.confをいじってください。

■変更前
# Include conf/extra/httpd-vhosts.conf

■変更後
Include conf/extra/httpd-vhosts.conf

バーチャルホストの設定をする

下記のような文字をファイル内に貼り付けてください。なお、灰色の文字は任意のメールアドレス、青文字は、サイトのデータが入っているディレクトリ、赤文字は、今回ローカル環境でアクセスしたいホスト部分です。

# ↓すでに記載がある場合は、NameVirtualHostの指定は不用です
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では右クリックして表示されるコンテキストメニューの「管理者として実行」でないと編集できません。なお、ファイルの拡張子がないので驚かれるかもしれませんが、テキストエディタで開いてください。

C:\WINDOWS\system32\drivers\etc\hosts

Macでは、下記にありますがhttpd.confと同様、ファインダーでは行きづらい場所にあります。また、保存には管理者権限も必要になります。基本的には、httpd.confと同様の方法を用いて変更してください。

/private/etc/hosts
hostsファイルの修正箇所

ファイルの一番下の方に追加する形で、下記を入力します。

127.0.0.1 local.hogefoobar.co.jp

なお、127.0.0.1とlocal.hogefoobar.co.jpの間はタブまたは半角スペースで区切ってください。それが終了したら、hostsファイルを保存し、Apacheを再起動します。

その後、ブラウザのアドレスバーにhttp://local.hogefoobar.co.jp/ と入力して、ローカルのサイトが表示されたら完了です!

一文字でも間違うとダメ

私もよくやりますが、ほんの一文字でも間違ってしまうとうまくいきません。もし上記でうまく行かない場合は、設定ミスがないかをよく確認してください。また、hostsが反映されるまでに多少時間がかかる場合があります。念のためブラウザを再起動してみるのもいいでしょう。

はてなブックマークに登録  Yahoo!ブックマークに登録  この記事をクリップ!
テクニカルノート
テスト用Webサーバーのインストール
Apacheのインストール for Windows
XAMPPのインストール for Windows
MAMPのインストール for Mac
テスト用Webサーバーの設定
外部からのアクセスを制限する
ドキュメントルートを変更する
├バーチャルホストを設定する
.htaccessを有効にする
.htaccessの設定
エラーページを指定する
特定のファイル・ディレクトリのアクセスを拒否する
簡易的なユーザ認証をする
 ホームページへ戻る

独学!未経験からWebデザイナーになる!! > テクニカルノート > テスト用Webサーバーの設定 > バーチャルホストを設定する