【PHP】Xampp for linux(Lampp)にXdebugをインストール
Xdebug(本家サイト)を使うとリモートデバッグとかバックトレースが簡単にできて開発効率がよくなるらしいので試しにインストールしてみた。
その他デバッグツールとしてはZend Debuggerなどがあるらしい。
Zend Debugger, Xdebug, DBGを比較する
Lamppのインストール、設定に関しては前の記事を参照。
peclコマンドが使えるようにxampp-linux-develをインストールしておく。(といっても解凍するだけ。詳細は前の記事で)
必要なツールのインストール
# yum install autoconf gcc
# cd /opt/lampp/bin/
# ./pecl install Xdebug
完了すると
You should add "extension=xdebug.so" to php.ini
と言われるので、php.iniに追加してXamppを再起動すると次のエラーが出てう。
PHP Warning: Xdebug MUST be loaded as a Zend extension in Unknown on line 0
調べてみるとzend_extensionに変更すれば良さそうなので、php.iniの最後([Zend]ディレクティブ)に次のように記述。
zend_extension="/opt/lampp/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so"
Lamppを再起動して、phpinfo()を出力してXdebugの項目が表示されていれば成功
次はEclipseを使ってリモートデバッグを試してみる予定。
< 2011/04/25 Revised >
yum install gccを追記。
64bit環境でcompileすると下記エラーが
Failed loading /opt/lampp/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so: /opt/lampp/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so: wrong ELF class: ELFCLASS64
Lampp自体が32bitで動いているのが原因らしい。参考。