PHP5.3におけるxdebugの正しい設定について
NetBeansでデバッグをするためにxdebugを入れてみた。
ググってみたら設定方法についていろんな情報が飛び交っていたので
自分が上手く入った方法をまとめておく。
xdebugダウンロード
以下リンクから自分のPHPのバージョンに合ったものをDL
Xdebug: Download
私の場合は
- PHP5.3.5
- 32bit
- vc6
- thread safe
なのでWindows binariesの中から『PHP 5.3 VC6 TS (32 bit)』版をDL。
php.iniに以下のように追記
ここがキモで最も情報が錯綜している箇所である。
以下をphp.ini追記することで動いた。
zend_extension="D:\php\ext\php_xdebug-2.1.1-5.3-vc6.dll" xdebug.remote_enable=1 xdebug.remote_handler=dbgp xdebug.remote_mode=req xdebug.remote_host=localhost xdebug.remote_port=9000 xdebug.profiler_output_dir="D:\php\tmp"
ここでハマりやすいのがzend_extensionのパス設定である。
公式のdocには『extension=』にdllのパスを記述するように書いてあるらしいが、
これでも一応動作はしてもNetBeansでのデバッグしようとすると動かない。
『zend_extension=』にdllのパスをセットするのが一番間違いがないようだ。
他のプロパティについてはセオリー通り。
※2011/12/09補足
PHPのバージョンによってextentionを指定するためのプロパティ名が異なるらしい。
PHP5.3 = zend_extension
PHP5.2 = zend_extension_ts
となるらしいので注意
NetBeansを起動
ここまでやれば後はNetBeans上で通常通りデバッグセッションを開始するだけである。
ブレークポイントが貼ってあればJavaやVisualStudioのデバッガようにきちんと止まることが確認できるはず。
デバッガはEclipse + JavaやVisualStudio + VB/C#.NETでしか使ったことがなかったのだが
phpの場合はIDEを入れるだけでなくプラスファルファの手順が必要なのである。
そこが若干厄介というか、言語仕様以外の周りの環境含めてまだまだ発展途上というか
「これから」の言語だなぁと感じる。
もっとも専用IDEもxdebugすら無い時代のphperの先人の方々はもっと苦労されていたのだろうが(^_^;)