如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接信息。

在上一篇文章中,苏南大叔提到,可以利用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的向导模式的源码,可能是他们的一个小失误,没有更新这个向导的最新版定义所导致的。

如何安装php扩展xdebug之编译篇 - source

大家可以到下载页面(https://xdebug.org/download.php)去看一下最新版本的源码地址,苏南大叔得到这个地址:http://xdebug.org/files/xdebug-2.5.5.tgz

苏南大叔的环境是mac,直接双击就解压了。所以没有使用向导中给出的tar命令。

如何安装php扩展xdebug之编译篇 - package

第二步,在解压的目录里面执行phpize和make。

需要在有config.m4这个文件的这一级执行phpize,否则会报错,找不到config.m4的。

如何安装php扩展xdebug之编译篇 - package_2

phpize 
./configure
make

如何安装php扩展xdebug之编译篇 - phpize

如何安装php扩展xdebug之编译篇 - configure

如何安装php扩展xdebug之编译篇 - make

如何安装php扩展xdebug之编译篇 - make_2

在make的结果中,我们看到了最终的扩展文件的生成的模块位置。然后,我们就可以看到,这个千呼万唤始出来的xdebug.so文件了。

如何安装php扩展xdebug之编译篇 - bingo

最后一步,在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扩展xdebug之编译篇 - extension_dir

如何安装php扩展xdebug之编译篇 - so_dir

然后编辑一下php.ini文件,php.ini文件的路径,来自于phpinfo()中的『Loaded Configuration File』的取值。注意,官方建议中,写的是zend_extension=<全路径>/xdebug.so。苏南大叔实际上,用的是:zend_extension=xdebug.so。

如何安装php扩展xdebug之编译篇 - php_ini

保存好php.ini之后,重启一下你的php-fpm(fastcgi模式)或者apache(module模式),试试看phpinfo的函数输出吧。如果你能看到下图中类似的字样,那么就可以证明基本上大功告成了。

如何安装php扩展xdebug之编译篇 - phpinfo_xdebug

当然,具体xdebug的真正使用,还是有一定的距离。具体的如何和ide结合使用php的单步调试功能,请期待苏南大叔的后续文章。https://newsn.net/tag/xdebug

最后ps一下:其实这个xdebug.so不自己编译的话,也可以使用brew进行安装。不过,鉴于brew的版本更新不及时性方面考虑的话,我们还是选择源码编译,更靠谱一些。

本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。