XAMPPでバーチャルホスト

XAMPPで複数のサイトを作りたい場合の方法。

XAMPPのデフォルトでは、http://localhost/ を開くと C:\xampp\htdocs\ を表示するが、他の場所のフォルダを参照して別のドメインで表示させたい場合の手順。

この記事を作成した環境は以下のとおり。

  • Windows10
  • XAMPP 7.1.1
  • XAMPPはC:\xamppにインストール

hostsを編集

C:\Windows\System32\drivers\etc にある hosts ファイルを開き、末尾に「127.0.0.1 ドメイン名」と追記する。

127.0.0.1 works.localhost

ドメイン名はなんでもいい。local2 でも hoge.hoge でも。

apacheの設定

C:\xampp\apache\conf\extra\httpd-vhosts.conf の20行目あたりにある

##NameVirtualHost *:80

のコメントアウト(##)を消す。

さらにファイルの末尾に以下の内容を追記する。参照したいフォルダの場所が D:\web の場合の例。

<VirtualHost *:80>
#   参照したいフォルダの場所
    DocumentRoot "D:\web"
#   hostsファイルに書いたドメイン名
    ServerName works.localhost
</VirtualHost>
<Directory "D:\web">
#   フォルダの動作や表示に関するオプション
    Options Indexes FollowSymLinks
#   .htaccessを有効にする
    AllowOverride All
#   フォルダに対するアクセスを許可する これがないと403になる
    Require all granted
</Directory>

9行目の Indexes はフォルダの一覧を表示する設定なので、必要なければ削っていい。
また、Wordpressを動かしたい場合、同じ行の「FollowSymLinks」がないと動かないので注意。 これで1時間ぐらいハマった……。

Optionsの詳細は以下のページを参照。

設定が終わったらXAMPPのapacheを再起動して、新しく設定したドメイン(ここでの例なら http://works.localhost/)にアクセス。