Mac 上装 Composer 前必须正确安装 Homebrew 并将其 bin 路径加入 $PATH(通过 brew shellenv 写入 ~/.zshrc),否则 brew install composer 会失败;即使安装成功,若 PATH 未包含 /opt/homebrew/bin(ARM)或 /usr/local/bin(Intel),composer 命令仍不可用。

Homebrew 没装好,composer 就装不上
Mac 上装 composer 前,homebrew 必须已正确安装且在 $PATH 里——否则 brew install composer 会直接报 command not found: brew 或权限错误。
检查方法:which brew。如果没输出,说明 Homebrew 没装,或装了但没加进 shell 配置文件(比如 ~/.zshrc)。
- 新 Mac(macOS Catalina 及以后)默认用
zsh,装完 Homebrew 后务必运行:echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc && source ~/.zshrc - Intel Mac 路径是
/usr/local/bin/brew,对应命令是:echo 'eval "$(/usr/local/bin/brew shellenv)"' >> ~/.zshrc && source ~/.zshrc - 别手动生成
PATH=...行,brew shellenv才是官方推荐方式,能自动适配 ARM/Intel 和自定义安装路径
brew install composer 成功但 composer 命令仍不可用
常见现象:终端输入 composer --version 提示 command not found,但 brew list composer 显示已安装。本质是 brew 安装的 composer 二进制不在当前 $PATH 中。
原因:Homebrew 默认把可执行文件放在 /opt/homebrew/bin(Apple Silicon)或 /usr/local/bin(Intel),而你的 shell 可能没读取这些路径。
- 确认
brew --prefix输出路径,再检查该路径下是否存在bin/composer(例如:ls /opt/homebrew/bin/composer) - 确保该
bin目录已加入$PATH:运行echo $PATH | grep -o "/opt/homebrew/bin"(ARM)或echo $PATH | grep -o "/usr/local/bin"(Intel) - 如果没命中,重新执行上一节的
brew shellenv注入步骤,并source ~/.zshrc刷新
不用 Homebrew,直接用 PHP 脚本安装 composer 的注意事项
虽然官网提供 php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" 方式,但在 Mac 上容易因 PHP 版本、SSL 配置或权限出错。
典型失败提示:cURL error 60: SSL certificate problem 或 Could not open input file: composer.phar。
- Mac 自带 PHP 往往过旧(如 8.1+ 才支持 Composer 2.5+),建议先用
brew install php升级,再确认php -v输出 ≥ 8.1 - 下载脚本后必须加执行权限:
chmod +x composer-setup.php,否则php composer-setup.php会静默失败 - 全局安装要移动到
$PATH下的目录:sudo mv composer.phar /usr/local/bin/composer(Intel)或sudo mv composer.phar /opt/homebrew/bin/composer(ARM) - 别漏掉
sudo,否则权限不足,composer命令无法被系统识别
composer 装好了但运行时报 PHP Warning: Module 'openssl' already loaded
这不是 composer 自身问题,而是 Mac 上 PHP 配置冲突导致的——常见于同时用 Homebrew PHP 和系统 PHP,或多次启用同一扩展。
现象:命令能运行,但每条输出前都带一堆 PHP 警告,影响调试和 CI 流程。
- 查加载源:
php --ini看配置文件路径,再用grep -r "extension=openssl" $(php --ini | grep "Loaded Configuration File" | cut -d' ' -f4) - Homebrew PHP 的扩展通常由
/opt/homebrew/etc/php/*/php.d/ext-opcache.ini类文件管理,重复行删掉即可 - 如果用的是
brew services start php,重启服务:brew services restart php,否则修改不生效 - 别手动改
php.ini里extension=行——Homebrew 管理的 PHP 应该通过php.d/目录分文件控制扩展
Mac 上装 composer 的真正难点从来不是下载命令本身,而是路径、shell 环境、PHP 实例三者之间的隐式耦合。哪怕只漏掉一次 source ~/.zshrc,或者 Homebrew 和 PHP 不同架构混用,都会让 composer 卡在“明明装了却找不到”的状态。











