MAMP に Xdebug を入れて Webgrind で確認してみる
Xdebug のログをフロントエンドで確認できる「Webgrind」の紹介記事を読んで実際にやってみる。
Xdebugのフロントエンド·Webgrind MOONGIFT
取り敢えず MAMP に Xdebug を入れる事から。ここにある「PHP Remote Debugging」の「Mac OS X / x86」をダウンロード(Intel Mac)。
Komodo Remote Debugging Package Downloads « ActiveState Code
PHP のバージョンごとにパッケージが違うので MAMP の PHP のバージョン(現時点で 5.2)と同じフォルダにある xdebug.so を以下に入れる。
/Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-20050922/xdebug.so
php.ini に以下を追記。
/Applications/MAMP/conf/php5/php.ini
[xdebug] zend_extension = /Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-20050922/xdebug.so xdebug.remote_enable = On xdebug.remote_handler = dbgp xdebug.remote_mode = req xdebug.remote_host = 127.0.0.1 xdebug.remote_port = 9000 xdebug.idekey = xdebug.profiler_enable = On xdebug.profiler_output_dir = "/Applications/MAMP/tmp/xdebug/"
Xdebug を有効にするには Zend Optimizer を無効にしなくてはいけないので php.ini の以下の部分をコメントアウトする(MAMP のコンパネでも on/off の設定があるけど何故か反映されない…)。
[Zend] ; zend_optimizer.optimization_level=15 ; zend_extension_manager.optimizer=/Applications/MAMP/bin/php5/zend/lib/Optimizer-3.2.2 ; zend_optimizer.version=3.2.2
いよいよ Webgrind を入れる。と云っても落としてログファイルのパスを設定するだけ。ここで公開されているものをダウンロード。
webgrind - Xdebug Profiling Web Frontend in PHP - Google Project Hosting
落としたファイルを MAMP の htdocs に入れて config.php を以下の様に変更しました。
static $xdebugOutputDir = '/Applications/MAMP/tmp/xdebug/'; static $storageDir = '/Applications/MAMP/tmp/webgrind/';
後は MAMP を起動して webgrind にアクセスするだけ。簡単ですね。ただファイルサイズが大きいプロファイルを読み込むと流石に動作が重いかな。