xdebug 调试需确保模块加载、端口畅通(默认9003)、配置正确(v3+用xdebug.mode=debug)、插件选用debugger、pathmappings严格匹配、断点生效、浏览器启用xdebug helper并带触发参数访问。

确认 Xdebug 已加载且端口畅通
Sublime 本身不跑调试逻辑,它只是接收 Xdebug 主动连接的“监听器”。如果 phpinfo() 页面里没看到 Xdebug 模块,或者 php -m | grep xdebug 没输出,后面所有配置都白搭。
- 新版 Xdebug(v3+)必须用
xdebug.mode=debug,不是xdebug.remote_enable=1;旧配置会被忽略 -
xdebug.client_port默认是9003,不是 9000 —— 大多数 Sublime 插件默认连这个端口,改端口就得同步改插件配置 - Windows 用户注意防火墙:
9003被拦截时,Sublime 不报错,只是“断点完全不触发”,建议临时关防火墙或加入例外 - 用
telnet 127.0.0.1 9003测试端口是否可被 PHP 进程访问(非 Sublime),通了才说明 Xdebug 真正在往外发连接
选对插件:Debugger 比 SublimeXdebug 更可靠
截至 2026 年初,Debugger 插件已全面支持 DAP 协议,兼容 Xdebug 3.x 和 PHP 8.2+,而老插件 SublimeXdebug 对 super_globals、多路径映射、异步请求的支持不稳定,容易漏变量或断点失效。
- 安装后走
Tools → Debugger → Open Launch Configurations,选 PHP 模板生成配置,别手写 -
"pathMappings"必须严格匹配:左边是服务器上 PHP 实际运行的绝对路径(如/var/www/html或C:/www/project),右边是 Sublime 项目根目录(${folder}) - 如果项目在 Docker 或 WSL 里,左边路径得填容器内路径,不是宿主机路径;填错会导致断点灰色不可用
- 配置保存后,状态栏右下角会显示
Debugger: PHP,没出现说明配置未加载成功
启动调试前必须做三件事
不是点一下 “Start Debugging” 就能停在断点。Xdebug 是“请求触发式”调试,Sublime 只是被动等连接,少一步就卡死。
- 在 PHP 文件中点击行号左侧设断点(出现红点才算生效,灰色=未识别)
- 确保浏览器装了
Xdebug Helper插件,并手动点击虫子图标启用(不是仅安装) - 访问 URL 时必须带触发参数:
?XDEBUG_SESSION_START=1(或用插件自动加),只打开index.php是不会连上的 - PHP 脚本开头必须有
<?php,否则 Xdebug 直接跳过,Sublime 无任何提示
常见静默失败原因:环境变量与启动方式
最让人抓狂的问题是:配置全对,断点也红了,但就是不中断——十有八九是 Sublime 启动时根本没读到你的 shell PATH 或 php.ini。
- macOS/Linux:从 Dock 或 Spotlight 启动 Sublime,它不继承终端里的
PATH和~/.zshrc;必须在终端执行subl .启动项目 - Windows:XAMPP/WAMP 的
php.exe路径若含空格(如C:\Program Files\...),构建系统或调试器可能解析失败;建议用短路径或符号链接 - PHP CLI 和 Web SAPI 的
php.ini是两份文件:php -i | grep "Loaded Configuration File"查 CLI 配置,phpinfo()查 Web 配置;Xdebug 必须在 CLI 的 ini 里也启用,否则Debugger插件连不上
调试不是配一次就能永远用,每次换 PHP 版本、升级 Xdebug、或重装系统后,php -m 和 php --ini 都得重新验证一遍。别信“上次好好的”。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











