sublime text 无法直接运行 php,需依赖系统已安装的 php 解释器和正确配置的构建系统;先确认终端中 php -v 可用,再通过 new build system 创建匹配路径的 .sublime-build 文件,windows 用户需注意反斜杠转义及 path 设置。

Sublime Text 本身不运行 PHP,得靠系统 PHP 和构建系统配合
Sublime Text 是编辑器,不是 IDE,它没有内置 PHP 解释器。所谓“配置 PHP 环境”,本质是让 Sublime 能调用你电脑上已安装的 php 命令去执行文件。如果终端里敲 php -v 报错,Sublime 就肯定跑不了 PHP。
常见错误现象:Unable to find php、command not found: php、构建后空白或弹出命令行闪退。
- 先在终端(macOS/Linux)或 CMD/PowerShell(Windows)运行
which php(macOS/Linux)或where php(Windows),确认 PHP 可执行路径 - 如果没输出,说明 PHP 没装,或没加进
PATH—— 别跳过这步,后面所有配置都白搭 - Windows 用户尤其注意:用 XAMPP/WAMP 的话,
php.exe通常在C: mppphpphp.exe这类路径,必须把整个目录加进系统环境变量PATH,否则 Sublime 找不到
Build System 配置要匹配你的 PHP 安装方式
Sublime 通过 .sublime-build 文件定义怎么执行代码。默认的 PHP 构建系统只认系统 PATH 里的 php,不认绝对路径,也不处理 Windows 下的反斜杠问题。
使用场景:你想按 Ctrl+B(Windows/Linux)或 Cmd+B(macOS)直接看到 echo 输出,而不是手动切到终端。
立即学习“PHP免费学习笔记(深入)”;
- 菜单栏选 Tools → Build System → New Build System…,粘贴以下内容(根据系统选):
- macOS/Linux(假设
php在 PATH):{ "cmd": ["php", "-f", "$file"], "selector": "source.php", "file_regex": "php$" } - Windows(路径含空格或非标准位置):
{ "cmd": ["C:\xampp\php\php.exe", "-f", "$file"], "selector": "source.php", "file_regex": "php$" } -
$file是当前打开的 PHP 文件全路径;-f参数强制指定文件,避免把文件名当参数传给 PHP 解释器 - 保存为
PHP.sublime-build,然后在 Tools → Build System 里选中它
浏览器预览 PHP 文件?别指望 Sublime 直接开网页
PHP 是服务端语言,index.php 双击打不开,拖进浏览器只会下载或显示源码。Sublime 的构建系统也只输出命令行结果,不启动服务器。
常见错误现象:写完 <?php echo 'hello'; ?>,按 Cmd+B 出现 hello —— 这只是 CLI 模式输出,和网页渲染完全无关。
- 真要浏览器看效果,你得本地起一个 PHP 内置服务器:
php -S localhost:8000(PHP 5.4+ 支持) - 或者用 XAMPP/WAMP/MAMP,把文件放进
htdocs目录,访问http://localhost/xxx.php - Sublime 插件如
PHP Companion或SublimeCodeIntel不解决运行问题,它们只辅助写代码,别被名字误导 - 想一键在浏览器打开当前文件?得配自定义构建系统 +
open(macOS)或start(Windows),但前提是 PHP 服务已在运行
调试、报错和中文乱码这些坑,和构建系统强相关
构建系统配置不对,会掩盖真实错误,比如把语法错误当成路径错误,或者输出乱码(尤其 Windows 中文系统)。
性能影响不大,但兼容性差:不同 PHP 版本对 CLI 参数支持略有差异,比如 php -l(语法检查)在某些旧版本不返回正确退出码。
- 调试建议:在构建系统里加
"shell": true(Windows 推荐),让命令走 shell,能更好继承环境变量和编码设置 - 中文乱码典型表现:终端输出是 “涓??” 而不是 “你好”。Windows 下可在构建系统里加
"encoding": "cp936"(GBK)或改用 UTF-8 编码保存 PHP 文件并加header('Content-Type: text/html; charset=utf-8'); - PHP 报错不显示?检查
php.ini里的display_errors = On和error_reporting = E_ALL,CLI 模式用的是独立的php.ini(运行php --ini查看位置)
PATH,或者构建系统里路径写错了斜杠或引号。其它都是顺带要调的边角。











