VSCode本身不运行PHP,仅调用本地php命令;最简验证方式是php -S localhost:8000,因它是PHP 5.4+内置服务器,无需Apache/Nginx,可处理路由、$_SERVER变量和POST请求等完整Web场景。

VSCode 本身不运行 PHP,所有“运行”行为都是调用你本地已安装的 php 可执行文件;点开 index.php 直接在浏览器打开只会看到源码或下载,必须启动 HTTP 服务才能执行。
为什么 php -S localhost:8000 是最简验证方式
这是 PHP 5.4+ 自带的内置服务器,无需 Apache/Nginx/XAMPP,适合单项目快速验证。它不是“运行单个脚本”,而是启动一个真实 Web 服务,能处理路由、$_SERVER 变量、POST 请求等完整 Web 场景。
- 终端进入项目根目录(确保有
index.php或其他入口) - 执行
php -S localhost:8000—— 注意不是php index.php,后者只是 CLI 一次性执行 - 浏览器访问
http://localhost:8000,看到输出才算真正跑起来了 - 报错时别只看浏览器页面:终端里实时打印的错误行(如
Parse error、require(): failed to open stream)才是关键线索
⚠️ 常见坑:php -S 不监听文件变化,改完代码必须手动 Ctrl+C 再重跑;也不支持 .htaccess 或 URL 重写,复杂路由需额外配 router.php 文件。
VSCode 找不到 php 命令?填绝对路径是最稳解法
即使终端里 php -v 能成功,VSCode 图形界面启动时往往不继承 shell 的 PATH(尤其 macOS/Linux 的 ~/.zshrc、Windows 的系统 vs 用户变量差异),导致插件全失效。
立即学习“PHP免费学习笔记(深入)”;
- 先在 VSCode 内置终端里运行
which php(macOS/Linux)或where php(Windows),确认路径是否和你预期一致 - 打开设置(
Cmd+,或Ctrl+,),搜索php.executablePath - 填入绝对路径,例如:
/opt/homebrew/bin/php(Apple Silicon Homebrew)、C:\xampp\php\php.exe(Windows)、/usr/bin/php(Linux) - 路径中含空格?建议重装到纯英文无空格路径(如
C:\php),比加双引号更可靠
填完后重启 VSCode,再按 Ctrl+Shift+P → 输入 PHP: Validate PHP Installation,看到 PHP is available 才算生效。
断点灰色、hover 显示 “unbound breakpoint”?pathMappings 写反了
Xdebug 发送的是服务器上脚本的绝对路径(比如 /var/www/html/index.php),VSCode 必须知道它对应你本地哪个文件夹。漏写、写反、斜杠方向错,断点就永远是空心圆。
- 先确认
phpinfo()页面里有 Xdebug 模块,且版本匹配(Xdebug 3 和 2 配置项名完全不同) -
php.ini中必须启用:xdebug.mode=debug、xdebug.start_with_request=yes、xdebug.client_port=9003(端口要和launch.json一致) -
launch.json中的pathMappings必须严格映射:"${workspaceFolder}": "/var/www/html"—— 左边是你本地路径,右边是 Web 服务看到的路径 - 即使纯本地开发(没 Docker/Vagrant),只要项目不在 Web 根目录,这个映射就必须配
最容易被忽略的是:CLI 模式加载的 php.ini 和 Apache/Nginx 的不是同一份。执行 php --ini 看 Loaded Configuration File 路径,改错文件等于白配。



















