http://zhugebin.sinaapp.com/linux/make_xdebug/
Xdebug是一款开源的PHP跟踪调试器,它以PHP模块的形式加载和被使用。Xdebug可以以日志的形式记录PHP代码执行的每一个环节以及 消耗的时间,支持通过配置LOG的级别来选择记录信息的深度(比如是否记录方法调用的参数类型和值)。支持PHP的各IDE还没有在断点单步调试上做的很 优秀很到位的,那么调试的时候Xdebug便是一个非常不错的选择,通过查询Xdebug日志不仅可以很轻易的找到问题所在还可以带你按执行顺序流了解当 前程序的运行机制而不用翻看大把的源代码,对与想了解陌生的程序配上Xdebug运行一般即可尽收眼底,赶快行动吧。
本次记录的是Linux平台下Xdebug的编译安装方法,Windows平台的安装较简单就不赘述了。此处Linux平台以web服务常用OS的Centos6.0为例(其他版本基本一致,其他发行版根据OS的特性流程类似)。
首先下载Xdebug源代码,截至今日最新发布版本为Xdebug_2.1.2 。 源代码的编译需要使用到gcc、autoconfig、automake和make等工具,所以先确保一下这些工具已经安装。前面提到了Xdebug是以 PHP模块的形式加载和被使用,那么我们应该把它安装为PHP的模块,怎么安装为PHP的模块呢,当然是使用phpize了,没有安装phpize的可以 扩展php-devel模块。下面我们开始编译(代码中得php-config路径根据PHP环境的实际路径做调整,phpize也是),编译的步骤如 下:
1 2 3 4 | tar -zxvf xdebug-2.1.2.tgz cd xdebug-2.1.2 phpize ./ configure --enable-xdebug --with-php-config =/ usr/ bin/ php-config |
编译成功的话在xdebug的源码目录下会生成modules/xdebug.so文件,我们把这个xdebug.so文件copy到PHP的 扩展模块目录下(默认路径是/usr/lib/php/modules/),再到php.ini中添加xdebug.so模块的相关配置然后重启下 httpd。
1 2 3 4 5 | [ Xdebug] extension = xdebug.so xdebug.auto_trace= 0 xdebug.collect_params= 4 xdebug.collect_return= on |
一切正常的话这个时候xdebug已经能使用了,我们可以使用“php -m”命令来查看php模块的加载情况来确定xdebug是否被正常加载,很奇怪的是我们看到了xdebug得身影还看到了一个告警信息“PHP Warning: Xdebug MUST be loaded as a Zend extension in Unknown on line 0”,意思是Xdebug必须使用Zend扩展方式加载,这是因为我们没有安装Zend Optimzer,但这并不影响xdebug的正常运行以及我们对PHP的跟踪。
xdebug的collect_params可配置值为1-4的数字,数值越高跟踪记录的信息越多,而collect_return设置为on 便可以记录方法的具体返回值,auto_trace是自动跟踪,xdebug消耗较大一般不开启(曾经一次开启了自动跟踪,安装wordpress的中文 版总是超时不成功),我们可以在需要被跟踪的代码中启动跟踪,方法如下:
1 2 3 4 5 6 7 8 | |