解 説

バーチャルホストとは1つのサーバで複数のドメインを運用することです。
バーチャルホストはXAMPPやMAMPでも作成することができます。
今回はXAMPPやMAMPでのバーチャルホスト作成の手順について説明します。

XAMPPやMAMPをインストールすると標準ではhtdocsがドキュメントルートになります。
htdocsにファイルを置くことで「localhost/〜」のアドレスでブラウザからファイルを読み込むことができるようになります。
けれども、初期状態ではドキュメントルート直下には一つのサイトしか置くことができません。
そこでバーチャルホストを導入することで複数の開発サイトを同時に作成することができるようになります。
また、実際と同じドメイン名を指定することで、PHPなど本運用の時の設定と同じ環境設定をすることができます。

MAMPでのバーチャルホストの作成方法

httpd.confの設定

まず、httpd.confの設定を行います。と言っても難しいことはなくコメントアウトされている部分を外すだけです。
行なっている内容は、「バーチャルホストの設定を読み込むよ!」ということです。
MACでの「httpd.conf」の場所のパスは次のようになります。

/Applications/MAMP/conf/apache/httpd.conf

手順

httpd.confをエディッタで開きます。
以下のコードを探します。

# Virtual hosts
#Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf

次のように変更します。(includeの方の#を取り除きます。)

# Virtual hosts
Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf

httpd-vhosts.conf の設定

次に、httpd-vhosts.conf の設定を行います。
httpd-vhosts.confのパスは以下の通りです。

C:¥xampp¥apache¥conf¥extra¥httpd-vhosts.conf

バーチャルホストを使用する場合は「NameVirtualHost *:80」部分のコメントアウト#を取ります。これでバーチャルホストが使えるようになります。

/Applications/MAMP/conf/apache/extra/httpd-vhosts.conf

次に、「httpd-vhosts.conf」ファイルで行うことは追記することです。
追記する内容は用途に応じて変わります。

80番ポートでsample.localhostのアドレスにする場合

「htdocs」に「sample」フォルダを作成してそのフォルダに対して「sample.localhost」のようなアドレスでアクセスできれば良い場合の設定。

DocumentRoot "/Applications/MAMP/htdocs/sample"
ServerName sample.localhost

80番ポートでexample.comなどの実際のドメイン名にする場合

「htdocs」に「example.com」フォルダを作成してそのフォルダに対して「example.com」のような実際のドメイン名でアクセスしたい場合の設定。

DocumentRoot "/Applications/MAMP/htdocs/example.com"
ServerName example.com

80番ポート以外のポートを使用する場合

80番ポート以外を使用する場合は「Listen 8001」のようにポート番号を指定します。
また、「VirtualHost *:8001」部分にもポート番号を指定します。

Listen 8001

    DocumentRoot "/Applications/MAMP/htdocs/example.com"
    ServerName example.com

hostsの設定

httpd-vhosts.conf の設定が終わったら、hostsの設定が必要です。
hostsとは、IPアドレスとホスト名の対応を記述したファイルです。
自分自身を表すIPアドレス127.0.0.1とホスト名を記述することでローカル環境で自身に作成したサーバーにアクセスする用途で使われています。

hostsの設定

hostsファイルの場所は次の通りです。

/private/etc

次のコードはhostsファイル設定例です。
「localhost」,「example.com」,「sample.localhost」とlocalhost以外に2つのバーチャルホストを運営する場合全てのホスト名を下記のようにhostsファイルのコードの最後に追記します。

127.0.0.1 localhost
127.0.0.1 example.com
127.0.0.1 sample.localhost

XAMPPでバーチャルホストを設定して複数のドメインを使う方法

まずは、httpd.confファイルの記述でバーチャルホストの設定を読み込む設定になっているか確認します。
バーチャルホスト設定ファイルは以下のパスです。

C:¥xampp¥apache¥conf¥httpd.conf

「httpd.confファイル」の「Include conf/extra/httpd-vhosts.conf」部分の先頭のコメントアウト「#」があったら削除します。

バーチャルホストの設定ファイル編集

今回は「example.com」というURLで「C:\xampp\htdocs」のexample.comフォルダにアクセスできるように」します。
バーチャルホストのconfファイルを編集するファイルは「httpd-vhosts.conf」です。
ファイルのパスは次の通りです。

C:¥xampp¥apache¥conf¥extra¥httpd-vhosts.conf

まずは、「httpd-vhosts.conf」の20行目あたりの「NameVirtualHost」部分のコメントアウトの「##」を削除します。
「htdocs」内に「example.com」というフォルダを作ってテスト用のindex.html作成しておきます。

次に「httpd-vhosts.conf」ファイルの最後の行に以下の記述を追加します。

DocumentRoot "C:\xampp\htdocs\example.com"
ServerName example.com

hostsの設定

次にhostsファイルを編集します。

ファイルのパスは次のところです。

C:\Windows\System32\drivers\etc\hosts

しかし、hostsファイルは管理者権限でないと編集することができません。管理者権限でログイン指定てもWindows10の場合hostsファイルは編集できませんので、一旦デスクトップにhostsファイルを移動します。そうすると編集できるようになります。
そして、編集後再び元の位置に戻します。
移動の際に管理者の暗証番号を聞かれる場合がありますので、暗証番号を入力してください。

hostsファイル記述内容

127.0.0.1 localhost
127.0.0.1 example.com