PHP 5.3 にアップグレードする人は、pecl で入れる拡張機能に注意
ってことで、dotdeb を使って PHP を PHP 5.3 にしたら、xdebugやAPCがまだ対応してなくて泣ける、という話。
環境は ubuntu 9.04 です。debianでも同じだと思うけど。
% php -v PHP 5.3.0-0.dotdeb.6 (cli) (built: Jul 3 2009 09:22:56) Copyright (c) 1997-2009 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies % php -i | grep extension_dir extension_dir => /usr/lib/php5/20090626 => /usr/lib/php5/20090626
という環境で、
% sudo pecl install xdebug
とかやると、
% sudo pecl install xdebug downloading xdebug-2.0.4.tgz ... Starting to download xdebug-2.0.4.tgz (288,497 bytes) ............................................................done: 288,497 bytes 67 source files, building running: phpize Configuring for: PHP Api Version: 20041225 Zend Module Api No: 20060613 Zend Extension Api No: 220060519 ...
などといって、 xdebug.so は、
% ls /usr/lib/php5/20060613 xdebug.so
に入ります。が、PHP 5.3 では、Zend Module API が、
% php -i | grep -i extension PHP Extension => 20090626 Zend Extension => 220090626 Zend Extension Build => API220090626,NTS PHP Extension Build => API20090626,NTS extension_dir => /usr/lib/php5/20090626 => /usr/lib/php5/20090626
の通り、 20090626 に変更されてるので、拡張機能のディレクトリは、
/usr/lib/php5/20090626
になっています。
ので、使えませんです。はい。extension的には、xdebugはzend_extensionなので、 zend_extension=/usr/lib/php5/20060613/xdebug.so ってフルパス指定するだろうし、こうすればいけるかな?と思ったけど、まあ後述しますが、すぐリリースされると思うので別にそこまでがんばらなくてもいいか。
ちなみにCentOSではZend Module APIバージョンごとのディレクトリがなかったので、アップデートしたらどうなるのかわかりません、試してません。