やったことだけ書く備忘録

Ubuntu(64bit)+xamppの環境にxdebugを入れるときのメモ

ちょっとハマったのでメモしておきます。

普段、手軽に複数のPHPバージョンを併用したいので、xampp for Linuxを使ってるんですが、
今更ながらxdebugを入れようとすると上手く動きません。

手順は以下の通り:




# xamppのdevelパッケージを入れる
$ tar xvfz xampp-linux-devel-1.x.x.tar.gz
$ sudo tar xvfz xampp-linux-devel-1.x.x.tar.gz -C /opt

# 続いて、xdebugをソースからコンパイル
$ wget http://xdebug.org/files/xdebug-2.1.1.tgz
$ tar xvfz xdebug-2.1.1.tgz
$ cd xdebug-2.1.1
$ /opt/lampp/bin/phpize
$ ./configure --with-php-config=/opt/lampp/bin/php-config
$ make
$ sudo make install
$ sudo cp -ip /opt/lampp/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so /opt/lampp/lib/php/extensions


あとはphp.iniにxdebugの設定の記述と、プロファイル用のディレクトリを作ります。




$ sudo mkdir /opt/lampp/tmp/xdebug
$ sudo chmod a+rwx -R /opt/lampp/tmp/xdebug

sudo vi /opt/lampp/etc/php.ini

zend_extension = /opt/lampp/lib/php/extensions/xdebug.so
xdebug.profiler_output_dir = "/tmp/xdebug/"
xdebug.profiler_enable = On
xdebug.remote_enable=On
xdebug.remote_host="localhost"
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
xdebug.remote_log="/opt/lampp/logs/xdebug.log"


で、xamppを再起動すると・・・




Failed loading /opt/lampp/lib/php/extensions/xdebug.so: /opt/lampp/lib/php/extensions/xdebug.so: wrong ELF class: ELFCLASS64


というエラーが出てxdebugがロードできないようです。ぐぐってみると、どうやらxamppは32bit用のia32-libsを使っているようで、私のUbuntuでコンパイルすると64bitのsoファイルができちゃうようで、互換性が無い、という警告みたいです。



32bitでコンパイルしたものの入手



というわけで、xdebug.soは32bit環境でコンパイルしたものを使わないといけないんですが、32bit環境が手元にないし、apt-getで環境構築しなおすかーと思ってたのですが、どうやらKomodo IDEというものに32bitでコンパイル済みのsoファイルが同梱されているみたいです。ここのページ からLinux_x86のIDEをダウンロードして、解凍した中にあるxdebug.soを設置:




$ wget http://downloads.activestate.com/Komodo/releases/7.0.2/remotedebugging/Komodo-PHPRemoteDebugging-7.0.2-70257-linux-x86.tar.gz
$ tar xvfz /Komodo-PHPRemoteDebugging-7.0.2-70257-linux-x86.tar.gz
$ sudo cp -ip /Komodo-PHPRemoteDebugging-7.0.2-70257-linux-x86/5.3/xdebug.so /opt/lampp/lib/php/extensions


これでxamppを再起動するとモジュールのロードが有効になり、phpinfo()にもxdebugが有効になってました。
apt-getで環境を構築してればよかったなーと思った次第です・・・

« 前の記事 次の記事 »

2件のコメント

Arexis さん

Stay intfmraoive, San Diego, yeah boy!

Julio さん

Ab fab my <a href="http://orbkfhz.com">golody</a> man.

コメントを投稿する

 画像に表示されている文字を入力してください。