必须手动指定PHP可执行文件的绝对路径,否则Ctrl+B会静默失败或报“Unable to find php”;Sublime默认不读系统PATH,需用which php或where php验证路径,并在.sublime-build中硬编码绝对路径,加variants支持选中运行,修改后须重启或重选构建系统生效。

必须手动指定 php 可执行文件的绝对路径,否则 Ctrl+B 会静默失败或报 Unable to find php 错误——这不是 Sublime 的 bug,而是它默认不读系统 PATH 环境变量。
为什么不能只写 "cmd": ["php", "$file"]
Windows/macOS/Linux 上的 Sublime Build System 默认不继承 shell 的 PATH,所以即使终端里 php -v 能成功,构建系统仍可能找不到 php。尤其在 macOS 使用 Homebrew、Linux 使用非标准 prefix、Windows 使用 Laragon/XAMPP 时,php 很可能不在 /usr/bin/php 或 C:\php\php.exe 这些“常识路径”上。
验证路径是否正确的方法:在终端运行 which php(macOS/Linux)或 where php(Windows),复制输出的完整路径。
如何写一个可靠的 .sublime-build 文件
新建 Build System 后,用以下结构替换默认内容,关键点是把 php 换成绝对路径,并处理未保存文件的边界情况:
立即学习“PHP免费学习笔记(深入)”;
{
"cmd": ["/usr/local/bin/php", "$file"],
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"selector": "source.php",
"variants": [
{
"name": "Run Selection",
"cmd": ["/usr/local/bin/php", "-r", "eval(file_get_contents('php://stdin'));"],
"stdin": true,
"working_dir": "$file_path"
}
]
}
-
"cmd"中的路径必须是绝对路径,Windows 注意用正斜杠或双反斜杠:"C:/laragon/bin/php/php-8.2.12/php.exe" -
$file在文件未保存时为空字符串,会导致构建失败;加"variants"支持选中代码运行,避免强制保存 -
"file_regex"用于点击错误行跳转,推荐用更通用的正则:^([^:]+):([0-9]+):?([0-9]*) - 如果项目用 Composer 自动加载,可加
"path": "$project_path/vendor/bin"方便调用phpstan等工具
常见失败现象和对应检查项
按下 Ctrl+B 后没反应、弹出空面板、或显示 [Finished in 0.1s] 但无输出,大概率是以下某一项没对:
- 终端能跑
php -v,但 Build System 里写的还是"php"—— 必须换绝对路径 - 路径含中文或空格,没加引号包裹(JSON 要求字符串必须用双引号)
- PHP 版本太低(如 PHP 5.6),不支持某些语法,错误被吞掉;可在命令末尾加
-l做语法检查:["/path/to/php", "-l", "$file"] - Sublime 是 32 位版本,而 PHP 是 64 位(Windows 常见),二者不兼容,需统一架构
最易被忽略的一点:Sublime 的 Build System 不会自动重载你改过的 .sublime-build 文件,保存后必须重启 Sublime 或手动切换一次构建系统(Tools → Build System → [你的名字] → 再切回来),否则修改不生效。



















