VSCode配置PHP开发环境需先安装PHP并验证php -v可用,再安装PHP Intelephense和PHP Debug扩展,配置php.executablePath路径,启用Xdebug并在php.ini中设置xdebug.mode=debug、client_port=9003及idekey=VSCODE,最后配置launch.json完成调试。

VSCode 本身不自带 PHP 运行环境,配置 PHP 的核心是:让 VSCode 能调用你本地已安装的 php 可执行文件,并正确识别语法、支持调试和格式化。没装 PHP 就配不了,这是前提。
确认系统已安装 PHP 并加入 PATH
VSCode 不会帮你装 PHP,它只负责“找到并使用”你装好的 PHP。打开终端运行:
php -v
如果报错 command not found 或 'php' is not recognized,说明 PHP 没装,或没加进系统 PATH。此时 VSCode 的任何插件都起不来。
- Windows 用户:安装 PHP 后务必勾选 Add PHP to PATH,或手动把
php.exe所在目录(如C:/php)加到系统环境变量PATH - macOS 用户:用
brew install php安装后,通常自动可用;若不行,检查which php输出,并确保该路径在 shell 配置文件(如~/.zshrc)中已导出 - Linux 用户:用包管理器安装(如
sudo apt install php-cli),然后验证php -v
安装必要插件:PHP Intelephense + PHP Debug
仅靠 VSCode 默认功能无法实现跳转、补全、断点调试。必须装两个核心插件:
立即学习“PHP免费学习笔记(深入)”;
-
PHP Intelephense(由 Ben Mewburn 开发):提供智能感知、符号跳转、重构、错误检测。它是目前最稳定、响应快的 PHP 语言服务器 -
PHP Debug(by Felix Becker):支持 Xdebug 或 Zend Debugger,用于断点调试。注意:它只是“客户端”,还需配合本地 Xdebug 扩展
别装 PHP Extension Pack 这类合集包——它常含过时或冲突插件,容易导致 intelephense 初始化失败或 php.debug 找不到 launch.json 配置入口。
配置 PHP 可执行路径(关键一步)
即使 php -v 在终端能运行,VSCode 有时仍找不到 php,尤其在 macOS/Linux 使用 zsh 或 Windows 启动方式异常时。需显式指定路径:
打开 VSCode 设置(Cmd+, 或 Ctrl+,),搜索 php.executablePath,填入完整绝对路径:
- macOS:
/opt/homebrew/bin/php(Apple Silicon Homebrew)或/usr/local/bin/php - Windows:
C:/php/php.exe(注意是.exe) - Linux:
/usr/bin/php或/usr/local/bin/php
这个设置会写入 settings.json,形如:
"php.executablePath": "/opt/homebrew/bin/php"
不填此项,Intelephense 可能提示 PHP language server is not running,Xdebug 断点也完全不触发。
调试前必须启用 Xdebug 并匹配 IDE Key
PHP Debug 插件只是前端,真正监听请求的是 Xdebug 扩展。缺这步,按 F5 会卡在 “Launching…” 或直接报错 Could not open input file: /path/to/your/script.php。
- 确认
php --m | grep xdebug有输出;没有就去 xdebug.org/wizard 上传phpinfo()页面,按指引编译或下载对应xdebug.so/php_xdebug.dll - 编辑
php.ini,加入(Xdebug 3+ 写法):
[XDebug] zend_extension=xdebug xdebug.mode=debug xdebug.start_with_request=trigger xdebug.client_host=127.0.0.1 xdebug.client_port=9003 xdebug.idekey=VSCODE
注意:xdebug.client_port 必须与 VSCode launch.json 中的 port 一致(默认 9003);idekey 必须和插件里设置的 IDE key 完全匹配(默认是 VSCODE)。
改完重启 Web 服务(如 Apache/Nginx)或 CLI 环境,再运行 php -m 和 php -i | grep xdebug 验证生效。
路径、版本、IDE Key 这三项对不上,调试就永远连不上——不是插件问题,是两端“说的不是同一种协议”。
