MacとEclipse PDTでPHPをデバッグする

やっとxdebugの使い方とブレークポイントの使い方、設定の仕方が分かったのでメモ。

まず、xdebugをインストールする

pecl install xdebug

peclMacPortsPHPをインストールしたなら、/opt/local/libexec/php/bin/pecl にあるはず。

つぎにPHP.iniの設定

xdebugのインストールに成功したら、ターミナル上に、
xdebug.soの配置場所が出力されているはず。こんな風に↓

Build process completed successfully
Installing '/opt/local/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so' ←★これ
install ok: channel://pecl.php.net/xdebug-2.1.2
configuration option "php_ini" is not set to php.ini location
You should add "extension=xdebug.so" to php.ini

そんで、その場所をメモってPHP.iniに以下の設定を追記。
zend_extensionは、xdebug.soの場所ね。

[xDebug]
zend_extension="/opt/local/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so"
xdebug.remote_enable = On
xdebug.remote_handler = dbgp
xdebug.remote_host = localhost
xdebug.collect_params=4

そしたら、Apacheを再起動。
phpinfo() を出力し、xdebugの項目が追加されていれば、OK!。

Eclipse側の設定

単純なフレームワークを使わないPHPファイルのデバッグなら、
Eclipseの虫マークを押してデバッグをすればいい。
しかし、Zend のようなフレームワークを使っている場合、うまくいかない。

やりたいこと

http://flick_cat/index/hello というURLでアクセスしたときに、
IndexController.php 内に貼ったブレークポイントで止めたい。

やり方(Eclipse上の設定)

1, Eclipseの環境設定画面の「PHP」→「PHP Servers」内の
Default PHP Web ServerのURLを「http://localhost」から「http://flick_cat」へ変更する。
(Default PHP Web Serverとは別に新規に追加してもいいけど。)

2,Eclipseのプロジェクトを右クリックして、properties画面を出して、
PHP Debugを選択。
下の画面のように設定する。

3,Eclipseの虫マークのDebug Configurationsを押して、表示する。
で、下のように設定をする。
ポイントは、URLのAuto Generateのチェックを外して、目的のURLを設定することです!

4,IndexController.php 内にブレークポイントを貼って、虫ボタン(デバッグボタン)を押す。
すると、http://flick_cat/index/hello が呼ばれ、ブレークポイントを貼ったところで止まるはず。


ふー。これで、やっとまともにデバッグが出来るようになった。
ネット上に地味に情報が少なくて手間取ったけど。