MAMPでバーチャルホストを設定したときのメモ
2017-12-13MAMPでは、設定からドキュメントルートを変更できます。が、複数プロジェクトを切り替える場合に毎回設定を変更して再起動するのは面倒です。
なので、ポートでバーチャルホストを設定して、各ポートにプロジェクトを割り振るという方法で対応します。
環境
- macOS Sierra 10.12.6
- MAMP 4.1.1
前提
以下のようなプロジェクト(ドキュメントルート)があるとします。
- project_a (
/Users/hogehoge/Projects/project_a/html
) - project_b (
/Users/hogehoge/Projects/project_b/html
) - project_c (
/Users/hogehoge/Projects/project_c/html
)
それぞれ、ドキュメントルート配下に次のような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
/Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
/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でサーバを再起動して、それぞれのポートにアクセスします。
-
localhost:8001
-
localhost:8002
-
localhost:8003
さらに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