XAMPP と MAMP の バーチャルホスト 設定について、職場が変わったりマシンを入れ替えたりするたびにいちいちググるのが面倒になったので、「とりあえずこれで動く!」という自分なりの設定を書いておく。各設定についての詳細は Apache のドキュメンテーション などを参照のこと。
XAMPP + Windows
XAMPP for Windows を C:\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
の値ににしたがって、管理するサイトの分だけ以下のように追加していく。ちなみにこの hosts
も httpd.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
参考
Apache HTTP サーバ バージョン 2.2 ドキュメント の簡易リンク集: