macOS Monterey(12.x)默认无PHP且禁用修改/usr/bin,须用Homebrew装至/opt/homebrew(Apple Silicon)或/usr/local(Intel),手动配置PATH、确认php -v指向正确路径、启用扩展并改用php-fpm/Valet等替代Apache内置PHP。

macOS Monterey(12.x)默认不带 PHP,且系统禁用 homebrew 对 /usr/bin 的写入,直接用旧方法装 PHP 会失败或被 SIP 拦截。必须用 Homebrew 安装到用户目录(如 /opt/homebrew),再手动配置 PATH。
确认系统架构和 Homebrew 安装位置
Apple Silicon(M1/M2/M3)和 Intel Mac 的 Homebrew 路径不同,装错会导致命令找不到或扩展加载失败:
- M1/M2/M3:Homebrew 默认装在
/opt/homebrew,brew install php会装到/opt/homebrew/bin/php - Intel:通常是
/usr/local/bin/php,但 Monterey 后建议也走/opt/homebrew避免权限冲突 - 运行
which brew确认路径;若没装 Homebrew,先执行:/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
安装 PHP 并验证版本与扩展
Monterey 自带的 php 命令是系统保留的 stub(仅返回错误提示),不是真实 PHP。必须用 Homebrew 显式安装指定版本:
- 推荐装最新稳定版(如 PHP 8.3):
brew install php
- 装特定版本(如 8.2):
brew install php@8.2
,然后执行brew link php@8.2 --force - 检查是否生效:
php -v应输出版本号,且which php指向/opt/homebrew/bin/php(非/usr/bin/php) - 常用扩展(如
pdo_mysql、opcache)默认启用,但mysqli需确认extension=mysqli在php.ini中未被注释 —— 配置文件路径通常为/opt/homebrew/etc/php/8.3/php.ini
PATH 配置必须手动追加,否则终端仍调用系统 stub
即使 brew install php 成功,新开终端仍可能执行 /usr/bin/php(报错“no suitable image found”)。这是因为 Monterey 的 shell 初始化顺序跳过了 Homebrew 的自动 PATH 注入:
立即学习“PHP免费学习笔记(深入)”;
- 编辑 shell 配置文件:
~/.zshrc(Monterey 默认用 zsh) - 追加这一行(M1/M2/M3):
export PATH="/opt/homebrew/bin:$PATH"
- Intel 用户若用
/usr/local,则写:export PATH="/usr/local/bin:$PATH"
- 执行
source ~/.zshrc生效,再运行echo $PATH确认/opt/homebrew/bin在最前面
Apache 内置 PHP 不可用,必须用第三方 Web 服务器或 CLI + Valet
Monterey 彻底移除了系统自带的 Apache 和 PHP 模块支持,LoadModule php_module 会直接报错。别再尝试修改 /etc/apache2/httpd.conf:
- 开发用推荐 Laravel Valet:
brew install php && brew install composer && composer global require laravel/valet && valet install
,它自动绑定php-fpm并接管.test域名 - 需要完整 LAMP 环境?用
brew install httpd(Apache)+brew install php+ 手动配置httpd.conf加载mod_proxy_fcgi反向代理到php-fpm - 单纯跑脚本?直接用
php -S localhost:8000启动内置服务器,无需 Apache
最关键的兼容点是:不要碰 /usr/bin/php,不要试图用 sudo 覆盖系统路径,所有操作围绕 /opt/homebrew 展开。PATH 顺序、配置文件位置、Web 服务集成方式,这三处任一出错都会让 PHP “看起来装了,实际不能用”。











