Mac OS X Mountain LionでPHPアプリケーションを構築できる環境を整える手順書です。
使用するバージョンはそれぞれ以下の通りです。それぞれの環境でバージョンは読み替えてください。
- Apache 2.2.22
- MySQL 5.5.29
- PHP 5.4.11
- PHPMyAdmin 3.5.5
1.基本方針
- デフォルトでインストールされているパッケージは利用しない。
- 可能な限りHomebrewを利用してパッケージをインストールする。
2.Homebrew
2.1.準備
まず、Homebrewをインストールするため、JavaとXcode(コマンドラインツール)をインストールします。
2.1.1.Java
Javaのバージョンを確認しようとするとインストールを促されるので、そのままインストールします(JDK 1.6)。
$ java -version
2.1.2.Xcode(コマンドラインツール)
AppStore([Mac App Store - Xcode](https://itunes.apple.com/us/app/xcode/id497799835?ls=1&mt=12 Mac App Store - Xcode))からXcodeをインストールし、
Preferences > Downloads > Components
のCommand Line Toolsをインストールします。
2.2.インストール
[Homebrew — MacPorts driving you to drink? Try Homebrew!](http://mxcl.github.com/homebrew/ Homebrew — MacPorts driving you to drink? Try Homebrew!)の最下部のコマンドを入力してインストールします。
インストールコマンドはちょくちょく更新されるようなので、Homebrewのページで確認した上で実行してください。
$ ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)"
2.3.初期設定
何はともあれ最新版に更新します。
$ brew doctor
$ brew update
$ brew -v
3.MySQL
まず、MySQLをインストールします。
3.1.インストール
$ brew install mysql
3.2.初期設定
インストール後のメッセージに従って以下のコマンドを実行し、初期化します。
$ unset TMPDIR
$ mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
3.3.起動
mysql.server
コマンドで起動します。root権限は不要です。
Linuxのservice
コマンドとの違いに慣れません。
$ mysql.server start
3.4.セキュリティ設定
セキュリティのためにrootパスワードを設定します。以下のようにmysqladminコマンドを利用して設定するか、普通に接続してコマンドを実行します。
$ mysqladmin -u root password 'new-password'
$ mysqladmin -u root -h host.local password 'new-password'
4.Apache
Homebrewは、基本的にシステムにデフォルトでインストールされているものはFormulaが提供されていません。今回で言えばApacheとPHPが該当します。
そこで、Homebrewのtap
コマンドを利用して外部リポジトリを追加し、インストールします。
4.1.リポジトリの追加
システムデフォルトでインストールされているアプリケーションのFormulaを提供している https://github.com/Homebrew/homebrew-dupes を追加します。
$ brew tap Homebrew/dupes
4.2.インストール
MySQL同様、brew
コマンドでインストールします。
$ brew install httpd
4.3.初期設定
インストールは終わりましたが、以下の理由で少し修正が必要です。
- PATHの設定でデフォルトのapachectl(httpd)が優先されるので、Homebrewでインストールしたapacectl(httpd)を使えない。
- /usr/local/homebrew/Cellar/httpd/2.2.22/var/apache2/logが存在せず、起動時にエラーが発生する。
- /usr/local/homebrew/Cellar/httpd/2.2.22/var/apache2/runが存在せず、起動時にエラーが発生する。
4.3.1.PATHの編集
Homebrewでインストールしたパッケージを優先的に使用するためにはいくつか方法がありますが、システム全体に影響を及ぼさないため、~/.bash_profileに以下のように記述することでPATHの設定を上書きします。
export PATH=/usr/local/bin:/usr/local/sbin:$PATH
4.3.2.必要なディレクトリの作成
次に、起動時のエラーを回避するため、ログ用のディレクトリを作成します。
$ mkdir /usr/local/homebrew/Cellar/httpd/2.2.22/var/apache2/log
$ mkdir /usr/local/homebrew/Cellar/httpd/2.2.22/var/apache2/run
4.4.起動
起動、停止はapachectl
コマンドで制御しますが、MySQLとは異なり、root権限が必要です。
エラーメッセージがやや不親切なのでhttpd
コマンドを直接使ったほうが楽だったり…。
$ sudo apachectl start
4.5.動作確認
http://localhost/にアクセスしてページを閲覧できるかどうか確認します。
"It works!"と表示されていれば成功です。
5.PHP
Apache同様、リポジトリを追加してインストールします。
5.1.リポジトリの追加
$ brew tap josegonzalez/homebrew-php
5.2.インストール
MySQLと連携させるため、インストール時のオプションに--with-mysql
をつけます。
$ brew install php54 --with-mysql
5.3.Apacheの設定
ApacheでPHPを有効にするため、3つの設定+αを行います。
5.3.1.モジュールの有効化
LoadModule
群の最後に以下の行を追加します。
LoadModule php5_module /usr/local/Cellar/php54/5.4.16/libexec/apache2/libphp5.so
5.3.2.PHPの有効化
デフォルトの状態ではPHPが実行されないので、以下の行を追加します。
<IfModule mime_module>
…
AddType application/x-httpd-php .php
…
</IfModule>
5.3.3.index.phpの有効化
デフォルトでindex.phpを表示するよう、以下のように修正します。
<IfModule dir_module>
…
DirectoryIndex index.html index.php
…
</IfModule>
5.3.4.URL書き換えの有効化(任意)
デフォルトの状態では.htaccessによるURL書き換えができないので、以下のように設定しておきます。
<Directory "/usr/local/Cellar/httpd/2.2.22/share/apache2/htdocs">
…
AllowOverride All
…
</Directory>
~~~
### 5.4.パーミッションの設定
PEARを使うために以下のようにパーミッションを設定します。
```bash:Terminal
$ chmod -R ug+w /usr/local/Cellar/php54/5.4.16/lib/php
$ pear config-set php_ini /usr/local/etc/php/5.4.16/php.ini
5.5.動作確認
/usr/local/Cellar/httpd/2.2.22/share/apache2/htdocs/index.php
を以下の内容で作成し、ブラウザから http://localhost/index.php を確認します。
PHPに関する情報が沢山表示されれば成功です。
<?php
phpinfo();
6.PHPMyAdmin
6.1.インストール
他と同様にbrew
コマンドでインストールします。
$ brew install phpmyadmin
6.2.初期設定
インストール後のコマンドに従い、htpd.conf
に以下の行を追加します。
Alias /phpmyadmin /usr/local/share/phpmyadmin
<Directory /usr/local/share/phpmyadmin/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
6.3.動作確認
ブラウザでhttp://localhost/phpmyadminにアクセスしてトップページが見えれば成功です。
参考
- [Mac] Mountain Lionへパッケージ管理「Homebrew」をインストールする手順のメモ | Tools 4 Hack
- HomebrewでMySQLをインストールする時に知っておきたいこと | Macとかの雑記帳
- MacでApache、MySQL、PHPの環境を作る - ほげほげ(仮)
- homebrewでインストールしたものを優先的に使う | bulblub
- httpd log and run directories not being created · Issue #119 · Homebrew/homebrew-dupes
- HomebrewでPHP環境 現時点でのまとめ - なんたらノート第三期ベータ