Posted by & filed under mac, programming.


PHPとかのWebアプリを作るにあたって,わざわざサーバーにアップロードしてテストするのは面倒なので,MacBookにテスト環境を構築することにした.

 

Mac OS Xには,標準でWebサーバーとしてApacheが入っており,あと,PHPもhttpd.confを変更すれば最初から使用できる.

が,PEARやPECLは最初は入ってない.

PEARだけ単体でインストールする方法もあるが,PHPも最新バージョンを使いたいので,MacPortsで全部インストールすることに.

 

インストール自体はMacPortsでさくっと.

$ sudo port install php5 +apache2 +mysql5 +pear +imap +postgresql83 +sqlite
$ sudo port install mysql5

ApacheにインストールしたPHP5をロードするように設定

$ cd /opt/local/apache2/modules/
$ sudo /opt/local/apache2/bin/apxs -a -e -n "php5" libphp5.so

mod_php.confをインクルード

$ sudo vi /opt/local/apache2/conf/httpd.conf
Include conf/extras-conf/mod_php.conf

php.iniをコピーしてくる

$ sudo cp /opt/local/etc/php.ini-dist /opt/local/etc/php.ini

Xdebugをインストール

$ sudo pecl install xdebug

Xdebug PHPのエラーメッセージは,エラーが発生した時点の行番号を表示するので,それだけではどこが問題なのかが分かりづらく,デバッグが面倒くさい.

ここで,PHP拡張ライブラリ(PECL)のXdebugをインストールすれば,コールスタックを表示してくれるので,どんな状況で問題が発生したのかが一目瞭然.

ついでに各変数とかをダンプするようにしておけば,さらに状況判断しやすい.

PHPのデバッグ環境には必ず入れておきたいものの一つ.

 

php.iniをXdebugをロードするように変更,その他適宜変更

extension=/opt/local/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so
xdebug.dump.REQUEST = On
xdebug.dump.SESSION = On
xdebug.dump.globals = On

MySQLの初期データベースをインストール

$ sudo -u mysql mysql_install_db5

設定ファイルをコピーしてくる

$ sudo cp /opt/local/share/mysql5/mysql/my-small.cnf /opt/local/etc/mysql5/my.cnf

最後にApacheとMySQLを起動

$ sudo /opt/local/apache2/bin/apachectl start
$ sudo /opt/local/lib/mysql5/bin/mysqld_safe &