Atom本身不运行PHP,仅通过插件调用系统php命令或php -S服务器;失败主因是PHP CLI未安装、路径未正确配置(如macOS GUI启动无法继承shell PATH)、php-server插件未指定-t和router.php导致404,或script/build插件未设置php后缀、绝对路径及项目结构不匹配。

Atom 本身不运行 PHP,所有“运行”动作都靠插件调用你系统里已安装的 php 命令实现;没装 PHP CLI 或路径不对,按多少次快捷键都没输出。
为什么点 php-server 插件就卡住或打不开浏览器
php-server 只是封装了 php -S,它不自动设 Web 根目录、不处理路由、也不读 .htaccess。常见失败原因:
- 右键 Start PHP Server 时,Atom 把当前文件所在目录当根目录,但你的
index.php其实藏在public/下 → 浏览器访问http://localhost:8000就 404 - macOS/Linux 上用 Homebrew 安装 PHP,但 Atom 图标启动时没加载
~/.zshrc,php命令根本找不到(Dev Tools Console 里会报spawn php ENOENT) - 没显式指定路由器脚本,
php -S默认只服务当前打开的文件,子路径如/api/user直接 404
更稳的做法:别依赖 php-server 插件,在终端手动跑:php -S localhost:8000 -t ./public router.php(router.php 可简单写成 <?php return false;)
linter-php 和 build-php 报 “PHP executable not found” 怎么填对路径
这不是 PHP 坏了,是 Atom GUI 进程没继承 shell 的环境变量。必须手动填绝对路径,且格式敏感:
立即学习“PHP免费学习笔记(深入)”;
- 终端执行
which php,比如输出/opt/homebrew/bin/php→ 在 linter-php 设置页的Executable Path栏直接粘贴这个完整路径,不加引号、不加空格 - Windows(XAMPP)填
C:\xampp\php\php.exe;路径含空格(如C:\Program Files\php\php.exe)也只填路径本身,不要加双引号 - 验证是否生效:新建
test.php,写<?php echo "x";(故意少?>),保存后看左下角是否标出Parse error;没反应说明路径还是错的
build 插件运行 PHP 文件总提示 “command not found” 或没输出
build 插件默认不带任何构建逻辑,它只负责调用你指定的命令。失败主因是配置位置、格式或权限问题:
-
.atom-build.json必须放在项目根目录,不是用户主目录或 Atom 安装目录 - JSON 格式必须严格:不能有中文引号、末尾不能多逗号、必须有
cmd字段 - 如果
which php返回空,或者 macOS 上用了 Homebrew PHP 但插件读的是系统 shell 环境,就得改用绝对路径,例如/opt/homebrew/bin/php - 确保文件已保存(未保存的文件无法被
{FILE_ACTIVE}正确解析),且后缀是.php
一个可用的最小配置示例:
{
"cmd": "/opt/homebrew/bin/php",
"args": ["{FILE_ACTIVE}"],
"sh": true,
"errorMatch": "Parse error|Fatal error|Warning"
}
script 插件运行 PHP 文件没反应或报错
script 插件支持 PHP,但它不自动识别 .php 后缀——除非你手动配过。容易被忽略的几个点:
- 右下角状态栏语言名必须是
PHP,不是Plain Text;点它手动切换,或按Ctrl+Shift+L(Win/Linux)输入PHP回车 - 进 Settings → Packages →
script→ Settings,在File Extensions里加上php(全小写,逗号分隔) - script 默认不启用 stdin,含
input()或fgets(STDIN)的脚本会挂起;必须按Ctrl+I启用终端模式,或勾选设置里的Use Terminal - 如果报
command not found: php,说明 script 没配解释器路径;去 script 设置页填PHP Path为/opt/homebrew/bin/php这类绝对路径,填完必须重启 Atom
复杂点在于:PHP CLI 版本、扩展(如 mbstring)、以及是否启用 opcache,都会影响运行时行为,但这些 Atom 插件完全不感知——它们只管调命令。



















