【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で動いているのが原因らしい。参考