如何在Visual Studio Code中调试PHP代码?
VS Code Xdebug PHP逐行调试配置教程
前置检查
首先确认两个必备组件已安装:
- PHP环境已正确安装Xdebug扩展
- VS Code已安装
PHP Debug扩展(由Xdebug官方提供)
步骤1:配置PHP端Xdebug参数
找到当前PHP环境对应的php.ini配置文件,在文件末尾追加以下配置:
[XDebug] zend_extension = "替换为你本地xdebug.so/xdebug.dll的绝对路径" xdebug.mode = debug xdebug.start_with_request = yes xdebug.client_host = 127.0.0.1 xdebug.client_port = 9003 xdebug.idekey = VSCODE
配置保存后重启PHP服务(PHP-FPM、Apache或Nginx对应服务),新建包含<?php phpinfo(); ?>的PHP文件访问,搜索Xdebug字段确认配置已生效。
步骤2:配置VS Code调试配置文件
- 打开你需要调试的PHP项目的根文件夹(不要单独打开单个PHP文件,否则断点会失效)
- 按下快捷键
Ctrl+Shift+D(Mac系统为Command+Shift+D)打开调试面板 - 点击面板顶部的「创建launch.json文件」选项,在弹出的环境选择列表中选中
PHP,会自动生成默认调试配置 - 打开生成的
.vscode/launch.json文件,确认配置中的port参数值和php.ini中设置的xdebug.client_port一致,默认值为9003,如有修改需同步更新
步骤3:执行逐行调试
- 打开你需要调试的PHP文件,点击目标代码行号的左侧位置,会出现红色圆点标识,即为设置成功的断点
- 回到调试面板,点击左上角的绿色三角启动调试按钮,编辑器顶部会出现调试控制工具栏
- 正常访问对应的PHP页面/执行PHP脚本,代码运行到断点位置时会自动暂停
- 调试工具栏核心功能说明:
- 继续执行:直接运行到下一个断点位置
- 单步跳过:逐行执行代码,遇到函数时不会进入函数内部
- 单步进入:逐行执行代码,遇到函数时会进入函数内部继续逐行运行
- 单步跳出:从当前进入的函数内部跳回调用位置
- 调试过程中可在左侧面板查看当前所有变量的实时值,也可自定义添加需要监控的变量
常见异常排查
- 断点无法触发:优先检查
php.ini中xdebug.mode是否为debug,两端端口配置是否一致,是否正确打开项目根目录 - 调试无响应:检查本地防火墙是否拦截了Xdebug使用的端口,是否有其他程序占用了对应端口
内容的提问来源于stack exchange,提问作者userDuR
相关产品推荐
相关产品推荐

