0

0

在VS Code中设置PHP开发环境并使用Xdebug调试

P粉986688829

P粉986688829

发布时间:2025-12-04 19:21:06

|

981人浏览过

|

来源于php中文网

原创

在VS Code中配置PHP开发环境并启用Xdebug调试需完成三步:安装PHP(CLI)、配置Xdebug扩展、使用PHP Debug插件连接;关键在于路径正确、端口一致(默认9003)、php.ini与launch.json端口匹配、pathMappings映射准确。

在vs code中设置php开发环境并使用xdebug调试

在 VS Code 中配置 PHP 开发环境并启用 Xdebug 调试,核心是三件事:装好 PHP(含 CLI)、配对 Xdebug 扩展、用 VS Code 的 PHP Debug 插件连接调试器。只要路径对、端口通、配置准,断点就能停住。

安装并验证本地 PHP 环境

VS Code 本身不运行 PHP,它依赖你系统已安装的 PHP 解释器。先确认命令行能调用 php

  • 终端输入 php -v,看到版本号(如 8.1+)说明已安装
  • 输入 php -m | grep xdebug,若无输出,说明 Xdebug 还没装或没启用
  • 推荐用 windows.php.net(Windows)或 brew install php(macOS)获取干净 PHP 包,避免 MAMP/XAMPP 带来的路径混乱

安装并配置 Xdebug(以 PHP 8.0+ 为例)

Xdebug 3 与旧版配置差异大,别套用网上 Xdebug 2 的 php.ini 写法。正确步骤如下:

  • php -v 查看 PHP 版本和架构(如 Thread Safe 或 Non-Thread Safe),去 xdebug.org/download 下载对应 .dll(Windows)或 .so(macOS/Linux)文件
  • 把下载的 xdebug.so 或 php_xdebug.dll 放到 PHP 的 ext/ 目录下
  • 编辑 php.ini(用 php --ini 找准确路径),在末尾添加:
[xdebug]
zend_extension=xdebug.so
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=127.0.0.1
xdebug.client_port=9003
xdebug.log=/tmp/xdebug.log  ; 临时开启,查连不上时看日志

注意:xdebug.client_port 默认是 9003(不是旧版的 9000),VS Code 插件默认也连这个端口,保持一致才不会“断点不触发”。

立即学习PHP免费学习笔记(深入)”;

在 VS Code 中安装插件并配置 launch.json

打开 VS Code,装两个关键插件:

  • PHP Intelephense(代码提示、跳转、错误检查)
  • PHP Debug(由 Felix Becker 维护,支持 Xdebug 3)

然后在项目根目录创建 .vscode/launch.json(可通过命令面板 → “Debug: Open launch.json” 自动生成):

Kuwebs企业网站管理系统3.1.5 UTF8
Kuwebs企业网站管理系统3.1.5 UTF8

酷纬企业网站管理系统Kuwebs是酷纬信息开发的为企业网站提供解决方案而开发的营销型网站系统。在线留言模块、常见问题模块、友情链接模块。前台采用DIV+CSS,遵循SEO标准。 1.支持中文、英文两种版本,后台可以在不同的环境下编辑中英文。 3.程序和界面分离,提供通用的PHP标准语法字段供前台调用,可以为不同的页面设置不同的风格。 5.支持google地图生成、自定义标题、自定义关键词、自定义描

下载
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Listen for Xdebug",
      "type": "php",
      "request": "launch",
      "port": 9003,
      "pathMappings": {
        "/var/www/html": "${workspaceFolder}"
      }
    }
  ]
}

重点说明:

  • port 必须和 php.ini 里的 xdebug.client_port 一致
  • pathMappings 是关键!左边是服务器上 PHP 实际运行的绝对路径(比如 Docker 容器里是 /var/www/html),右边是本地项目路径。本地开发没容器就写成 "${workspaceFolder}": "${workspaceFolder}"
  • 启动调试前,先点左下角绿色 ▶️ 启动监听,再在浏览器访问脚本(如 http://localhost/test.php),断点才会生效

验证调试是否成功

写个简单 test.php:


操作流程:

  • VS Code 中按 Ctrl+Shift+D(Windows/macOS)打开调试面板,选中 “Listen for Xdebug”
  • 点绿色 ▶️ 启动监听(状态栏出现 “Xdebug listening”)
  • 浏览器打开 http://localhost/test.php(确保 PHP 服务正在运行)
  • VS Code 自动停在断点,变量窗显示 $x=1,可单步、续行、查看堆栈——说明全通了

如果没反应,优先检查:php -m 是否列出 xdebugphp --ini 确认改的是真 php.ininetstat -an | grep 9003 看端口是否被占用

基本上就这些。不复杂但容易忽略 pathMappings 和端口一致性,调通一次,后续项目复制配置就行。

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

418

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

535

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

311

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

77

2025.09.10

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

395

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

575

2023.08.10

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

395

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

575

2023.08.10

俄罗斯Yandex引擎入口
俄罗斯Yandex引擎入口

2026年俄罗斯Yandex搜索引擎最新入口汇总,涵盖免登录、多语言支持、无广告视频播放及本地化服务等核心功能。阅读专题下面的文章了解更多详细内容。

21

2026.01.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 9.8万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.2万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号