WEB远程调试
Run > Web Server debug Validation 检查服务器 xdebug 配置
deployment 设置如下:
root path: /path/to/remote/project
local path: /path/to/local/project
deployment path: /public
web path: /
服务器安装 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