michimani.net

MAMPでバーチャルホストを設定したときのメモ

2017-12-13

MAMPでは、設定からドキュメントルートを変更できます。が、複数プロジェクトを切り替える場合に毎回設定を変更して再起動するのは面倒です。
なので、ポートでバーチャルホストを設定して、各ポートにプロジェクトを割り振るという方法で対応します。

環境

前提

以下のようなプロジェクト(ドキュメントルート)があるとします。

それぞれ、ドキュメントルート配下に次のようなhtmlファイルが置いてあるとします。

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>PROJECT A</title>
</head>
<body>
	<h1>プロジェクト A です</h1>
</body>
</html>

MAMPの設定ファイル変更

変更するファイルは次の2つ

/Applications/MAMP/conf/apache/httpd.conf は、下記部分を有効にします。

# Virtual hosts
- #Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
+ Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf

/Applications/MAMP/conf/apache/extra/httpd-vhosts.conf には下記の記述を末尾に追加します。

Listen 8001
<VirtualHost *:8001>
    DocumentRoot "/Users/hogehoge/Projects/project_a/html"
    <Directory "/Users/hogehoge/Projects/project_a/html">
        AllowOverride All
    </Directory>
</VirtualHost>

Listen 8002
<VirtualHost *:8002>
    DocumentRoot "/Users/hogehoge/Projects/project_b/html"
    <Directory "/Users/hogehoge/Projects/project_b/html">
        AllowOverride All
    </Directory>
</VirtualHost>

Listen 8003
<VirtualHost *:8003>
    DocumentRoot "/Users/hogehoge/Projects/project_c/html"
    <Directory "/Users/hogehoge/Projects/project_c/html">
        AllowOverride All
    </Directory>
</VirtualHost>

アクセスしてみる

設定ファイルを変更したらMAMPでサーバを再起動して、それぞれのポートにアクセスします。

さらにhostsでの切り替えを試してみた(無理でした)

ポートでの切り替えができるようになったものの、localhost:8001 ではどのプロジェクトなのかわからないので、hostsで下記のような設定をしてみました。

127.0.0.1:8001 local.project_a.com
127.0.0.1:8002 local.project_b.com
127.0.0.1:8003 local.project_c.com

が、うまくいきません。 調べたところ、hostsで解決できるのはIPアドレスまでで、ポートの値までは解決できないようです。


comments powered by Disqus