欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

Xdebug与PHP版本不适配问题

程序员文章站 2022-04-25 17:27:14
...

今天一直在重写知乎日报,php爬虫运行一段时间后,分词模块出现了内存泄露。大致检查了下,没有发现原因,就打算装个xdebug来排查下(虽然还不会用 = =!)。本来按照[官方文档](http://xdebug.org/docs/install)的自动安装没有出现任何报错的,php.ini里面的

今天一直在重写知乎日报,php爬虫运行一段时间后,分词模块出现了内存泄露。大致检查了下,没有发现原因,就打算装个xdebug来排查下(虽然还不会用 = =!)。 本来按照[官方文档](http://xdebug.org/docs/install)的自动安装没有出现任何报错的,php.ini里面的`extension=xdebug.so`也添加了,但是phpstorm还是提示没有安装xdebug,而且提示在`/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/`目录里面找不到`xdebug.so`文件。我去目录查看了下,果然没有`xdebug.so`文件。 目测还是xdebug安装过程出现问题。在网上找了一通,发现xdebug生成的`xdebug.so`文件在`/usr/lib/php/modules/`,有点奇怪为什么不是在`/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/`。手动将`xdebug.so`文件移过去,然后运行phpinfo就出现了这个报错: PHP Warning: PHP Startup: imagick: Unable to initialize module Module compiled with module API=20090626 PHP compiled with module API=20100525 These options need to match in Unknown on line 0 提示Xdebug与PHP版本不适配,好了算了我手动装一遍看看。 改成手动安装,参照网上的[手动安装教程](http://chapter31.com/2013/05/29/installing-xdebug-on-mac-mountain-lion-10-dot-8-3/) # wget http://xdebug.org/files/xdebug-2.2.3.tgz # tar -xvzf xdebug-2.2.3.tgz # cd xdebug-2.2.3 # phpize # ./configure # make # sudo cp modules/xdebug.so /usr/lib/php/extensions/no-debug-non-zts-20100525 运行,依旧还是Xdebug与PHP版本不适配错误。 然后才想起来phpstorm里面有识别到一个php5.3在`/usr/bin/`目录里面,我手动改到`/usr/local/php/bin/`。现在才知道到本机是装了两个PHP,默认对应的是5.3版本的在`/usr/bin/`,还有个识别不出来的在`/usr/local/php/bin/`。 这样问题就显然了,不管是自动还是手动安装,xdebug都是识别到的5.3版本的PHP,对应php5.3版本的`xdebug.so`生成在`/usr/lib/php/modules/`,也只能适用默认的5.3版本。我强行移到5.4版本的扩展目录下就自然会提示不匹配了。 知道了原因,解决问题就简单了: 1.先卸载默认版本的php。 # apt-get autoremove php5-common libapache2-mod-php5 php5-cli 2.把5.4版本设为默认,查了下只要把'/usr/local/php/bin/'加入[系统PATH](http://blog.csdn.net/dlutbrucezhang/article/details/8811456)就可以了。 # export PATH=/usr/local/php/bin/:$PATH 3.按照[官方文档](http://xdebug.org/docs/install)的自动安装。 # pecl install xdebug 再打开phpinfo就没有报错了,显示xdebug扩展已安装,phpstorm也提示正常。好了,明天来研究xdebug怎么用。