PhpStorm中Xdebug无法捕获Node转发至PHP的调试请求
多转发链路下PhpStorm无法捕获Xdebug调试请求排查记录
问题现象
- 正常场景:浏览器直接向PHP发起请求(配合Xdebug Helper扩展),PhpStorm可正常捕获调试请求
- 异常场景:请求链路为
浏览器 -> nginx -> Node服务 -> 运行在localhost:9000的PHP应用时,PhpStorm完全无法捕获Xdebug调试请求
已完成的配置校验
Xdebug运行参数
当前使用Xdebug 3.0.2、PHP 7.4.15,FPM、CLI、Apache 2、CGI所有运行环境下的php.ini中Xdebug配置完全一致,且通过phpinfo、php -i输出确认所有参数生效,Step Debugger功能已启用,配置内容为:
[xdebug] zend_extension="/usr/lib/php/20190902/xdebug.so" xdebug.start_with_request=yes xdebug.idekey=PHPSTORM xdebug.mode=debug xdebug.client_host=127.0.0.1 xdebug.client_port=9003
PhpStorm侧配置
- Debug端口设置为9003,所有调试选项已勾选
- DBGP代理配置:IDE key为PHPSTORM、Host为127.0.0.1、Port为9003
- 远程调试配置指向127.0.0.1服务器(端口80),路径映射与可正常调试的浏览器直连场景完全一致,IDE key设置为PHPSTORM
- 已尝试开启/关闭调试连接过滤,问题未得到解决
排查关键线索
核对xdebug.log日志发现:日志仅能记录浏览器直接发起的调试请求,Node转发链路下无任何Xdebug相关日志输出,说明该链路的请求流程中Xdebug根本没有被触发。
问题根因与解决结果
- 根因:PHP的FPM套接字链接配置错误
- 解决方式:将套接字正确关联至
php7.4-fpm.sock后,全链路调试功能恢复正常
内容的提问来源于stack exchange,提问作者tannerman
相关产品推荐
相关产品推荐

