php 函数调用追踪扩展插件 phptrace ,如何编译安装?
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
苏南大叔在本篇文章中,将要给大家带来一款php
扩展,叫phptrace
。是国内的数字公司出品的,主要功效还是用于分析php
程序,找函数的调用关系。当然,和断点调试一样,这些功能本来对于其他语言来说,都是标配的。但是到php
这里,又变成了稀罕物件。哎.....
本文的测试环境是mac
,理论上来说,centos
等linux
系列里面,这些也都差不多。
准备工作
phptrace
是数字公司出品的,其github
主页是:
取得本地php-config
的路径,并记录下路径/usr/bin/php-config
备用。命令有2个,任选其一。
which php-config
whereis php-config
下载源码并解压
下载master
分支代码,大家都会下载,下载后解压。进入解压后的extension
目录。
curl -LOk https://github.com/Qihoo360/phptrace/archive/master.zip
tar zxvf master.zip
cd phptrace-master/extension
源码编译
phpize
./configure --with-php-config=/usr/bin/php-config
make
make cli
sudo make install-all
请替换上述脚本中的php-config
的路径,具体路径可以在第一步中获得。
- 最后的截图中,我们可以看到,编译好的
so
文件,所放置的路径。如果需要,请到这里查看。 - 注意:最后的
install
命令,所放置的module
的目录可能是个错误的目录。所以,最终您可能需要手工cp
一下,修正一下扩展文件的正确位置。 - 如果你需要
cp
动作的话,可能意味着:您编译得到的so
文件是个和php
主程序版本不匹配的文件。修改ini
后,您可以通过phpinfo()
查看是否成功。
编辑php.ini
ini
的路径,也可以通过phpinfo()
查看。找到文件后,增加如下语句即可。
[phptrace]
extension=trace.so
phptrace.enabled = 1
重启生效
重启后,phpinfo
里面,可以看到trace
的相关信息。如果没有什么变化,那么可能是加载失败了。
官方给出的验证办法是这样的。在命令行里面输入如下语句。然后如果看到类似的输出即可。
php -r 'for ($i = 0; $i < 20; $i++) usleep(50000);' &
phptrace -p $!
当然你还可以通过命令行验证是否生效。
php -m|grep trace
最后总结
这里面编译的过程中,可能会碰到很多问题,苏南大叔在以前的文章里面有过提及。将在下一篇文章里面再对php
的扩展编译过程中,可能出现的错误,再次总结。
phptrace
的相关文章,请点击这里查看:
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。