You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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)

二、修正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

五、强制触发调试请求

  • 访问页面时手动添加触发参数:md.mydomain.local:10443?XDEBUG_SESSION_START=PHPSTORM
  • 或使用浏览器Xdebug Helper插件,开启调试模式后再访问页面

内容的提问来源于stack exchange,提问作者Pavel Sumarokov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 04:06:11