XAMPP:VirtualHost(バーチャルホスト)の設定

XAMPP:VirtualHost(バーチャルホスト)の設定

author : koki

publish date :

XAMPPをインストールしたPCで複数サイトの環境を準備することができるのをご存知ですか?
ひとつのサーバに複数の環境を用意する技術をVirtualHost(バーチャルホスト)といいます。本記事ではバーチャルホストの設定方法についてご紹介します。

  • windows7での設定方法について書いています
  • 本記事では「Windowsv 向け XAMPP 5.6.3 (PHP 5.6.3)」を使用しています
  • XAMPPをCドライブ直下(C:¥)にインストールしている前提で話を進めます
  • ローカル・ループバック・アドレス(http://localhost/http://127.0.0.1/)はhttp://localhost/として説明します

VirtualHost(バーチャルホスト)とは

バーチャルホストはApacheの機能で、バーチャルホストを設定することによって1つのサーバ上で複数のサーバ環境を作成・運用することができます。 バーチャルホストを設定を大きく分けると「IPベース」と「名前ベース」の2種類のあります。
詳しいことは割愛ししますが、「IPベース」は1台のサーバ に複数のIPアドレスを割り当てて複数のwebサイトを運用する方法で、「名前ベース」は1つのIPアドレスに対して複数のドメインを動かし複数のweb サイトを運用する方法です。

XAMPPでバーチャルホストの設定をする場合は「名前ベース」の方法で設定することになります。

バーチャルホストについて詳しく知りたい方は「@IT」で公開されている「バーチャルホストによる複数サイトの同時運用」を参照してみてください。

「名前ベース」バーチャルホスト

「名前ベース」にもいくつか設定する方法があります。私がよく設定する方法をご紹介します。

ネットで「XAMPP バーチャルホスト」で検索をすると、方法2の検索結果が多く見られますが、方法1の方が書き換えるファイルが手順が少なくすむのでオススメです。

方法1:ポートにサイトを割り当てる方法

1. バーチャルホストのconfファイルに追記

編集するファイルはhttpd-vhosts.confです。

ファイルの保存場所はC:¥xampp¥apache¥conf¥extra¥httpd-vhosts.confです。
ファイルの最後に下記フォーマットで追記をし、保存してください。

Listen 4000
<VirtualHost *:4000>
	DocumentRoot "C:¥xampp¥htdocs¥newport"
</VirtualHost>

ここで書いている「4000」というのはポート番号です。
「DocumentRoot」にはドキュメントルートに設定したいディレクトリのパスを書きます。

2. Apacheの再起動

XAMPPのコントロールパネルより、Apacheの再起動をします。

3. 接続確認

http://localhost:4000/へアクセスし、ページが開けたら完了です。

これでおしまいです!慣れてしまえば、1分足らずで新しい環境を作成できてしまいます。

よくある失敗

追加するバーチャルホストの設定に誤りがあるとApacheが起動しない事があります。他にもすでに使用されているポートをApacheに割り当てしようとすると、エラーが起こりApacheが起動しなくなります。
うまくApacheが起動しない時は追加したバーチャルホストの設定に誤りがないか確認して下さい。

方法2:1つのポートに複数のサイトを割り当てる方法

バーチャルホストの設定の前に・・・

こちらの方法で設定をする場合はhostsファイルのを編集する必要があるのですが、hostsファイルは管理者権限のあるユーザでログインしたとしてもファイルの編集ができないようになっています。まずはファイルの編集ができるようにします。

説明が少し長くなってしまうので、Windows:Windows7でのhostsファイルの編集方法を参考にしてください。

1. バーチャルホストのconfファイルに追記

編集するファイルはhttpd-vhosts.confです。

ファイルの保存場所はC:¥xampp¥apache¥conf¥extra¥httpd-vhosts.confです。

ファイルの最後に下記フォーマットで追記をし、保存してください。

NameVirtualHost *:80
<VirtualHost *:80>
	DocumentRoot "C:¥xampp¥htdocs¥newhost"
	ServerName newhost
</VirtualHost>

「DocumentRoot」にはドキュメントルートに設定したいディレクトリのパスを書きます。
「ServerName」部分に割り当てたい名前を書きます。

2. hostsファイルを設定する

編集するファイルはhostsです。拡張子はありません。

ファイルの保存場所はC:¥Windows¥System32¥drivers¥etcです。
ファイル最下部に下記フォーマットで追記してください。

127.0.0.1       localhost
127.0.0.1       newhost

3. Apacheの再起動

XAMPPのコントロールパネルより、Apacheの再起動をします。

4. 接続確認

http://newhost/へアクセスし、ページが開けたら完了です。

補足

今回の例では「ServerName」を「newhost」として追加をしましたが、「newhost.com」と設定すれば、http://newhost.com/でローカル環境へ接続できるようになります。

【注意!】
本番環境と同じホスト名にした場合、本番環境には繋がらなくなりますのでご注意ください。

最後に・・・

方法2は方法1よりも手順がひとつ増えるだけですが管理するファイルが増えてしまうのと、本番環境と開発環境の違いがわかりにくくなるのが嫌なので私は方法1でバーチャルホストの設定をしています。

他にもバーチャルホストの設定方法がありますので興味がある方は調べてみてください。

The Apache HTTP Server Projectで11種類の方法が書かれていますので、リンクを張っておきます。