2007年10月10日水曜日

PHPのデバッグ (2)

Zend Debugger が include_path をうまく認識してくれず、スクリプトは1ステップごとに進めるのにソースが見れないので諦めてXdebugに変更

ちなみにhtdocs以外のプロジェクトにあるファイルを参照してほしいときに以下のようなエラー表示がされてエラーになる。一応どのファイルのどこを読み込んでるかはわかるけど、ブレイクポイントとか設定のしようが無い・・・
Please add the file to the Project or Include Path in project, or structure the files in Project/Include Path to more closely resemble the layout of the files on the server.

でXdebugを有効にするのに、ZendDebuggerと同時に有効にできないので、Zend Debugger をコメントアウトしてから xdebug を有効化す

php -i | grep xdebug をしてみたら、↓こんなエラーが出てたので、extension= からzend_extension= に変更する。
PHP Warning: Xdebug MUST be loaded as a Zend extension in Unknown on line 0
php.ini の設定はこんな感じ
zend_extension=/usr/local/lib/php/20060613/xdebug.so
xdebug.dump_undefined=true
xdebug.remote_enable=true
xdebug.remote_host=xxx.xxx.xxx.xxx
PTD側の標準デバッガも Xdebug に変更して、起動してみると、しっかりとinclude_path を読み込んでくれてスクリプトのどこを実行しているか表示してくれた。

ただ、同じファイル名のものが eclipse 側にあると、どのファイルか確認するダイアログが出るので、欲を言えば、パスから予測して自動で読み込んでほしい。


そういえば、CakePHP のおいしい食べ方 で、Zend Debugger は mod_rewrite の設定していると正常に動かないって書いてあるし、その所為かな?

ZendFramework ベースで作ってるので、mod_rewriteは必須だし、そもそも同じZendなんだからそのくらい対応してほしい、、、と自分の設定がわるいだけだったらごめんなさい、ZendDebuggerの中の人