在 VSCode 中测试作者为 Xdebug 官方的 PHP Debug 插件(原 Felix Becker 插件,现归 Xdebug 维护)是否可用,核心是验证「VSCode 插件 ↔ Xdebug 扩展(XAMPP 中)↔ PHP 脚本」的联动性。以下是适配你 XAMPP 开发环境的完整测试流程,重点解决「断点命中、变量查看、单步调试」核心验证点:

一、前提确认(必做!调试依赖 Xdebug 扩展)

PHP Debug 插件仅为 VSCode 调试客户端,真正的调试核心是 XAMPP 中 PHP 启用的 Xdebug 扩展,需先确保 Xdebug 已正确配置:

1. 确认 VSCode 插件已安装

打开 VSCode → 左侧「扩展」(Ctrl+Shift+X)→ 搜索「PHP Debug」→ 确认插件作者为「Xdebug」(而非其他第三方),且已启用。

2. 启用 XAMPP 的 Xdebug 扩展

XAMPP 自带 Xdebug,但默认未启用,需修改 php.ini 配置:

  • 确认php_xdebug.dll是否存在:
    打开 XAMPP 的 PHP 扩展目录(如 D:\xampp\php\ext),直接查看是否有 php_xdebug.dll 文件;若没有,需通过 Xdebug 官网向导(https://xdebug.org/wizard)匹配 PHP 版本下载,重命名后放入该目录。
  • 找到 php.ini 路径:
    Windows:C:\xampp\php\php.ini;
    macOS:/Applications/XAMPP/xamppfiles/etc/php.ini;
  • 编辑 php.ini(用 VSCode 打开),搜索 [xdebug] 段,添加/替换以下配置(适配 Xdebug 3.x,XAMPP 8.0+ 标配):
    [xdebug]
    ; Windows 下 Xdebug 扩展路径(XAMPP中php_xdebug.dll的路径)
    zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
    ; macOS 路径替换为:zend_extension = "/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20220829/xdebug.so"
    
    ; 核心调试配置
    xdebug.mode = debug       ; 开启调试模式(必填)
    xdebug.start_with_request = yes  ; 请求时自动启动调试
    xdebug.client_port = 9003 ; Xdebug 3.x 默认端口(2.x 是 9000,需统一)
    xdebug.client_host = localhost  ; 本地调试
    xdebug.idekey = VSCODE    ; 关联 VSCode 标识
    xdebug.log = "C:\xampp\tmp\xdebug.log" ; 可选:调试日志,排错用
    
  • 重启 XAMPP 的 Apache 服务(必须重启,配置才生效):
    打开 XAMPP Control Panel → 停止 Apache → 重新启动 Apache。
3. 验证 Xdebug 是否生效

在 XAMPP 的 htdocs 目录新建 phpinfo.php,内容:

<?php phpinfo(); ?>

浏览器访问 http://localhost/phpinfo.php(改端口则加 :8080),搜索「Xdebug」:

  • ✅ 成功:能看到 Xdebug 版本、xdebug.mode = debug 等配置;
  • ❌ 失败:检查 zend_extension 路径是否正确(XAMPP 不同版本的 php_xdebug.dll 路径可能略有差异)。

二、配置 VSCode 调试规则(launch.json)

VSCode 需要通过 launch.json 关联本地代码和 XAMPP 的 PHP 环境:

  1. 打开 VSCode → 左侧「运行和调试」(Ctrl+Shift+D)→ 点击「创建 launch.json 文件」;
  2. 在下拉框中选择「PHP」,VSCode 自动生成默认配置;
  3. 修改 launch.json 适配你的 XAMPP 环境(重点是 pathMappings 和 port):
    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "Listen for Xdebug", // 监听网页请求(适配 WordPress 等网页脚本)
                "type": "php",
                "request": "launch",
                "port": 9003, // 必须和 php.ini 中 xdebug.client_port 一致
                "pathMappings": {
                    // 左侧:XAMPP 网站根目录;右侧:VSCode 打开的工作区目录
                    "C:/xampp/htdocs": "${workspaceFolder}" // Windows 路径(注意斜杠)
                    // macOS 替换为:"/Applications/XAMPP/htdocs": "${workspaceFolder}"
                },
                "log": true // 可选:开启调试日志,排错用
            },
            {
                "name": "Launch Current PHP Script", // 直接运行当前文件(CLI 调试)
                "type": "php",
                "request": "launch",
                "program": "${file}", // 当前打开的 PHP 文件
                "cwd": "${fileDirname}", // 文件所在目录
                "port": 9003 // 同上,匹配 Xdebug 端口
            }
        ]
    }
    
  4. 保存 launch.json(文件自动存到工作区 .vscode 文件夹)。

