如何安装php扩展xdebug之编译篇
发布于 作者:苏南大叔 来源:程序如此灵动~在上一篇文章中,苏南大叔提到,可以利用xdebug官方提供的向导功能,快速获得符合自己实际情况的编译指南。文件见这里:https://newsn.net/say/php-xdebug-wizard.html 。
本篇文章里面,我们就具体看看,如何编译php的xdebug扩展。编译的主要依据,也就是上一篇所提到的向导模式的结果。
基本顺序
下面是向导模式所给出的安装指南。
1.Download xdebug-2.5.4.tgz
2.Unpack the downloaded file with tar -xvzf xdebug-2.5.4.tgz
3.Run: cd xdebug-2.5.4
4.Run: phpize (See the FAQ if you don't have phpize.
As part of its output it should show:
Configuring for:
...
Zend Module Api No: 20131226
Zend Extension Api No: 220131226
If it does not, you are using the wrong phpize. Please follow this FAQ entry and skip the next step.
5.Run: ./configure
6.Run: make
7.Run: cp modules/xdebug.so /usr/local/Cellar/php56/5.6.31_7/lib/php/extensions/no-debug-non-zts-20131226
8.Edit /usr/local/etc/php/5.6/php.ini and add the line
zend_extension = /usr/local/Cellar/php56/5.6.31_7/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so
9.Restart the webserver
第一步,下载最新版xdebug源码,并解压
截至到发稿时为止,xdebug的最新版是2.5.5,但是向导模式里面给出的建议,还是下载2.5.4版本。看了一下xdebug的向导模式的源码,可能是他们的一个小失误,没有更新这个向导的最新版定义所导致的。
大家可以到下载页面去看一下最新版本的源码地址,苏南大叔得到这个地址:
苏南大叔的环境是mac,直接双击就解压了。所以没有使用向导中给出的tar命令。
第二步,在解压的目录里面执行phpize和make。
需要在有config.m4这个文件的这一级执行phpize,否则会报错,找不到config.m4的。
phpize
./configure
make
在make的结果中,我们看到了最终的扩展文件的生成的模块位置。然后,我们就可以看到,这个千呼万唤始出来的xdebug.so文件了。
最后一步,在php.ini中启用xdebug.so
cp modules/xdebug.so /usr/local/Cellar/php56/5.6.31_7/lib/php/extensions/no-debug-non-zts-20131226
vi /usr/local/etc/php/5.6/php.ini
zend_extension = /usr/local/Cellar/php56/5.6.31_7/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so
上面的文字是xdebug给我的建议,我们领会其精神,『/usr/local/Cellar/php56/5.6.31_7/lib/php/extensions/no-debug-non-zts-20131226』,这个是我本机的php扩展的目录位置,这个设置的值来自于,phpinfo中的extension_dir。我们需要把上一步中生成的xdebug.so文件复制过来。当然了,如果本地没有对应目录的话,建立一个就好了。
然后编辑一下php.ini文件,php.ini文件的路径,来自于phpinfo()中的『Loaded Configuration File』的取值。注意,官方建议中,写的是zend_extension=<全路径>/xdebug.so。苏南大叔实际上,用的是:zend_extension=xdebug.so。
保存好php.ini之后,重启一下你的php-fpm(fastcgi模式)或者apache(module模式),试试看phpinfo的函数输出吧。如果你能看到下图中类似的字样,那么就可以证明基本上大功告成了。
总结
当然,具体xdebug的真正使用,还是有一定的距离。具体的如何和ide结合使用php的单步调试功能,请期待苏南大叔的后续文章。https://newsn.net/tag/xdebug 。
最后ps一下:其实这个xdebug.so不自己编译的话,也可以使用brew进行安装。不过,鉴于brew的版本更新不及时性方面考虑的话,我们还是选择源码编译,更靠谱一些。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。