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

WSL2 Ubuntu20.04环境PhpStorm中Xdebug2.9.2无法建立调试连接

WSL2环境PhpStorm+Xdebug2.9.2连接失败排查方案

核心配置错误修正

你当前配置里xdebug.remote_host=127.0.0.1是直接触发连接失败的核心原因:WSL2是独立NAT虚拟网络环境,WSL内的127.0.0.1指向WSL自身回环地址,根本不是Windows主机上PhpStorm的监听地址。

分步排查操作

1. 修正Xdebug加载配置

首先确认Xdebug配置的加载位置,在WSL终端执行:

php --ini

根据输出找到对应加载的php.ini文件(注意区分CLI模式和FPM模式的配置路径,Web调试要改FPM对应的ini,CLI脚本调试改CLI对应的ini),替换原有Xdebug配置为以下内容:
注意:-d仅用于php命令执行时临时传参,写在ini配置文件里不要加-d前缀,否则参数会完全不生效

xdebug.remote_enable=1
; 建议把端口改成9003,避免和PHP-FPM默认监听的9000端口冲突
xdebug.remote_port=9003
; 先在WSL执行ip route show default | awk '/default/ {print $3}' 获取虚拟网络中Windows主机的网关IP,替换下面的占位符
xdebug.remote_host=【这里填上面命令输出的IP】
xdebug.remote_autostart=1
xdebug.remote_connect_back=Off

改完配置后重启对应服务:

  • CLI调试:重开终端即可
  • Web调试(FPM模式):执行sudo service php<你的PHP版本>-fpm restart,比如PHP7.4就执行sudo service php7.4-fpm restart

验证配置是否生效,执行:

php -m | grep xdebug
php -i | grep xdebug.remote_host

确认Xdebug已加载,且remote_host为刚才获取的Windows网关IP,不是127.0.0.1。

2. 修正PhpStorm端配置

  • 打开Settings > PHP > Debug,把Xdebug的调试监听端口改成和配置一致的9003,取消勾选Ignore external connections through unregistered server configurations避免拦截连接
  • 点击PhpStorm右上角电话形状的「Start Listening for PHP Debug Connections」按钮,确保图标处于点亮的监听状态
  • 打开Settings > PHP > Servers,新增对应项目的服务条目:
    • 主机填你本地访问项目的地址(比如localhost、自定义本地域名)
    • 端口填Web服务的监听端口(比如80、8080)
    • 勾选Use path mappings,将Windows端的项目目录,精确映射到WSL内项目的绝对路径(比如Windows路径D:\code\my-project对应WSL路径/home/yourname/www/my-project,路径写错会直接导致断点不生效)
  • 如果你用WSL作为PHP解释器,要在Settings > PHP > CLI Interpreter里选择对应WSL发行版的PHP路径,不要选Windows本地的PHP解释器。

3. 打通网络连通性

  • 打开Windows高级防火墙,添加入站规则:允许PhpStorm程序通过所有网络类型的防火墙,或者放开9003端口的入站访问(WSL虚拟网络的连接默认会被公共网络规则拦截,这是第二高发的失败原因)。如果装了第三方安全软件,也要对应放开端口拦截。
  • 验证连通性:保持PhpStorm处于监听状态,在WSL终端执行:
    nc -zv 【之前获取的Windows网关IP】 9003
    
    如果返回succeeded说明网络通路正常;如果返回连接拒绝,优先检查PhpStorm是否开了监听、端口是否一致、防火墙是否拦截。

4. 其他遗漏项检查

  • 如果用浏览器做Web调试,安装Xdebug Helper插件,将插件状态切换为Debug模式
  • 确认Xdebug版本和PHP版本匹配:Xdebug2.9.2仅支持PHP7.2-7.4版本,PHP8.0+需要升级Xdebug到3.x版本
  • 执行php -i | grep "additional .ini files"确认没有其他配置文件覆盖了你写的Xdebug参数

内容的提问来源于stack exchange,提问作者5abre

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 16:36:39