ブログ

【XAMPP】バーチャルホストを設定して複数ドメインに対応させる方法

バーチャルホスト設定を有効にすれば、ドメイン毎にディレクトリを分けてWordPressなどをインストールできるので、新しい案件に着手する度に、以前のサイトを削除しなければならないといった手間が省けます。

今回はXAMPPのバーチャルホスト設定を有効にして、複数のディレクトリにサイトを構築する方法をご紹介します。

バーチャルホストの設定方法

XAMPPのバーチャルホスト設定で複数ドメインに対応させるには、XAMPP自体の設定以外にWindows側の設定も必要です。

XAMPPの設定

httpd.confの設定

以下のディレクトリにあるhttpd.confを開いて、520行目付近にある以下の項目の先頭に「#」が無いことを確認します。

■httpd.confの場所

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


■httpd.conf 520行目

Include conf/extra/httpd-vhosts.conf

「#」がついてる(コメントアウトされている)場合、バーチャルホストの設定ファイルが読み込まれない状態になっていますので#を消してください。

バーチャルホスト設定ファイルの修正

以下のディレクトリにあるhttpd-vhosts.confを開いて、一番下の行に以下の通り記述します。

■httpd-vhosts.confの場所

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

##<VirtualHost *:80>
    ##ServerAdmin webmaster@dummy-host2.example.com
    ##DocumentRoot "C:/xampp/htdocs/dummy-host2.example.com"
    ##ServerName dummy-host2.example.com
    ##ErrorLog "logs/dummy-host2.example.com-error.log"
    ##CustomLog "logs/dummy-host2.example.com-access.log" common
##</VirtualHost>

#以下を1ホスト分として追記する
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/dummy-host.example.com"
ServerName dummy-host.example.com
</VirtualHost>

<Directory "C:/xampp/htdocs/dummy-host.example.com">
AllowOverride All
Require all granted
</Directory>

上記の場合は「dummy-host.example.com」というURLで「C:\xampp\htdocs」に設置した「dummy-host.example.com」というフォルダにアクセスする場合の書き方です。このフォルダ内に設置したファイルがバーチャルホストのサイトとして表示されます。

Windows側の設定

hostsファイルの編集

XAMPPとしての設定は完了しましたが、このままでブラウザからアクセスできませんので、Windowsのhostsファイルを編集します。hostsファイルは以下のディレクトリにあります。

※hostsファイルはシステムファイルです。編集は自己責任でおこなってください!

C:\Windows\System32\drivers\etc\

なお、hostsファイルは管理者権限でなければ編集・保存できません。管理者権限として編集する方法はここでは割愛します。

# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
#	127.0.0.1       localhost
#	::1             localhost

#hostsの一番下に以下を追記
127.0.0.1 dummy-host.example.com

XAMPPの再起動

ここまでの設定が終わったらapacheを再起動してください。再起動しないとアクセスできません。

「Apache」の項目にある「Stop」をクリックした後「Start」させてください。

上記で、http://dummy-host.example.comにアクセスするとWEBサイトが表示されるようになります。

バーチャルホスト追加の流れ

別のバーチャルホストを追加したい場合は、上記手順「バーチャルホスト設定ファイルの修正」から同じ作業を繰り返してください。

参考までに、管理人の作業の流れをご紹介します。

ドキュメントルートの設置

管理人はドキュメントルート(各サイト毎のフォルダ)をEドライブに指定し、フィルダ名を「VirtualHost」としていますので、以下のディレクトリに各クライアントのディレクトリを作成します。

E:\VirtualHost\ディレクトリ名

httpd-vhosts.confの編集

作成したディレクト(バーチャルホスト)を設定します。httpd-vhosts.confに以下を追記。

ちなみにアクセスするドメインですが、管理人は以下のルールで設定しています。

  • ディレクトリ名は都度任意だがどの顧客かわかる名前にする
  • ドメインは「本番ドメイン.localhost」とする

「本番ドメイン.localhost」とするのは、本番サイトにUPする際にDBなどの置換が.localhostの部分だけなので確認しやすい?のと、ドメインでどのクライアントかすぐ判断できるようにするためです。本番ドメインが「example.com」なら「example.localhost」とします。

<VirtualHost *:80>
DocumentRoot "E:\VirtualHost\ディレクトリ名"
ServerName 本番ドメイン.localhost
</VirtualHost>

<Directory "E:\VirtualHost\ディレクトリ名">
AllowOverride All
Require all granted
</Directory>

hostsファイル編集

hostsファイルにローカルループバックアドレス(127.0.0.1)を追記します。

# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
#	127.0.0.1       localhost
#	::1             localhost

127.0.0.1 dummy-host.example.com
127.0.0.1 本番ドメイン.localhost

apache再起動

apacheを再起動します。

まとめ

ローカルの環境でサーバーサイドでしか動作しない案件の構築には必須のソフトです。ただし、CGI(Perl)を動かすときは多少設定が複雑です。デフォルトでは「/cgi-bin/」ディレクトリでしかCGIは動作しないので、それ以外のディレクトリで動作させるには色々と変更しなければならず、一気に敷居が高くなります。しかしPHPは何の設定もなく動きますので、WordPressやEC-CUBEなどの構築には何の支障もありませんのでご安心ください。

ただ、XAMPP自体によく不具合が起こります。気を付けてれば大丈夫なんですが、XAMPPを正常に終了させないとSQLに接続できなくなったりします。


以上、XAMPPでバーチャルホストを設定して複数ドメインに対応する方法のご紹介でした。

最近の記事 おすすめ記事
PAGE TOP