2021年2月

PhpStorm 2020.2 配置 xdebug 远程调试

WEB远程调试

Run > Web Server debug Validation 检查服务器 xdebug 配置

服务器安装 xdebug 扩展和 .ini 配置

zend_extension = xdebug.so
xdebug.remote_enable = 1
xdebug.remote_connect_back = 0 // 远程多IP调试 remote_addr 
xdebug.remote_host = 127.0.0.1 // 本地IP调试   远程调试使用ssh端口转发 ssh -g -N -R 9000:127.0.0.1:9000 user@server
xdebug.remote_port = 9000
xdebug.max_nesting_level = 512

Settings > Languages & Frameworks > PHP > Debug   配置本地监听端口9000
Settings > Languages & Frameworks > PHP > Servers 配置目录映射

Phpstorm > start listen for php debug connect 监听本地9000端口连接

接口调试携带 Cookie,触发 xdebug 启动:

curl -H "Cookie: XDEBUG_SESSION=PHPSTORM" http://example.com

CLI远程调试

Settings > Languages & Frameworks > PHP > Cli 配置CLI路径(本地/远程)

Run > Edit Configuration 添加 php 目标脚本,选择执行的 Cli 配置

Run > Debug 选择要调试的目标脚本、原理: 命令行携带 -d xdebug 相关参数执行触发调试

通过 dbgpProxy 实现多人调试

客户端 -> 中间机(启动dbgpProxy) -> 服务端

dbgpProxy.exe -i 127.0.0.1:9001 -s 0.0.0.0:9003 // -i 给ide链接、-s 给服务端xdebug链接

Settings > Languages & Frameworks > PHP > Debug > DBGp Proxy  设置 idekey / host / port (zhorz、127.0.0.1、9001)

服务端 xdebug 依然链接本地

xdebug.remote_host = 127.0.0.1
xdebug.remote_port = 9000

ssh -g -N -R 9000:127.0.0.1:9003 user@server // 中间机设置端口转发

Tool -> DBGp Proxy -> Register IDE Phpstorm // IDE注册,接收对应 idekey 转发的 debug 信息

Phpstorm > start listen for php debug connect 监听本地9000端口连接

接口调试携带 Cookie,触发 xdebug 启动:

curl -H "Cookie: XDEBUG_SESSION=zhorz" http://example.com