(php8.2)phpstorm xdebug远程调试docker中的项目

注意:本文基于php8.2,不同版本的php对应不同版本的xdebug。对应的xdebug配置也不同。php5.6版本的配置在另一篇文章中。

安装xdebug

请参考另一篇文章,如何在linux上安装xdebug插件。

修改php.ini文件

开启xdebug扩展,并且配置xdebug配置信息。

zend_extension = xdebug(注意:不是extension = xdebug)

[xdebug] 
zend_extension="/www/server/php/82/lib/php/extensions/no-debug-non-zts-20220829/xdebug.so"
xdebug.log=xdebug.log
xdebug.mode=debug
xdebug.start_with_request = yes
xdebug.remote_handler="dbgp"
xdebug.client_port = 9001
; 此配置值就是下面的固定字符串,不用替换为某个ip
xdebug.client_host= "host.docker.internal"
xdebug.idekey="PHPSTORM"
xdebug.discover_client_host=true

配置phpstorm

如下图端口配置为9001,请和php.ini中的端口保持一致,调试时,php中的xdebug插件会将调试信息通过此端口请求到phpstorm(xdebug为客户端,phpstorm为服务端,组成一个c/s结构,通讯协议为DBGp)

配置xdebug端口

配置phpstorm的端口,需要和php.ini中的保持一致,phpstorm作为服务端将监听这个端口,接收来自xdebug的调试信息。
配置DBGp proxy

配置服务器路径和本机项目路径的map(映射),这样phpstorm才能将接收到的调试信息应用到本地的对应文件的代码中。
配置文件路径映射

配置调试项目为php remote debug。
配置远程调试

点击调试按钮,phpstorm将开始监听调试信息,命中断点。
点击调试按钮

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注