MAMPのバーチャルホストで複数プロジェクトをラクラク管理(方法2)


目次

はじめに
Virtual Hostを有効化
Virtual Hostの設定
hostsファイルを編集
確認

はじめに

以前書いたMAMPのバーチャルホストで複数プロジェクトをラクラク管理(方法1)の記事ですが、あの後から何故か「localhost:8005」などにアクセスすると、localhost:8888に返されてしまう現象が発生。
編集したファイルを確認するも問題はなく、挙げ句にはMAMP自体を入れ直してみましたが改善する気配がない。

そこで、前回の方法1とは違ったアプローチを試してみました。
やり方自体は検索すれば適当にヒットするのですが、もしListen 8001~を追加してみたけど似たような症状が起こっても申し訳ないので、こちらに備忘録も兼ねて残しておきます。

Virtual Hostを有効化

前回の記事と同じく、「applications/mamp/conf/apache/httpd.conf」を開いて、576行目付近の

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

↑の#を外して↓のようにコメントアウトしてください。

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

Virtual Hostの設定

こちらも前回の記事と同じく「applications/mamp/config/apache/extra/httpd-chosts.conf」を開いて、末尾くらいに

httpd-vhost.conf
<VirtualHost *:80>
 以下略
</VirtualHost>

<VirtualHost *:80>
 以下略
</VirtualHost>

と記述された場所があります。

これを雛形にするので、<VirtualHost *:80> 〜 </VirtualHost>を末尾に1つ複製します。
複製した<VirtualHost *:80> 〜 </VirtualHost>の中で書き換えるのは、DocumentNameServerName、オプションのErrorLogCustomLogです。
ちなみにオプションは任意なので、いらないのであれば最初の2項目だけで大丈夫です。

httpd-vhosts.conf
<VirtualHost *:80>
    DocumentRoot "/Applications/MAMP/htdocs/project-name"
    ServerName project-name.local.com
    ErrorLog "logs/project-name-error_log"
    CustomLog "logs/project-name-access_log" common
</VirtualHost>

DocumentRoot
→ htdocs配下のプロジェクトフォルダを指定してください。
ServerName
→ 「http://指定して文字列」と入力することでDocumentRootで指定したプロジェクトが表示されます。
  ここでは「http://project-name.local.com」と入力することで、従来の「http://localhost:8888/project-name」と同じ様にアクセスできます。
ErrorLogCustomLog
→ この2項目はオプションです。指定した場所(logsフォルダ以下)に、指定した名前でエラーログファイルが生成されます。

hostsファイルを編集

ここではターミナルを使って、hostsファイルを編集していきます。
ちなみにターミナルを使いたくない人は、「private/etc/hosts」にあります。

では、ターミナルを起動し、$ sudo vi /etc/hostsと打ち込んでエンターを押してください。
パスワードを求められるので、入力してエンター。

すると以下のような画面になるはずです。

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost
~
~
~
~
~
"/etc/hosts" 12L, 275C

そのままiを押すと、末尾が-- INSERT --となり、インサートモードに切り替わります。
そうしたら矢印キーとエンターで::1の次の行に移動して、127.0.0.1 test-project.local.comと打ち込みます。
test-project.local.comというのは、先程httpd-vhosts.confのServerNameで指定した文字列です。
もしhttpd-vhosts.confで複数追加したのであれば、その分だけ127.0.0.1 ▲▲▲▲と打ち込んでください。
今回は以下のように入力しました。

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost
127.0.0.1 project-name.local.com
~
~
~
~
~
"/etc/hosts" 12L, 275C

入力したら、escキーを押して、そのまま:wqと入力してエンターで元のターミナルに戻ります。

MAMPのポート番号を変更

MAMPを起動させて、設定画面のPortsタブを開いて、80 & 3306を押してポート番号を80に変更してMAMPを再起動させます。

確認

先程のServerNameで指定した文字列をブラウザのアドレスバーに入力してアクセスして表示されていれば成功です。
時折、apacheの反映にタイムラグが発生する時があるので、他のポート番号にリダイレクトされたり、エラーが出たりしたら、MAMPを終了して1〜2分間を空けてから再起動させたり、$ sudo killall -HUP mDNSResponderでDNSキャッシュをクリアしたり、PCの再起動を試してみてください。

もちろんタイプミスも十分有りえるので、httpd.confhttpd-vhosts.confhostsもしっかり確認してみましょう。