XDebug是一个开放源代码的PHP程序调试和性能分析器(即一个Debug工具),可以用来跟踪,调试和分析PHP程序的运行状况。相比echo
、print_r()
、var_dump()
、printf()
函数,使用XDebug的效率和精准度更高、也更快捷。
1 安装
XDebug官网下载地址:https://xdebug.org/download.php。
1.1 Windows服务器
到XDebug官网下载DLL文件,并将DLL文件放到PHP的ext目录下。
下载的dll文件必须与PHP的版本一致,通过phpinfo()
查看当前PHP的版本号、架构位数、VC版本以及是否为安全线程。
例如,我本地的phpinfo()
输出与以上相关的信息为:
-
PHP Version:
7.1.0
-
Architecture:
x64
-
Zend Extension Build:
API320160303,NTS,VC14
所以我要下载的XDebug扩展文件为:PHP 7.1 VC14 (64 bit)。
因为扩展名没有TS
,是非线程安全,即NTS
,与PHP的API320160303,NTS,VC14
信息对应。
然后修改php.ini
文件,在后面加上:
[XDebug]
zend_extension = "D:\php\php54n\ext\php_xdebug-2.5.0-7.1-vc14-nts-x86_64.dll"
1.2 Linux服务器
首先,到XDebug官网下载源码,然后用命令安装。
$ wget https://xdebug.org/files/xdebug-2.4.0.tgz
$ phpize
$ ./configure
$ make
$ sudo make install
64位Linux系统会将 xdebug.so 文件安装到 /usr/lib64/php/modules/ 目录下。
修改php.ini
文件,加上如下两行。
[XDebug]
zend_extension = /usr/lib64/php/modules/xdebug.so
也可以在/etc/php.d/
下新建xdebug.ini
文件,内容一样,PHP会自动加载该目录下的文件。
2 配置
接着,打开php.ini
,在[XDebug]
部分下面继续添加如下# Debug Config
和# Profiler Config
后的配置,如下:
[XDebug]
zend_extension = /usr/lib64/php/modules/xdebug.so
; Debug Config
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "127.0.0.1"
xdebug.remote_port = 9000
xdebug.remote_log = "/var/log/php-fpm/xdebug.log"
; Profiler Config
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 1
xdebug.profiler_output_dir = "/tmp/xdebug"
xdebug.profiler_output_name = "out.%t-%s"
如果只是用于调试,那么只要加#Debug
和后面的几行。如果调试客户端(如:PHPStorm IDE)和PHP不在同一电脑上,则需要把
Configxdebug.remote_host
配置成调试客户端的IP
。
如果要PHP程序性能分析,则再加上#
以及后面的配置。
Profiler Config
查看XDebug的所有配置。
3 编辑器配置
- PHPStorm 调试配置:http://www.awaimai.com/1029.html
- Netbeans 调试配置:http://www.awaimai.com/339.html
- Sublime 调试配置:https://github.com/martomo/SublimeTextXdebug
参考资料: