XAMPPで複数のバーチャルホストの設定を簡単にする方法

公開

(ずっと昔から使っている方法なのですが、書籍などで紹介されているのを見たことがないので記事にしてみました。)

ディレクトリを作成し、Hostsファイルを設定するだけで新しいバーチャルホストとしてアクセスできるようにする方法です。下記設定方法の通りに設定した場合、http://foo.localhost/はD:\Sites\foo\htdocsの内容を、http://bar.localhost/はD:\Sites\bar\htdocsの内容を表示するようになります。

これにより、バーチャルホストが増えるごとにhttpd-vhosts.confを設定したり、XAMPPのhtdocs内のファイルを入れ替えたりする手間が省け、案件ごとにファイルを管理するのも非常に楽になると思います(foo、barには案件名を英数字で設定します)。XAMPP for Mac OS Xなどをはじめ、Apacheであれば同様の設定が可能です。

設定方法

  1. xampp\apache\conf\httpd.confの編集
    1. LoadModule vhost_alias_module modules/mod_vhost_alias.soのコメントアウトを外す
    2. Include "conf/extra/httpd-vhosts.conf"のコメントアウトを外す
  2. xampp\apache\conf\extra\httpd-vhosts.confに下記を追記
    <VirtualHost *:80>
     ServerName localhost
     DocumentRoot "D:/xampp/htdocs"
    </VirtualHost>
    
    <VirtualHost *:80>
     ServerAlias *.localhost
     VirtualDocumentRoot "D:/Sites/%1/htdocs/"
     <Directory "D:/Sites/*/htdocs/">
     order deny,allow
     allow from ALL
     Options Indexes FollowSymLinks ExecCGI IncludesNoExec
     </Directory>
    </VirtualHost>
  3. Apacheを再起動します。

備考

  • htdocsと同じ階層にmaterials等のディレクトリを作ると、案件ごとに素材とHTML文書などを一緒に管理できて便利だと思います。
  • Macでhostsファイルを編集するには、Hosterというアプリが便利です。