やっとxdebugの使い方とブレークポイントの使い方、設定の仕方が分かったのでメモ。
まず、xdebugをインストールする
pecl install xdebug
peclはMacPortsでPHPをインストールしたなら、/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
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 が呼ばれ、ブレークポイントを貼ったところで止まるはず。
ふー。これで、やっとまともにデバッグが出来るようになった。
ネット上に地味に情報が少なくて手間取ったけど。