GWSL与XDebug:为Shopware6开发模板配置WSL XDebug隧道
解决WSL中PhpStorm与Docker容器XDebug连接问题
1. 确认PhpStorm的XDebug监听配置
- 打开PhpStorm,进入
Settings > PHP > Debug - 确认XDebug的
Debug port为9003(XDebug3默认)或9000(XDebug2默认) - 勾选
Can accept external connections,并确保右上角的调试监听按钮(电话图标)为绿色激活状态 - 若PhpStorm仅监听
localhost,后续需通过socat做转发
2. 在WSL中安装socat
执行终端命令:
sudo apt update && sudo apt install socat -y
3. 获取WSL的局域网IP
执行以下命令获取WSL eth0网卡的IP地址:
ip addr show eth0 | grep inet | awk '{print $2}' | cut -d/ -f1
记下输出的IP(例如192.168.1.100)
4. 启动socat端口转发
在WSL终端执行,将WSL局域网IP的指定端口流量转发到PhpStorm监听的本地端口:
sudo socat TCP-LISTEN:9003,bind=你的WSL_IP,reuseaddr,fork TCP:localhost:9003
- 替换
你的WSL_IP为步骤3获取的IP - 若使用XDebug2,将端口替换为9000
- 可将该命令添加到WSL启动脚本(如
~/.bashrc),实现开机自动运行
5. 修改Shopware6容器的XDebug配置
找到Shopware6开发模板的环境配置文件(通常是.env或docker-compose.yml),更新XDebug参数:
XDebug3配置:
XDEBUG_MODE=debug XDEBUG_CLIENT_HOST=你的WSL_IP XDEBUG_CLIENT_PORT=9003 XDEBUG_IDEKEY=PHPSTORM
XDebug2配置:
XDEBUG_ENABLE=1 XDEBUG_REMOTE_HOST=你的WSL_IP XDEBUG_REMOTE_PORT=9000 XDEBUG_REMOTE_IDEKEY=PHPSTORM XDEBUG_REMOTE_CONNECT_BACK=0
6. 重启Docker容器
执行命令重启Shopware6的Web应用容器:
docker-compose restart web
7. 验证调试连接
- 在PhpStorm中设置断点
- 访问Shopware6页面触发断点,确认PhpStorm能正常捕获调试请求
内容的提问来源于stack exchange,提问作者Zirc75
相关产品推荐
相关产品推荐

