phpstorm-xdebug


说明:本文针对已经了解php及其扩展安装的同学,安装扩展过程不再这里赘述。
另外本文针对使用docker,php-fpm、nginx-7.3的镜像。
手册:https://xdebug.org/

一、什么是xdebug
Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具),可以用来跟踪,调试和分析PHP程序的运行状况。
在追踪底层源码调用顺序的时候,xdebug是不可或缺的工具。
二、xdebug原理
1,IDE(如PhpStorm)已经集成了一个遵循BGDP的Xdebug插件,当开启它的时候, 会在本地开一个xdebug调试服务,
监听在调试器中所设置的端口上,默认是9000(我这里设置了9001),这个服务就会监听所有到9000端口的链接。
在PhpStorm中,位于:工具栏 > Run > Start / Stop Listening for PHP Xdebug Connetions。
2,当浏览器发送一个带XDEBUG_SESSION_START的参数的请求到服务器时,服务器接受后将其转到后端的php处理,
如果php开启了xdebug模块,则会将debug信息转发到客户端IP的IDE的调试端口上。
当参数或者cookie信息中不带XDEBUG_SESSION_START,则不会启动调试。这就为后续在浏览器中添加开关提供了可能。

3,Xdebug的官方给出了一个示例图:很好的展示了相互调用关系。
这个示例图是绑定了ip,即使用了固定ip地址,xdebug.remote_connect_back = 0 ,也是 xdebug 的默认方式,这种情况下,xdebug 在收到调试通知时会读取配置 xdebug.remote_host 和 xdebug.remote_port ,默认是 localhost:9000,然后向这个端口发送通知,这种方式只适合单一客户端开发调试。
logo
logo

三、安装前
1.php安装xdebug扩展 xdebug.so
2.确认本地环境可安装xdebug版本 https://xdebug.org/wizard
3.phpxdebug扩展安装成功如图
logo
4.扩展配置

zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so #扩展安装位置
xdebug.remote_enable=1  #开启xdebug
xdebug.remote_host=192.168.15.113  #如果是docker镜像 请使用本机ip,其他可使用127.0.0.1
xdebug.remote_port=9001 #告诉php把调试数据上报到哪个监听端口
xdebug.trace_enable_trigger=on
xdebug.collect_params=4
xdebug.collect_return=on
xdebug.show_mem_delta=on
xdebug.trace_output_dir="/alidata/xdebug/x-trace"
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_enable_trigger= on
xdebug.profiler_output_dir="/alidata/xdebug/x-profiler"

四、phpstorm配置
logo
logo
logo
logo
logo


文章作者: GengTao
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 GengTao !
  目录