php 8.6需手动安装xdebug 3.3+,严格匹配ts/nts类型,配置必须用xdebug.mode=debug、client_port=9003等新参数,禁用所有remote_*旧项,并通过xdebug_info()验证全链路生效。

PHP 8.6 默认不带 Xdebug,需手动安装并配置。Xdebug 3.3+ 已全面支持 PHP 8.6,配置逻辑清晰、端口默认为 9003,且必须使用 xdebug.mode=debug 等新参数体系,旧版 remote_* 配置已彻底废弃。
确认环境与下载匹配扩展
先获取准确的 PHP 构建信息,避免扩展加载失败:
- 运行
php -v查看主版本(如PHP 8.6.0)及 TS/NTS 标识(如NTS) - 新建
info.php,内容为<?php phpinfo(); ?>,通过浏览器访问后全选页面源码 - 将源码粘贴至 Xdebug 官方安装向导,它会精准推荐 .so(Linux/macOS)或 .dll(Windows)文件
- 下载后,记下文件完整路径(如
/usr/lib/php/20240821/xdebug.so或C:\php\ext\php_xdebug.dll)
修改 php.ini 启用调试模式
找到真实生效的 php.ini(执行 php --ini 确认),在文件末尾添加以下配置(仅保留必要项):
-
zend_extension = /path/to/xdebug.so(Windows 改为.dll路径,注意反斜杠转义) -
xdebug.mode = debug(启用远程调试;可叠加develop显示美化错误) -
xdebug.start_with_request = trigger(推荐:仅当 URL 带XDEBUG_SESSION_START=1时启动,更安全) -
xdebug.client_host = 127.0.0.1(本地开发)或host.docker.internal(Docker 容器内 PHP 连宿主机 IDE) -
xdebug.client_port = 9003(Xdebug 3 默认端口,勿用 9000) -
xdebug.log = /tmp/xdebug.log(Linux/macOS)或xdebug.log = C:\temp\xdebug.log(Windows,用于排错)
保存后,重启 Web 服务(Apache/Nginx)或 PHP-FPM 进程。
IDE 端对接(以 VS Code 为例)
确保已安装官方扩展 PHP Debug(由 Felix Becker 维护):
- 在项目根目录创建
.vscode/launch.json,内容如下:
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003,
"pathMappings": {
"/var/www/html/": "${workspaceFolder}/"
}
}
]
}
-
pathMappings是关键:左侧为服务器上 PHP 实际运行路径(如 Docker 内/var/www/html/),右侧为本地项目路径;务必一一对应,否则断点不命中 - 打开 VS Code 的「运行和调试」视图,点击绿色 ▶ 启动监听(不是直接按 F5)
- 在代码行号左侧单击设断点,然后在浏览器中访问
http://localhost/your-script.php?XDEBUG_SESSION_START=1
验证与常见问题速查
执行以下命令快速确认是否就绪:
-
php -m | grep xdebug→ 应输出xdebug -
php -i | grep "xdebug.mode"→ 应显示debug - 访问
info.php页面,搜索Xdebug,确认模块已加载且参数与配置一致 - 若断点不触发,优先检查:xdebug.log 中是否有 connection failed、IDE 是否在监听 9003、
pathMappings是否写反、是否误留了xdebug.remote_enable=1等废弃参数
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











