macos monterey(12.0)起系统不再预装php,运行php --version会报command not found;需用homebrew安装,先执行which php验证是否已装,再通过brew install php@8.3等命令安装并配置path。

确认系统是否已安装 PHP
macOS 从 12.0(Monterey)开始不再预装 PHP,直接在终端运行 php --version 很可能报错:command not found: php。别急着重装,先验证现状:
- 执行
which php—— 若无输出,说明未安装或不在$PATH - 执行
/usr/bin/php --version—— 旧系统可能还留有系统自带的 PHP(但版本老旧且不推荐使用) - 执行
brew list | grep php—— 如果用 Homebrew 安装过,这里会显示类似php@8.2的条目
用 Homebrew 安装并启用 PHP(推荐方式)
Homebrew 是 macOS 上最可控、更新及时的 PHP 安装途径,避免系统路径污染和权限问题:
- 先确保已安装 Homebrew:
brew --version,没有就去https://brew.sh装 - 搜索可用版本:
brew search php,常见如php@8.2、php@8.3 - 安装指定版本(例如 8.3):
brew install php@8.3 - 安装后需手动将 Homebrew 的 bin 目录加入
$PATH:编辑~/.zshrc(macOS Catalina 及以后默认 shell 是 zsh),追加一行:export PATH="/opt/homebrew/bin:$PATH"(Apple Silicon)或export PATH="/usr/local/bin:$PATH"(Intel) - 重载配置:
source ~/.zshrc,再运行php --version应该能正确输出
运行 PHP 脚本的三种常用方式
不是所有写法都等效,不同场景下选错方式容易卡住或报错:
-
直接解释执行文件:确保脚本第一行是 shebang(如
#!/usr/bin/env php),且文件有执行权限:chmod +x script.php,然后./script.php -
用 php 命令显式调用(最稳妥):
php script.php—— 不依赖 shebang 和权限,适合调试阶段 -
交互式执行代码片段:
php -a进入交互模式,或php -r "echo date('Y-m-d');"快速测试单行逻辑
注意:php -S 是内置服务器命令(如 php -S localhost:8000),不是运行普通脚本的方式,误用会卡在监听状态。
常见报错与绕过思路
实际跑脚本时,90% 的“运行不了”其实和 PHP 本身无关,而是环境链路断了:
-
Permission denied:不是 PHP 权限问题,而是脚本没加执行位(chmod +x)或 shebang 指向了不存在的 php 路径(比如写成#!/usr/bin/php但系统没这个路径) -
Parse error: syntax error:检查是否用了新语法(如箭头函数fn() =>)但 PHP 版本太低;用php --version确认实际运行的是哪个版本 -
Undefined function curl_init():扩展未启用 —— Homebrew 安装的 PHP 默认关闭多数扩展,需编辑php.ini(路径通常为/opt/homebrew/etc/php/8.3/php.ini),取消;extension=curl前的分号,再重启终端
PHP 脚本本身不依赖 Web 服务器就能跑,但很多人下意识以为必须配 Apache/Nginx —— 其实终端里一条 php xxx.php 就够了,前提是路径对、权限对、依赖扩展开了。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











