XAMPP と MAMP のバーチャルホスト設定

XAMPPMAMPバーチャルホスト 設定について、職場が変わったりマシンを入れ替えたりするたびにいちいちググるのが面倒になったので、「とりあえずこれで動く!」という自分なりの設定を書いておく。各設定についての詳細は Apache のドキュメンテーション などを参照のこと。

XAMPP + Windows

XAMPP for WindowsC:\xampp にインストールしていて、E:\My Documents\Projects に複数のサイトのデータを格納している場合を想定する。各種設定は C:\xampp\apache\conf にある httpd.conf を編集することで行なう。このファイルは管理するサイトが増えるたびに開くことになるので、どこかにショートカットを作っておくとあとで楽。

まず、プロジェクト管理ディレクトリについて、SSI ほかオプションの使用を可能にし、またローカルからのみアクセスを許可する設定をカマす。httpd.conf の末尾に以下を記述。

<Directory "E:/My Documents/Projects">
    Options All
    Order Deny,Allow
    Deny from all
    Allow from localhost
</Directory>

次に、バーチャルホストを利用できるようにするため NameVirtualHost を記述。そしてサイトごとに <VirtualHost> ブロックを作成し、DocumentRoot でサイトのルートディレクトリを、ServerName で適当なホスト名を指定する。先ほどの <Directory> の記述に続けて、httpd.conf の末尾に以下のように追記していく。

NameVirtualHost *:80

<VirtualHost *:80>
    DocumentRoot "E:/My Documents/Projects/example"
    ServerName example.localhost
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "E:/My Documents/Projects/example2"
    ServerName example2.localhost
</VirtualHost>

...

ここではホスト名に .localhost という TLD を使ってるけど、ユニークなものであればどんな名前でも OK。

最後に、C:\WINDOWS\system32\drivers\etc にある hosts というファイルをテキストエディタなどで開く。httpd.conf で設定した ServerName の値ににしたがって、管理するサイトの分だけ以下のように追加していく。ちなみにこの hostshttpd.conf と同様にショートカットを作成しておくと便利。

127.0.0.1       localhost
127.0.0.1       example.localhost
127.0.0.1       example2.localhost
...

以上! XAMPP Control Panel から Apache を再起動 (いったん Stop して再度 Start) し、Web ブラウザで http://example.localhost/ を見ればサイトを確認することができるはず。

ついでに、拡張子が .html または .htm のファイルも SSI で利用できるようにしておくと便利。httpd.conf のどこかに AddOutputFilter INCLUDES .shtml という記述があるので、その行末に以下のように追記する。

AddOutputFilter INCLUDES .shtml .html .htm

MAMP + Mac OS X

MAMP/Applications/MAMP にインストールしてあり、/Users/<usdername>/Projects に複数のサイトのデータを格納している場合を想定する。

バーチャルホストの設定の前に、MAMP はポート番号が 8888 に設定されているので、これを HTTP のデフォルトである 80 に変更しておく。それには MAMP のコントロールパネルから「環境設定」を開き、「ポート」タブで「Apache と MySQL の標準ポートに設定」をクリックすればよい。このあたりは MAMP のインストール for Mac – 独学! 未経験から Web デザイナーになる!! でていねいに解説されているのでご参照されたし。

さて、XAMPP と同様、/Application/MAMP/conf/apache にある httpd.conf を開き編集する。どこかにエイリアスを作っておくのが吉。記述方法は XAMPP と同様で、以下のような感じで末尾に記述していく。

<Directory "/Users/<usdername>/Projects">
    Options All
    Order Deny,Allow
    Deny from all
    Allow from localhost
</Directory>

NameVirtualHost *:80

<VirtualHost *:80>
    DocumentRoot "/Users/<usdername>/Projects/example"
    ServerName example.localhost
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/Users/<usdername>/Projects/example2"
    ServerName example2.localhost
</VirtualHost>

...

そして Windows と同様に hosts ファイルを編集。Mac の場合は /private/etc ディレクトリにあるので、なんらかのエディタで開いて以下のようにホストを追加する。

127.0.0.1 localhost
...
127.0.0.1 example.localhost
127.0.0.1 example2.localhost
...

MAMP のコントロールパネルから Apache を再起動すれば完了!

なお MAMP で SSI を利用する場合、httpd.conf 内の関連記述が以下のようにコメントアウトされているので、

#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml

まず上記 2 行の行頭にある # を消去し、必要に応じて AddOutputFilter 行の末尾に拡張子を追加する。

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml .html .htm