Atom本身不运行PHP,仅调用系统php命令或php -S服务器;“运行失败”主因是CLI环境未配好、插件路径填错(如linter-php需手动设绝对路径)、php-server插件不支持路由和子路径导致404,或项目结构与启动目录不匹配。

php 命令或启动 php -S 内置服务器。所谓“运行 PHP”,本质是配对 CLI 环境 + 插件行为 + 项目结构,三者错一个就卡住、报错或看似成功实则失效。
php-server 插件为什么点一下就卡住或 404?
它只是封装了 php -S localhost:8000,不处理路由、不监听文件变化、不自动刷新页面,且默认以当前文件所在目录为 Web 根目录 —— 但 php -S 要求显式指定路由器脚本(如 -t public router.php),否则只服务当前文件,子路径全 404。
- 项目结构是
src/+public/index.php?你在src/目录下右键 Start,php -S就把src/当根目录,自然找不到public/下的资源 - macOS/Linux 上用 Homebrew 安装 PHP,GUI 启动的 Atom 读不到 shell 的
PATH,php -S命令根本执行不了(Dev Tools Console 里会报spawn php ENOENT) - 没写路由器脚本却指望它支持
index.php入口或重写规则?不可能 ——php -S默认不解析.htaccess或nginx.conf
linter-php 报 “PHP executable not found” 怎么填对路径?
这不是 PHP 坏了,是 Atom GUI 进程没继承终端环境变量。必须手动填绝对路径,且格式敏感:
- macOS/Linux:终端执行
which php,比如输出/opt/homebrew/bin/php→ 在 linter-php 设置页的Executable Path栏直接粘贴这个完整路径,不加引号、不加空格 - Windows(XAMPP):填
C:\xampp\php\php.exe;若路径含空格(如C:\Program Files\php\php.exe),Atom 设置框里仍只填路径本身,不要加双引号(引号是命令行用的,插件内部不解析) - 验证是否生效:新建
test.php,写<?php echo "x";(故意少?>),保存后看左下角是否标出Parse error;若没反应,说明路径还是错的
想真正“运行整个项目”,别依赖 php-server
php-server 只适合单文件快速验证逻辑,比如写个 calc.php 算个数。Laravel、Symfony、含重写规则或静态资源路径的项目,必须换方式:
- 用终端手动启:
cd进项目根目录,执行php -S localhost:8000 -t public public/index.php(Laravel 的public/index.php就是标准路由器脚本) - 配合
atom-build插件,在项目根目录建.atom-build.json,内容如下:
{
"cmd": "php",
"args": ["-S", "localhost:8000", "-t", "public", "public/index.php"],
"sh": true
}
然后按 Cmd+Alt+B(macOS)或 Ctrl+Alt+B(Win/Linux)一键启
立即学习“PHP免费学习笔记(深入)”;
autocomplete-php 在 PHP 8.1+ 下静默失败怎么办?
它依赖 PHP 的反射 API,而 PHP 8.1+ 废弃了部分方法,容易导致补全不触发、无报错、也无提示 —— Dev Tools Console 里会悄悄报 ReflectionException。
- 临时降级到 PHP 8.0:
brew install php@8.0 && brew link --force php@8.0(macOS) - 不换 PHP 版本的话,可改用
ide-php插件(基于 LSP),但需手动在设置里填php.executablePath,且对vendor/下的类解析依然很弱 - 别指望它识别 Laravel Facades 或 Eloquent 动态方法 —— 这类能力 Atom 生态基本不支持,复杂项目建议换 VS Code 或 PhpStorm



















