composer命令在mac上找不到的根本原因是path未正确配置或使用了已弃用的homebrew安装方式;应先装homebrew版php,再用官方脚本下载composer.phar,移至/opt/homebrew/bin(m系列)或/usr/local/bin(intel),赋权并确保path生效。

composer 命令在 Mac 上找不到,**不是没装成功,而是 shell 没加载正确的 PATH,或者用了已弃用的安装方式**。Homebrew 的 composer 包自 2023 年起已被标记为 deprecated,M1/M2 芯片上大概率卡在 v2.2.x、报 Permission denied 或根本无法执行。真正能稳定跑起来的方式只有一种:**先装 Homebrew 版 PHP,再用官方脚本下载 composer.phar,手动移到对应路径并赋权**。
确认 PHP 是否真可用(不是“有 php -v 就算数”)
macOS 12+ 已彻底移除系统自带 php,/usr/bin/php 是空壳或旧版(如 PHP 8.0 以下),而 Composer 要求 CLI 版本 ≥ 7.4。Apache 模块里的 PHP 不算数。
- 运行
which php:M 系列应返回/opt/homebrew/bin/php,Intel 应为/usr/local/bin/php;若返回/usr/bin/php或为空,说明没走 Homebrew 的 PHP - 没装就先装:运行
brew install php(它会自动装最新稳定版,如 PHP 8.3,并启用phar扩展) - 装完仍报错?检查
~/.zshrc是否含export PATH="/opt/homebrew/bin:$PATH"(M 系列)或export PATH="/usr/local/bin:$PATH"(Intel),然后执行source ~/.zshrc
用官方脚本装 composer.phar(唯一推荐方式)
别碰 brew install composer,也别信“一键安装”脚本。Homebrew 的 composer 包不再更新,绑定旧 PHP,还常因权限拒绝执行;而官方脚本能确保拿到 ARM64 兼容、PHP 版本解耦、当前最新版(如 v2.7.7)的可执行包。
- 执行:
curl -sS https://getcomposer.org/installer | php—— 生成本地文件composer.phar - M1/M2 用户移到:
sudo mv composer.phar /opt/homebrew/bin/composer - Intel 用户移到:
sudo mv composer.phar /usr/local/bin/composer - 立刻赋权:
sudo chmod +x /opt/homebrew/bin/composer(路径必须与你实际安装位置一致)
composer 命令仍不可用?PATH 没真正生效
常见假成功现象:composer --version 在家目录能跑,一进项目目录就报 command not found —— 本质是没进 $PATH,只是靠当前路径临时执行。
- 先确认 shell:
echo $SHELL输出/bin/zsh就编辑~/.zshrc,别动~/.bash_profile - 在
~/.zshrc末尾添加(路径需与你实际安装位置一致):export PATH="/opt/homebrew/bin:$PATH"(M 系列)或export PATH="/usr/local/bin:$PATH"(Intel) - 执行
source ~/.zshrc,**不是只改完就关终端**;新开终端,再运行which composer,必须输出/opt/homebrew/bin/composer或/usr/local/bin/composer - 如果用了 Oh My Zsh,插件或主题可能覆盖
PATH,可在~/.zshrc中把export PATH=放在最顶部
不配镜像源,composer install 90% 概率卡住
默认源 https://packagist.org 在国内访问极不稳定,composer install 或 composer require 经常卡住、报 Connection timed out,这不是网络问题,是源本身不可达。
- 执行:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 验证是否生效:
composer config -g repo.packagist应输出镜像地址 - 该命令写入全局配置(
~/.composer/config.json),所有项目自动生效;若项目里已有composer.json并设了私有repositories,全局镜像不会覆盖它,优先级合理
composer、用哪个 php、PATH 是否生效、扩展是否启用”。尤其 M1/M2 用户,/opt/homebrew/bin 和 /usr/local/bin 容易混用,一步错,后面全卡。











