今回の記事は、Mac で Apache + MySQL + PHP の環境を作る方法について。
簡単に環境を作りたい場合は、MAMP という選択肢もありかもしれないが、個人的には以下の理由で好きではない。
- 多様な本番環境に設定を合わせられるほど柔軟じゃない。
- 無駄な学習コストが発生するように思える。
- 特定のプラットホームやパッケージへの依存度を減らしておきたい。
と、余談はさておき、Mac を使用した開発環境の構築。
以下は、かなり私の独断と偏見。
あと、あくまでも開発環境を前提としており、本番環境を前提としていない。
Apache の設定
Apache の設定は、意外と簡単。
Webmin や MAMP などのGUI からはさっさと卒業しましょう。
ユーザー、グループの変更
たとえば、PHPやCGIからファイルに書き込みをしたりする際に、対象となるファイルやディレクトリにパーミッションを 707 などとしておく必要があると思うが、開発環境ではこの作業は面倒なので、私はApache のユーザーそのものをかえている。
こうしておくことで、パーミッションの変更が不要になり、たとえば WordPress では自動アップグレードも動作するようになる。
/etc/apache2/httpd.conf の128行目付近の以下の行を変更
User foo
Group staff
User に指定する foo の部分は Mac にログインする際のユーザー名。
Group の値は、staff でいいとおもう。
この設定をしておけば、Mac のファインダー上で作成したファイルやディレクトリと同じユーザー、グループで Apache が動作するので何かと便利になる。(SuExec に近いイメージ?)
念のため、以下のディレクトリのオーナーを変更しておく。
(foo の部分は置き換えて!)
sudo chown -R foo:staff /Library/WebServer
バーチャルホストの設定
バーチャルホストを設定すれば複数のサイトを構築でき、設定もサイト毎に可能なので、レンタルサーバーなどの設定に柔軟にあわせることができる。
開発環境のバーチャルホストでは、ポートベースのバーチャルホストが簡単で手っ取り早い。
以下のサンプルは、ポート番号 9001 のバーチャルホストの例。
まずは、バーチャルホスト用のディレクトリを作成する。
mkdir /Library/WebServer/vhost9001
このソースをコピペして、例えば “9001.conf” のようなファイル名で /etc/apache2/other 以下に設置するとポート 9001 のバーチャルホストができあがる。
NameVirtualHost *:9001
Listen 9001
<VirtualHost *:9001>
DocumentRoot "/Library/WebServer/vhost9001"
<Directory "/Library/WebServer/vhost9001">
Options All
AllowOverride All
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
確認するには、ブラウザで、http://127.0.0.1:9001/ にアクセスする。
あくまでも開発環境なので、とりあえず Options とか AllowOverride の値は気にしない(笑)
もし、違うポート番号のバーチャルホストを追加するには、上記のソースを違うファイルにコピーして、 9001 を 9002 等に変更すればOK。
MySQLのインストール
これは、もっと簡単。
本家で Mac 用のバイナリが配布されているので、それをインストールする。
MySQL :: Download MySQL Community Server
たくさんあって分かりにくいかもしれないが、使用している OS の.dmg をダウンロードすれば、インストーラーでインストールでき、システム環境設定で起動停止や自動起動の設定も行える。
ユーザーやパスワードの設定は臨機応変に。
データベース名も含めて単純に本番環境に合わせるのがいいと思う。
PHP の設定
Mac では PHP はプリインストールで、Snow Leopard にインストールされているバージョンの PHP は日本語にも対応しているので特に変更する必要はない。
が、もし変更する場合は、以下のように .htaccess で変更するのがオススメ。
php_value display_errors 1
こうすることで、多様な本番環境に柔軟に合わせることができる。