Sublime Text 本身不运行 PHP,仅调用系统已安装的 php-cli;若终端中 php -v 报错,则构建系统必然失败,首要确认 PATH 配置正确且 Sublime 启动方式能继承 shell 环境变量。

Sublime Text 本身不运行 PHP,它只负责调用你系统里已安装的 php 命令行程序(php-cli)。如果 php -v 在终端报错,那 Sublime 就不可能“运行”成功——别折腾构建系统,先解决这个前提。
为什么按 Ctrl+B 没反应或报 “command not found”
这是最常卡住的地方:Sublime 启动时读取的是 GUI 环境下的环境变量,和你在终端里配好的 PATH 往往不一致。即使你 Terminal 里能跑 php -v,Sublime 可能完全找不到 php。
- Windows 用户常见情况:装了 XAMPP,
php.exe在C:/xampp/php/php.exe,但没把C:/xampp/php加进系统Path变量 - macOS M1/M2 用户容易混用 Intel 和 ARM 版本 Homebrew,导致
which php输出路径和 Sublime 实际找的不一致 - Linux 用户若用
sudo apt install php,实际安装的是php7.4或php8.2包,得确认是否装了php-cli(Ubuntu/Debian)或php-common(CentOS) - 验证方式:在 Sublime 控制台(
Ctrl+`)里输入import os; print(os.environ.get('PATH')),看输出里有没有你的php所在目录
怎么写一个不踩坑的 PHP.sublime-build
构建系统本质是告诉 Sublime:“用什么命令、带什么参数、在哪工作”,不是写个 JSON 就完事。关键点在于路径处理、编码兼容和错误定位。
-
"cmd"必须用-f参数:["php", "-f", "$file"],避免文件名被误解析为 CLI 参数 - Windows 下路径含空格(如
C:\Program Files\php)时,不能只写["php", "-f", "$file"],得用绝对路径 +"shell": true,例如:["C:/php/php.exe", "-f", "$file"]并加"shell": true - 中文输出乱码?Windows 默认控制台是 GBK,PHP 文件是 UTF-8,加
"encoding": "UTF-8"不起作用;改用["cmd", "/c", "php", "-f", "$file"]并设"shell": true,让 cmd 自动转码 - 想点击错误行号跳转?加
"file_regex": "php.*?on line ([0-9]+)",但注意它只匹配标准 PHP 错误格式,Xdebug 或自定义错误处理器会失效 -
"path"字段慎用:它会覆盖 Sublime 的默认PATH,仅当必须指定 PHP 目录时才加,比如 macOS 上"osx": ["/opt/homebrew/bin"]
为什么 echo 出来了,但浏览器打不开 index.php
Sublime 的构建系统只做 CLI 执行,输出结果到底部面板,和网页渲染完全无关。双击 .php 文件或拖进浏览器,只会下载源码或显示白屏——PHP 是服务端语言,必须走 HTTP 请求。
立即学习“PHP免费学习笔记(深入)”;
- 本地预览唯一靠谱方式:用 PHP 内置服务器,终端执行
php -S localhost:8000(PHP 5.4+),然后浏览器访问http://localhost:8000/index.php - 别把
php -S写进构建系统:"cmd": ["php", "-S", "localhost:8000"]会让 Sublime 卡住,且无法自动退出进程 - 如果用 XAMPP/WAMP,把文件放进
htdocs目录,启动 Apache,再访问http://localhost/xxx.php - CLI 和 Web 模式用的
php.ini可能不同:php -v显示的配置路径 ≠ Apache 加载的php.ini,调试时注意extension=是否两边都启用
最容易被忽略的点是:Sublime 启动方式决定它能不能读到你 shell 配置里的 PATH。从 Dock 或桌面图标启动,大概率读不到;从终端执行 subl . 启动,才能继承当前 shell 的全部环境变量——这点 Windows 和 macOS 用户都容易栽跟头。



















