执行 composer config -g repos.packagist.org composer https://mirrors.aliyun.com/composer/ 可设全局镜像,需带 -g、键名正确、URL 末尾加 /;若权限不足先修复 ~/.composer 所有权;项目级配置或旧 composer.lock 会覆盖全局设置,需检查并清理。

执行 composer config -g 命令设全局镜像
在 macOS 终端里,直接运行这行命令即可生效:
composer config -g repos.packagist.org composer https://mirrors.aliyun.com/composer/
注意三点:必须带 -g 参数;键名用 repos.packagist.org(不是 repo.packagist,后者在 Composer 2.5+ 中可能被忽略);URL 结尾必须带 /,否则请求会 404。
- 如果提示
Permission denied,说明当前用户对~/.composer/config.json没有写权限,先chown -R $(whoami) ~/.composer - 执行后无任何输出是正常的,验证是否写入:运行
composer config -g repos.packagist.org,应返回你刚填的 URL - 别用
sudo composer config -g,否则配置会写进 root 用户目录,普通用户运行时读不到
为什么 composer install 还是连 packagist.org
常见原因是项目级配置覆盖了全局设置。Composer 的优先级顺序是:composer.json 里的 repositories 字段 > 全局配置 > 默认源。
部署和使用军舰的 macOS Automator 自动化服务集合。包含 5 个实用工作流:PDF转JPG、PNG重命名并转JPG、图像拼接、解压RAR、顺序命名图像文件。一键安装所有服务到 ~/Library/Services/ 目录。使用场景:(1) "安装我的自动化服务",(2) "部署所有 Automato...
- 进项目根目录,运行
composer config --list | grep repositories,如果有输出,说明项目自己定义了源 - 检查项目
composer.json是否含"repositories": {...},哪怕只有一行,也会完全屏蔽全局镜像 -
composer.lock文件里硬编码了包地址,旧 lock 会绕过镜像——删掉vendor/和composer.lock再试composer install
验证镜像是否真在用
不能只看 config 输出,要确认网络请求发到了镜像域名上:
- 运行
composer clear-cache,避免缓存干扰 - 新建空目录,执行
composer init -n && composer require monolog/monolog --no-install -vvv 2>&1 | grep "GET https" - 如果看到类似
GET https://mirrors.aliyun.com/composer/packages.json就对了;若出现packagist.org或Could not resolve host: mirrors.aliyun.com,说明 DNS、代理或公司网络策略在拦截
macOS 特别注意事项
Homebrew 安装的 composer 自 2023 年起已弃用,在 M1/M2 Mac 上容易路径错乱或版本陈旧。建议用官方脚本安装:
curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /opt/homebrew/bin/composer sudo chmod +x /opt/homebrew/bin/composer
之后再配镜像。另外,改完全局配置后,终端不用重启,但如果你开了多个终端窗口,确保在同一个 shell 会话中执行后续命令——COMPOSER_HOME 环境变量若被手动改过,也会导致配置加载错位。

















