最准最快查全局镜像地址用 composer config -g repo.packagist,返回阿里云URL说明已配置,空或报错则走官方源;项目级以 composer config repositories 输出为准,优先级高于全局;改镜像后需 composer clear-cache 并用 -vvv 日志确认真实请求地址。

直接查全局镜像地址用 composer config -g repo.packagist
这是最准、最快的方式,不绕弯、不依赖冗余输出。执行后如果返回类似 {"type": "composer", "url": "https://mirrors.aliyun.com/composer/"},说明已配置阿里云镜像;若返回空,或报错 Could not find package repo.packagist in global config,代表当前走的是官方源 https://packagist.org,且没显式设过镜像。
注意键名必须是 repo.packagist(单数),不是 repos.packagist 或 repositories.packagist.org——后者在 Composer 7+ 中虽能查到,但属于配置项路径,不是“生效源”的直接标识;前者才是 Composer 内部实际路由时识别的主源字段。
查项目级镜像优先看 composer config repositories
项目级配置比全局高,即使全局设了镜像,只要 composer.json 里写了 repositories,就会以它为准。
- 运行
composer config repositories,输出含"packagist.org": { "type": "composer", "url": "..." }→ 表示项目用了自定义镜像 - 输出为空或只显示
[]→ 说明项目没覆盖镜像,退回到全局或默认源 - 看到
"packagist": { }(没带.org)→ 是旧写法,仍可工作,但建议统一用packagist.org避免歧义
别被 composer config -g --list --verbose 的输出绕晕
这个命令会吐出一大坨配置,容易看花眼。真正管用的字段只有 repositories.packagist.org 这一项——它是 Composer 7+ 认证的 Packagist 主源标识符。
常见干扰项包括:
-
repositories.packagist:旧版残留字段,可能还存在但已不参与实际请求路由 - repositories 下一堆第三方源(比如私有包仓库):和 Packagist 镜像无关
-
http-basic或github-oauth:认证相关,不影响镜像地址判断
改完镜像后连的还是旧地址?先清缓存再验证
改完 repo.packagist 后,composer update 仍连旧地址?大概率是本地缓存没清干净。
- 运行
composer clear-cache强制清掉所有元数据缓存 - 删掉项目下的
vendor/和composer.lock(可选,用于彻底重装验证) - 加
-vvv参数重试:composer -vvv require monolog/monolog,观察日志里实际请求的 URL,例如:GET https://mirrors.aliyun.com/composer/packages.json
真实请求走哪,最终以网络抓包或 -vvv 日志里出现的 GET 地址为准,而不是配置项是否“看起来存在”。










