PHP之断点调试技术Xdebug

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>> PHP之断点调试技术Xdebug

1.前言

Xdebug是一个PHP程序调试器,可以用来跟踪,调试和分析PHP程序的运行状况。其实调试PHP还有其他工具比如Zend Debugger,但zend官方不是免费发布的,后来更新为zend Server也是收费版。而Xdebug是完全免费的并且功能也不差。其实xdebug可以看做PHP的扩展,如果环境中没有集成需要先在官网下载然后安装,下载地址https://xdebug.org/download.php

2.安装

2.1在windows下的安装方式

在windows安装时下载需要注意除了下载的扩展和PHP版本一致外还应该查看一下PHP是TS(Thread-Safety)即线程安全还是NTS(None-Thread Safe)即非线程安全,可以通过查看phpinfo内容确定是哪一种。

找到phpinfo中的PHP Extension Build这一项,如下图:

PHP之断点调试技术Xdebug

下载完成后将dll文件放到php的安装目录ext目录下,然后再php.ini中加入如下代码

[Xdebug]
zend_extension ="D:phpStudyPHPTutorialphpphp-7.2.1-ntsextphp_xdebug.dll"

xdebug.remote_autostart=1
xdebug.collect_params = 1
xdebug.collect_return = 1
xdebug.auto_trace = 0
xdebug.profiler_enable = 0
xdebug.max_nesting_level = 1000000

#开启远程调试
xdebug.remote_enable = 1
xdebug.remote_host = localhost
xdebug.remote_handler = dbgp

#这个端口不占用phpfpm 的9000,换用另一个,一定要和上面phpstrom配置中的端口一致

xdebug.remote_port = 9999
xdebug.idekey = phpstorm

以上代码主要适合本地调试的场景,如果是局域网内多人远程调试可以添加xdebug.remote_connect_back =1或者根据具体的调试场景进行修改。

然后重启apache或者php-fpm之后再phpinfo中查看到如下图所示:

PHP之断点调试技术Xdebug

注意:不管是Windows还是Linux安装xdebug都需要以zend扩展的形式安装,如果提示XDEBUG NOT LOADED AS ZEND EXTENSION即下图所示界面则没有正确安装,需要重新修改配置文件。

PHP之断点调试技术Xdebug

导致错误配置的原因:

PHP之断点调试技术Xdebug

2.2Liunx下的安装方式

参考该文章https://blog.****.net/u011250882/article/details/48764915

3.配置Phpstorm支持Xdebug

3.1配置端口

根据以下路径File --> Settings --> Languages & Frameworks -> PHP --> Debug xdebug块,调整debug port 值和第一的端口一致 9999,如下图

PHP之断点调试技术Xdebug

3.2打开与关闭调试

phpstrom中选项:Run --> (Run/Stop) Listening for PHP debug Connections[图标是右下角一个小虫子的绿色电话话筒,在上角最小化按钮附近默认也有快捷访问图标],这个就是打开关闭调试的按钮,打开后接下来就可以断点调试了。

PHP之断点调试技术Xdebug

3.3如何开启监听

请求url的时候就会自动捕捉到请求。