読者です 読者をやめる 読者になる 読者になる

MAMP に Xdebug を入れて Webgrind で確認してみる

Xdebug のログをフロントエンドで確認できる「Webgrind」の紹介記事を読んで実際にやってみる。
Xdebugのフロントエンド·Webgrind MOONGIFT

取り敢えず MAMPXdebug を入れる事から。ここにある「PHP Remote Debugging」の「Mac OS X / x86」をダウンロード(Intel Mac)。
Komodo Remote Debugging Package Downloads « ActiveState Code

PHP のバージョンごとにパッケージが違うので MAMPPHP のバージョン(現時点で 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 にアクセスするだけ。簡単ですね。ただファイルサイズが大きいプロファイルを読み込むと流石に動作が重いかな。