Sublime Text 本身不能直接运行 PHP,必须调用系统已安装的 php 可执行文件;需先验证终端中 php -v 成功,再配置 Build System(如 "cmd": ["php", "$file"]),保存为 PHP.sublime-build 后按 Ctrl-B/Cmd-B 执行。

Sublime Text 本身不能直接运行 PHP 脚本
它不是 IDE,没有内置 PHP 解释器或执行环境。你看到的“运行”效果,其实是靠外部命令调用系统已安装的 php 可执行文件完成的。所以第一步必须确认:你的电脑上真的装了 PHP,且 php 命令能在终端(Terminal / CMD)里直接运行。
怎么让 Sublime Text 调用 php 命令执行当前文件
最轻量、最常用的方式是配置一个 Build System:
- 打开 Sublime Text → Tools → Build System → New Build System…
- 替换默认内容为以下 JSON(注意路径适配):
{
"cmd": ["php", "$file"],
"selector": "source.php",
"file_regex": "^(...*?):([0-9]+):([0-9]+):? (.*)$",
"encoding": "utf-8",
"quiet": false
}
保存为 PHP.sublime-build(默认位置即可)。之后打开 .php 文件,按 Ctrl+B(Windows/Linux)或 Cmd+B(macOS),就会在底部面板看到输出结果。
- 如果报错
php is not recognized或类似提示,说明系统 PATH 没包含 PHP 安装路径,需手动指定完整路径,比如"cmd": ["C:/xampp/php/php.exe", "$file"](Windows)或["/usr/local/bin/php", "$file"](macOS) -
$file是当前文件的绝对路径;$file_path是目录,$file_name是文件名,别混淆 - 这个 Build 不会启动 Web 服务器,只是 CLI 模式执行——适合调试逻辑、打印变量,但无法测试
$_GET、表单提交等 Web 行为
想模拟 Web 环境?得自己搭个最小服务
PHP 自带一个简易内置服务器,配合 Sublime 的 Build System 也能快速启用:
立即学习“PHP免费学习笔记(深入)”;
- 新建另一个 Build 文件,内容如下:
{
"cmd": ["php", "-S", "localhost:8000", "-t", "$file_path"],
"selector": "source.php",
"working_dir": "$file_path",
"quiet": false
}
保存为 PHP-Server.sublime-build。然后打开任意 PHP 文件所在目录里的 index.php(或任意入口文件),选中该 Build,按 Ctrl+B 启动服务。
- 访问
http://localhost:8000即可看到输出——注意:这个服务器只响应当前目录及子目录下的请求,不支持 Apache 那种复杂路由 - 如果端口被占用,改
8000为其他数字(如8080) - 关闭服务只需在 Sublime 底部面板点右上角 ×,或关掉对应进程(Windows 任务管理器、macOS Activity Monitor 查找
php进程)
常见失败原因和绕过方式
很多人卡在“按 Ctrl+B 没反应”或“输出空白”,其实多数不是 Sublime 的问题:
- PHP 文件开头没加
<?php—— CLI 模式下,纯 HTML 或没标记的代码不会被解析,输出就是原样文本 - 用了
$_SERVER['DOCUMENT_ROOT']或依赖 Apache 模块(如mod_rewrite)的代码,在 CLI 或内置服务器里必然失败 - Sublime 默认编码是 UTF-8 with BOM,某些 PHP 版本读取时会把 BOM 当作输出内容,导致 header 报错;可在 File → Save with Encoding → UTF-8 重存一次
- 想调试 Web 请求参数?别硬扛——直接用
var_dump($_GET)+ 内置服务器,比反复改 Build 配置高效得多
真正麻烦的从来不是怎么“跑起来”,而是跑起来之后发现环境和线上不一致。CLI、内置服务器、Apache/Nginx,三者对超全局变量、扩展加载、工作目录的处理都不同——先明确你要验证什么,再选对应的运行方式。



















