VirtualBox+SSH环境下远程PhpStorm的Xdebug调试失效问题
排查与解决Xdebug远程调试无响应问题
一、验证SSH隧道有效性
- 在Windows主机执行
nc -zv 192.168.0.104 9000或telnet 192.168.0.104 9000,确认端口连通性。若不通:- 给Ubuntu虚拟机放行9000端口:
sudo ufw allow 9000/tcp - 重新建立后台运行的SSH隧道:
ssh -N -T -R 9000:localhost:9003 pavel@md.mydomain.local - 修改Ubuntu的sshd配置,将
GatewayPorts设为yes(编辑/etc/ssh/sshd_config后重启服务:sudo systemctl restart sshd)
- 给Ubuntu虚拟机放行9000端口:
二、修正Docker容器内的Xdebug配置
替换原有xdebug.ini配置,确保参数匹配环境:
xdebug.mode = debug xdebug.start_with_request = yes xdebug.client_host = 172.16.100.1 # 虚拟机桥接IP,Docker可直接访问 xdebug.client_port = 9000 # 对应SSH隧道映射的端口 xdebug.log = /var/log/xdebug.log # 开启日志用于排查 xdebug.idekey = PHPSTORM
- 重启Docker容器生效,查看日志确认连接状态:
docker exec <容器名> cat /var/log/xdebug.log
三、核对PhpStorm的Servers配置
进入Settings > Languages & Frameworks > PHP > Servers:
- 服务器名称与
xdebug.idekey保持一致(如PHPSTORM) - 主机填
md.mydomain.local,端口设为10443 - 勾选
Use path mappings,将容器内项目根目录(如/var/www/html)映射到PhpStorm打开的项目根目录 - 确保调试器选择
Xdebug
四、确认PhpStorm监听状态
- 点击右上角电话图标,开启Start Listening for PHP Debug Connections
- 进入
Settings > Languages & Frameworks > PHP > Debug:- Xdebug监听端口设为
9003 - 勾选
Can accept external connections
- Xdebug监听端口设为
五、强制触发调试请求
- 访问页面时手动添加触发参数:
md.mydomain.local:10443?XDEBUG_SESSION_START=PHPSTORM - 或使用浏览器Xdebug Helper插件,开启调试模式后再访问页面
内容的提问来源于stack exchange,提问作者Pavel Sumarokov
相关产品推荐
相关产品推荐

