macos 12+ 已移除预装 php,需用 homebrew 安装最新版(如 php 8.3),再通过 curl 脚本安装 composer 并配置阿里云镜像源,最后确保 path 正确且新开终端验证生效。

确认 PHP 是否可用,不是“有没有”,而是“能不能用”
macOS 12+ 已彻底移除预装 PHP,php -v 报 command not found: php 是常态,不是你漏装了——是苹果删了。别试图用系统自带 PHP,它不光旧(PHP 7.3 或更低),还缺 OpenSSL、cURL 等 Composer 必需扩展。
- 先运行
brew --version,确保 Homebrew 已安装且路径正确:which brew应输出/opt/homebrew/bin/brew(M1/M2)或/usr/local/bin/brew(Intel);若为旧路径,需重装 - 执行
brew install php—— 这会装最新稳定版(如 PHP 8.3),自动配置好扩展和二进制路径 - 验证:
which php必须返回/opt/homebrew/bin/php或/usr/local/bin/php;若无,把export PATH="/opt/homebrew/bin:$PATH"加入~/.zshrc并运行source ~/.zshrc
别用 brew install composer,它已被弃用
Homebrew 官方自 2023 年起将 composer 包标记为 deprecated,尤其在 Apple Silicon 上常导致 Permission denied、command not found 或卡在 Connection timed out。这不是你网络差,是包本身不再更新、镜像源未同步、ARM64 兼容性未维护。
- 直接跳过
brew install composer,哪怕它看起来最省事 - 改用官方推荐的 curl 脚本方式:
curl -sS https://getcomposer.org/installer | php—— 这会生成本地composer.phar - 移动时注意芯片架构:
• M1/M2 Mac:用sudo mv composer.phar /opt/homebrew/bin/composer
• Intel Mac 或通用路径:用sudo mv composer.phar /usr/local/bin/composer - 必须赋权:
sudo chmod +x /opt/homebrew/bin/composer(或对应路径),否则执行时报错
验证是否真全局生效,不是“当前目录能跑”就完事
很多人 composer --version 成功后以为装好了,一进项目目录就报 command not found —— 根本原因是没进系统 PATH,只是碰巧在下载目录下执行了 ./composer。
- 关掉当前终端,新开一个,再运行
composer --version - 必须同时满足两个条件才算成功:
• 输出类似Composer version 2.7.7
•which composer返回/opt/homebrew/bin/composer或/usr/local/bin/composer,**不能是./composer或/Users/xxx/composer** - 如果
which composer无输出,检查~/.zshrc是否包含对应PATH行,并确认已执行source ~/.zshrc(开新终端不会自动 reload)
国内用户必配阿里云镜像源,否则 install 90% 挂掉
默认源 https://repo.packagist.org 在国内极不稳定,composer install 卡住、超时、反复重试是常态,不是 Composer 问题,是网络策略限制。
- 立即配置国内镜像:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 验证是否生效:
composer config -g repo.packagist应返回{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"} - 注意:这个配置是全局的(
-g),所有项目都走镜像,无需每个项目重复设
最容易被忽略的点是:改完 ~/.zshrc 后没 source,或者开了新终端却忘了重新加载;还有人把 export PATH=... 写在了 ~/.bash_profile 里——而 macOS 12+ 默认用 zsh,那个文件根本不会读。










