sublime text 运行 php 依赖系统已安装且 path 可访问的 php 命令;需先在终端执行 php -v 验证,再配置含 "cmd": ["php", "-f", "$file"] 和 "shell": true 的构建系统以支持中文输出与正确执行。

Sublime Text 本身不运行 PHP,所有“运行”动作都只是调用你系统里已安装的 php 命令行程序;如果终端里执行 php -v 都失败,Sublime 就不可能跑起来——别配构建系统,先解决这个。
确认 php 命令在终端可用是硬门槛
这是 90% 运行失败的根源,不是 Sublime 的问题,而是环境没对齐。
- 在终端(macOS/Linux)或 CMD/PowerShell(Windows)中执行
php -v,必须看到类似PHP 8.2.12的输出 - 若报
'php' is not recognized(Windows)或command not found: php(macOS/Linux),说明php不在 PATH 中 - macOS Homebrew 用户:运行
which php,常见路径是/opt/homebrew/bin/php(M1/M2)或/usr/local/bin/php(Intel);没输出就补装:brew install php - Windows XAMPP 用户:路径通常是
C:/xampp/php/php.exe,需把C:/xampp/php(不含.exe)加进系统环境变量PATH,且重启 Sublime 进程(不是仅关窗口) - Linux(apt)用户:确保装的是
php-cli包:sudo apt install php-cli;若仍报错,可能是多版本共存,试php8.2 -v确认实际命令名
⚠️ GUI 启动的 Sublime(比如从 Dock 或开始菜单点开)往往不继承 shell 的完整 PATH,尤其 macOS M1/M2 和 Windows WSL 下。建议直接在终端执行 subl . 启动编辑器,避免环境错位。
php -f $file 是构建系统最稳的写法
用 -f 明确加载并执行指定文件,避免 php $file 被误当作传参解析,也绕过交互模式干扰。
- 菜单 → Tools → Build System → New Build System…,粘贴以下内容:
{ "cmd": ["php", "-f", "$file"], "selector": "source.php", "working_dir": "$file_path" }
- 保存为
PHP.sublime-build(自动存到Packages/User/) - 打开任意
.php文件,按Ctrl+B(Windows/Linux)或Cmd+B(macOS),输出会出现在底部面板 - Windows 用户若
php不在 PATH,必须用绝对路径:"cmd": ["C:/xampp/php/php.exe", "-f", "$file"],注意斜杠用正斜杠或双反斜杠 - 路径含空格(如
C:/Program Files/php/php.exe)必须加引号包裹整个路径字符串,否则解析失败 - 漏掉
"selector": "source.php"会导致快捷键对非 PHP 文件也响应,或完全不触发
中文输出乱码?别硬改编码,优先用 shell 模式
Windows 控制台默认 GBK 编码,而 PHP CLI 输出 UTF-8,直接导致中文显示为 ???。
- 不要在构建系统里加
"encoding": "cp936"—— 这只影响 Sublime 读取输出流的解码方式,不解决源头编码冲突 - 推荐方案:启用
shell模式,让系统 shell 自动处理编码转换:
{ "cmd": ["php", "-f", "$file"], "selector": "source.php", "shell": true }
-
shell: true会让 Sublime 在cmd(Windows)或sh(macOS/Linux)中执行命令,利用 shell 默认编码逻辑,中文基本能正常显示 - macOS/Linux 用户若仍乱码,检查终端默认 locale 是否为 UTF-8(
locale | grep UTF-8)
调试不是靠“运行”,而是靠 var_dump + error_log + 外部服务
Sublime 没有内置调试器,所谓“本地调试”本质是三类手段组合:快速打印、日志追踪、配合外部 HTTP 服务。
-
var_dump($var); die;是最轻量的变量探查方式,适合单文件逻辑验证 -
error_log(print_r($var, true), 3, __DIR__ . '/debug.log');把结构化数据写入文件,不干扰页面输出,适合异步或循环场景 - 想在浏览器里看效果?必须启动 HTTP 服务:
php -S localhost:8000(PHP 内置服务器)或用 XAMPP/Apache/Nginx;Ctrl+B只输出文本,不渲染 HTML - 真要断点调试?得上 Xdebug + Debugger 插件,但前提是
xdebug.mode=debug已启用、端口9003开放、pathMappings路径映射正确——这不是构建系统能解决的事
最容易被忽略的一点:php -f $file 执行的是 CLI SAPI,它读的是 php.ini 的 CLI 配置段(常为 php.ini-development),和 Web 服务器用的 php.ini 可能不同;扩展是否启用、display_errors 是否开,都得分别确认。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











