Xdebug Helper插件不区分Chrome或Edge,只要基于Chromium内核(Edge 79+),安装与配置逻辑一致;它仅通过Cookie或GET参数发送调试信号,不负责连接IDE,真正决定调试连通的是xdebug.mode、xdebug.start_with_request及IDE中pathMappings配置。

Xdebug Helper 插件本身不区分 Chrome 还是 Edge,只要浏览器基于 Chromium 内核(Edge 79+ 就是),安装方式、行为逻辑和配置完全一致。 它不负责连接 IDE,只负责发信号;真正决定调试能否连上的,是 xdebug.mode、xdebug.start_with_request 和 launch.json 中的 pathMappings。
怎么装:直接拖 crx 或从商店加,别信“离线安装包”
新版 Chrome/Edge 已禁用非商店来源的扩展加载,所谓“下载 crx 文件拖入”的方式在默认设置下会失败。必须走官方渠道:
- 打开 Chrome 网上应用店 或 Microsoft Edge 加载项商店,搜索
Xdebug Helper - 认准作者是
Derk-Jan Karrenbeld(原作者)或Xdebug官方关联账号 - 点击“添加到 Chrome”或“获取”,安装后地址栏右侧会出现一只小爬虫图标
- 如果看到“已阻止来自此网站的扩展程序”,说明你用了第三方 crx 下载站——删掉,重走商店流程
怎么配:插件里只设 IDE Key,其他全靠 php.ini 和 launch.json
插件界面(点爬虫图标 → Options)里唯一需要你动的地方是 IDE Key 字段。它的作用只是让 Xdebug 知道该把调试请求发给谁:
- VSCode 默认识别
PHPSTORM(历史兼容写法),填这个就行,不用改 - PHPStorm 用户可填
PHPSTORM或留空(新版自动 fallback) - 不要填
VSCODE、vscode或自定义字符串——Xdebug 不认识,会静默忽略 - “Debug URL”、“Cookie domain”等字段绝大多数场景下留空即可,填错反而导致 Cookie 不生效
为什么点了 Debug 没反应:八成是 php.ini 里 xdebug.start_with_request 设错了
这是最常被踩的坑。Xdebug Helper 发的是 Cookie(XDEBUG_SESSION=PHPSTORM),不是 GET 参数。如果 xdebug.start_with_request 设为 yes,Xdebug 就无视 Cookie,每次请求都硬连,容易端口冲突且无法精准控制;设为 off,又完全不响应插件。正确值是:
-
xdebug.start_with_request = trigger(Xdebug 3.1+ 推荐) - 或者旧版 Xdebug 2 的等效写法:
xdebug.remote_autostart = off+xdebug.remote_enable = on - 同时确保
xdebug.mode = debug已启用,且没被其他 mode(如 profile)覆盖 - 验证方法:访问页面后,在 PHP 中打印
$_COOKIE['XDEBUG_SESSION'],有值才说明 Cookie 被正常接收
Edge 浏览器额外注意:同步策略可能干扰 Cookie 传递
如果你开了 Edge 的跨设备同步(尤其登录了微软账户),某些企业策略或隐私设置会阻止第三方 Cookie,导致 XDEBUG_SESSION 无法写入。表现是:Chrome 正常,Edge 点了 Debug 图标也没反应。
- 临时解决:在 Edge 地址栏输入
edge://settings/cookies,关闭“阻止第三方 Cookie” - 更稳妥做法:在插件 Options 页面勾选
Send XDEBUG_SESSION_START as GET parameter,这样它会自动在 URL 后追加?XDEBUG_SESSION_START=PHPSTORM - 注意:启用该选项后,
xdebug.start_with_request必须设为trigger,否则 GET 参数无效
真正卡住调试的,从来不是插件图标点没点亮,而是 php.ini 里那一行 xdebug.start_with_request 的值,以及 launch.json 中 pathMappings 左侧路径是否和 Web 服务器实际 DocumentRoot 完全一致——少一个斜杠、多一层子目录,断点就永远不命中。



















