今までMacのローカル環境で開発するときはVirtualBoxでバーチャル環境を作り、そこを使って開発していたのだが、重くなったりファイルのやり取りが面倒だったりして、結局外部にテストサーバーを立ててローカルでは開発しないということが多かった。しかし、先日の勉強会で参加者のみなさんがMAMPやXAMPPのローカル開発環境を持っていたのを見て、僕もちゃんと構築しておこうと思い直しローカル開発環境を構築してみることにした。
やりたいこと
Macでローカル開発環境を構築するにはMAMPを使うのが一般的のようだ。普通にインストールしてMAMPを起動すると、http://localhost:8080 というURLでローカルの環境にアクセスできるようになる。しかし、これだと本番環境とURLが異なりいろいろと面倒が増えるし、複数サイトを管理するときに不便である。そこで、MAMPのApacheの設定を変更してバーチャルホストを使用し、本番環境と同じURLでアクセスできる環境を構築する。
MAMPのインストール
まず下記のサイトからMAMPをインストールする。無料版(MAMP)と有料版(MAMP Pro)があるので無料版をダウンロードする(ただし、MAMPをダウンロードしても何故かMAMP Proが付いてくる…)。
ダウンロードしたらインストーラーを起動し、画面の指示に沿ってインストールする。

MAMPでバーチャルホスト設定
MAMPの設定
MAMPをインストールしたらアプリケーションフォルダに「MAMP」「MAMP PRO」の2つのフォルダが作られているので「MAMP > MAMP」からMAMPを起動する。初回起動時、下記のような画面が表示される。今回はMAMP PROは不要なので下記のようにチェックを外して「MAMPを起動」から起動する。

MAMPが起動する。ここで「サーバを起動」をクリックすれば http://localhost:8080 でアクセスできるようになるが、今回はバーチャルホストの設定を行いたいので「環境設定」をクリックする。

環境設定を開いたら「ポート」タブをクリックする。デフォルトではApacheのポートが 8080 となっているため、開発環境をブラウザで開くためにURLの後ろに「:8080」を付ける必要がある。本番環境と同じURLにしたいので、Apacheの標準ポート 80 に変更する(MySQLはデフォルトのままにしているが、未テストなので状況によってはこちらも標準の 3306 にしたほうが良いかも)。

Apacheの設定
上記でMAMPの設定は完了。次にApacheの設定ファイルでバーチャルホストの設定を行う。Apacheの設定ファイルは「/Applications/MAMP/config/apache/httpd.conf」にある。ファイルを開いたらバーチャルホストの設定ファイルを読みこませるために、下記の通りコメントアウトを外す。
#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 ファイルを編集する。サンプルで2件の設定が入っていたのでそれはコメントアウトして、設定を追加した。サンプルとして僕の書いた設定など。
# 基本サイト
<VirtualHost *:80>
ServerName localhost
DocumentRoot /Applications/MAMP/htdocs/localhost/www
<Directory "/Applications/MAMP/htdocs/localhost/www">
Order Deny,Allow
Deny from all
Allow from 2inc.org
Allow from localhost
</Directory>
ErrorLog logs/localhost
</VirtualHost>
# 2inc.org
<VirtualHost *:80>
ServerName 2inc.org
DocumentRoot /Applications/MAMP/htdocs/2inc.org/www
<Directory "/Applications/MAMP/htdocs/2inc.org/www">
Options Includes ExecCGI FollowSymLinks
AllowOverride All
Order Deny,Allow
Deny from all
Allow from 2inc.org
Allow from localhost
</Directory>
ErrorLog logs/2inc.org/error_log
CustomLog logs/2inc.org/access_log combined env=!no_log
</VirtualHost>
httpd-vhosts.conf を保存したら、DocumentRootで指定したディレクトリと、ErrorLogで指定したファイルを作成する。エラーログのパスは「/Applications/MAMP/Library/logs/」以下となる。もし作成しなかったらApacheのエラーが出てMAMPが起動しないので注意。
Hostsを編集する
ここまで設定できたらMAMPを起動する。ただし、バーチャルホストの設定ファイルで本番サイトと同じURLを指定したので、いまブラウザでそのURLを開いても本番サイトが表示されてしまう。このような場合はHostsと呼ばれるファイルを編集して「このドメインはlocalhost(このMac)を表示する」という設定をすれば良い。GUIで設定できたほうが便利なので、Hosts というアプリを利用する。
インストール、設定方法は下記が詳しい。インストールが完了するとMacの環境設定パネルにHostsが表示されるようになる。
あとは下記のようにipに「2inc.org」、hostnameにドメイン名を入力して、ローカル開発時にはuseにチェックすれば良い。

