少し前に「MAMPにMTをインストールする際のメモ」という記事を書きましたが、今回はそこで書き忘れたPHPのデバッグ環境の構築について書いてみたいと思います。
MacGDBpのインストール
PHPスクリプトをリモートデバッグするには MacGDBpという、XdebugのGUIフロントエンドを使用します。ダウンロード、アーカイブ展開後、MacGDBp本体をアプリケーションフォルダにコピーするだけです。
Xdebugのインストール
次にサーバ側にXdebugエクステンションをインストールします。XdebugのバイナリパッケージがActiveStateにありますのでこれを利用します。Komodo Debugger Extensionsから"Komodo 5.1 Remote Debugging Packages"の欄にある"PHP Remote Debugging / Mac OS X"をダウンロードし、展開します。
展開するとPHPのバージョンごとにエクステンションがありますので、MAMPで使用しているPHPのバージョン(MAMP 1.7.2の場合はPHP 5.2.6)にあわせてエクステンション(xdebug.so)を選択し、以下の場所へコピーします。
$ cd 5.2 $ cp xdebug.so /Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-20050922
Xdebugの設定
Xdebugを使えるようにするには、/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=1 xdebug.remote_host=localhost xdebug.remote_port=9000 xdebug.remote_autostart=1
また、Zend Optimizerを無効にするため、以下の行の先頭にセミコロンを入れ、コメントにします。
zend_extension_manager.optimizer=/Applications/MAMP/bin/php5/zend/lib/Optimizer-3.3.3
MacGDBpでスクリプトをデバッグする
MacGDBpを起動すると、デバッガ画面が開きます。この状態で、デバッグしたいページをブラウザからアクセスすると、ブラウザ上には何も表示されませんが、MacGDBpでは次のような画面になり、スクリプトの先頭で停止します。
画面上部左側では、変数の内容を確認できます。
スクリプトを任意の場所で停止したい場合は、Breakpointsウィンドウを開き、画面下部の「+」をクリックしてスクリプトを指定し、画面上部に表示されたスクリプトから停止させたい箇所の行番号部分をクリックします。
これでPHPスクリプトのデバッグが出来るようになり、ダイナミックパブリッシングに対応したMTプラグインの開発効率が上がるはず(?)です。