全局配置阿里云镜像只需执行 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/;注意字段名是 repo.packagist(非 repos),否则配置无效;旧镜像需先用 composer config -g --unset repos.packagist 清理,再设新源。

怎么全局配置阿里云全量镜像
直接改 Composer 全局配置,所有项目都会走国内源,不用每个项目重复设。这是最省事、也最推荐的起步方式。
-
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/—— 一行命令搞定 - 执行后,
composer show或composer require monolog/monolog就会从阿里云拉索引,速度明显快于官方源 - 注意命令里是
repo.packagist(不是repos.packagist),拼错会导致配置写到错误字段,后续composer update仍连 packagist.org - 如果之前用过其他镜像(比如 Laravel China 或 phpcomposer),先运行
composer config -g --unset repos.packagist清旧配置,再设新源,避免冲突
为什么不能只改 composer.json
在项目里改 composer.json 看似灵活,但实际容易出问题:它只影响当前项目,却可能被 CI/CD、Docker 构建或团队成员忽略,导致环境不一致。
- 项目级配置命令是:
composer config repo.packagist composer https://mirrors.aliyun.com/composer/(没-g) - 它会在
composer.json里加一段:"repositories": { "packagist": { "type": "composer", "url": "https://mirrors.aliyun.com/composer/" } } - 但这个字段一旦被手动删掉、或被某些工具(如
composer normalize)重写,镜像就失效了 - 更隐蔽的问题:如果项目还用了私有仓库(比如 GitLab),而
repositories字段里没显式保留packagist条目,Composer 默认会禁用官方源——这时即使没配镜像,也会报Could not find package xxx
镜像到底加速了什么,又没加速什么
阿里云镜像是「全量索引镜像」,只同步 packages.json 和元数据,不托管 ZIP 包本身。所以它解决的是「找包慢」,不是「下载慢」。
- ✅ 加速的部分:
composer install前的依赖解析、composer search、composer show这类读取索引的操作 - ❌ 不加速的部分:实际下载 ZIP 包时,仍走 GitHub / GitLab / Packagist dist URL,这部分取决于你本地网络对这些站点的访问能力
- 如果你的内网完全不能出外网,光配阿里云镜像没用——得用
satis搭本地离线仓库,把包和索引一起搬进来 - 验证是否生效:运行
composer diagnose,看输出里Repo packagist is default是否变成Repo packagist is set to https://mirrors.aliyun.com/composer/
取消镜像或切回官方源的正确姿势
别靠删文件或手动改 JSON,Composer 的配置层级多(global → project → environment),手改容易遗漏。
- 清全局镜像:
composer config -g --unset repos.packagist(注意是repos.packagist,带 s) - 清项目镜像:
composer config --unset repos.packagist(同样带 s) - 如果执行后
composer config -g -l还能看到残留,说明之前用错了 key,比如写成了repo.packagist;此时需用composer config -g --unset repo.packagist单独清理 - 恢复后,
composer clear-cache推荐顺手跑一次,避免旧索引缓存干扰
repos.packagist 和 repo.packagist 差一个字母就能让整个依赖解析静默降级到官方源。










