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。
Apple Silicon(M1/M2/M3)和 Intel Mac 的 Homebrew 路径不同,装错会导致命令找不到或扩展加载失败:
/opt/homebrew,brew install php 会装到 /opt/homebrew/bin/php
/usr/local/bin/php,但 Monterey 后建议也走 /opt/homebrew 避免权限冲突which brew 确认路径;若没装 Homebrew,先执行:/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Monterey 自带的 php 命令是系统保留的 stub(仅返回错误提示),不是真实 PHP。必须用 Homebrew 显式安装指定版本:
brew install php
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
即使 brew install php 成功,新开终端仍可能执行 /usr/bin/php(报错“no suitable image found”)。这是因为 Monterey 的 shell 初始化顺序跳过了 Homebrew 的自动 PATH 注入:
立即学习“PHP免费学习笔记(深入)”;
~/.zshrc(Monterey 默认用 zsh)export PATH="/opt/homebrew/bin:$PATH"
/usr/local,则写:export PATH="/usr/local/bin:$PATH"
source ~/.zshrc 生效,再运
行 echo $PATH 确认 /opt/homebrew/bin 在最前面Monterey 彻底移除了系统自带的 Apache 和 PHP 模块支持,LoadModule php_module 会直接报错。别再尝试修改 /etc/apache2/httpd.conf:
brew install php && brew install composer && composer global require laravel/valet && valet install,它自动绑定
php-fpm 并接管 .test 域名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 “看起来装了,实际不能用”。