三、创建测试文件并测试调试功能

步骤 1:创建测试 PHP 文件

在 VSCode 中打开 XAMPP 的 htdocs 目录(文件 → 打开文件夹 → 选 C:\xampp\htdocs),新建 test-xdebug.php:

<?php
// 测试调试的核心代码
$site = "GTACamp";
$version = "6.8.3";
$num1 = 10;
$num2 = 20;

// 这行设置断点(关键!)
$sum = $num1 + $num2;

echo "Hello {$site}! WordPress Version: {$version}<br>";
echo "Sum: {$sum}";
?>
步骤 2:设置断点

在 $sum = $num1 + $num2; 这行的行号左侧点击,出现「红色圆点」→ 断点设置完成。

步骤 3:测试两种调试场景(核心验证)
场景 1:网页请求调试(适配 WordPress 等项目)

这是开发 WordPress 时最常用的调试方式(调试网页访问的 PHP 脚本):

  1. VSCode 「运行和调试」面板 → 选择「Listen for Xdebug」→ 点击绿色「启动调试」按钮(或按 F5);
    • ✅ 启动成功:VSCode 底部状态栏变为橙色,提示「正在监听 Xdebug on port 9003」;
  2. 打开浏览器,访问 http://localhost/test-xdebug.php(改端口则加 :8080);
  3. 此时浏览器会「卡住」,VSCode 自动聚焦,验证核心功能:
    • ✅ 断点命中:断点行高亮(黄色),代码执行暂停;
    • ✅ 查看变量:右侧「运行和调试」→「变量」栏,能看到 $site=GTACamp、$num1=10 等变量值;
    • ✅ 单步执行:按 F10 执行下一行代码,$sum 会被赋值为 30;
    • ✅ 继续运行:按 F5 恢复执行,浏览器显示完整输出(Hello GTACamp! WordPress Version: 6.8.3<br>Sum: 30)。
场景 2:CLI 直接调试(适配单独 PHP 脚本)

无需浏览器,直接在 VSCode 中运行调试 PHP 文件:

  1. 在 VSCode 中打开 test-xdebug.php;
  2. 「运行和调试」面板 → 选择「Launch Current PHP Script」→ 点击绿色启动按钮;
  3. VSCode 直接执行脚本,命中断点后,可同样查看变量、单步执行,调试控制台会输出结果(无需访问浏览器)。

四、核心避坑要点(新手必看)

  1. 端口不匹配:
    Xdebug 3.x 端口是 9003,2.x 是 9000,需确保 php.ini 的 xdebug.client_port 和 launch.json 的 port 完全一致(比如都改 9004 也可以,只要统一)。
  2. pathMappings 错误:
    若断点提示「未绑定到文件」,说明 pathMappings 中 XAMPP 路径和 VSCode 工作区路径不匹配(比如 Windows 路径写成 C:\xampp\htdocs\ 多了斜杠,或 macOS 路径大小写错误)。
  3. Xdebug 未启动:
    修改 php.ini 后必须重启 Apache,否则 Xdebug 配置不生效;若 phpinfo() 看不到 Xdebug,检查 zend_extension 路径是否正确(可在 XAMPP 的 php/ext 目录下确认 php_xdebug.dll 存在)。
  4. Windows 权限问题:
    若 Xdebug 日志提示「无法写入」,给 C:\xampp\tmp 目录分配「完全控制」权限(右键 → 属性 → 安全)。

总结

只要能完成「断点命中 → 查看变量 → 单步执行 → 恢复运行」,就说明 Xdebug 官方的 PHP Debug 插件可用。该测试流程完全适配你的 XAMPP + WordPress 开发环境,后续调试 gtacamp-wp 中的主题/插件代码时,只需在对应 PHP 文件(如自定义字段、自定义文章类型代码)设置断点,选择「Listen for Xdebug」启动调试,访问对应页面即可命中断点,精准排查代码问题。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