执行 composer config -g repo.packagist https://packagist.org 即可禁用镜像,仅重置全局源地址;若仍走镜像,需检查项目级 composer.json 中 repositories 或 config.repo.packagist 是否覆盖;composer restore 非法命令,恢复镜像应手动设回镜像地址。

composer config -g repo.packagist 是核心命令
禁用镜像本质是把全局配置里的 Packagist 源地址改回官方默认值。执行 composer config -g repo.packagist https://packagist.org 即可,它会直接覆盖当前镜像设置(比如阿里云、腾讯云等)。
注意:这个操作不删除其他镜像相关配置项(如 packagist.org 的 allow_ssl_downgrade),只重置源地址本身。
禁用镜像后仍走镜像?检查是否被项目级配置覆盖
全局配置会被 composer.json 里的 repositories 字段或项目根目录的 composer.json 中的 config.repo.packagist 覆盖。运行 composer config --list --global 查看全局生效值,再运行 composer config --list(不带 --global)对比项目级配置。
- 如果项目级有
"repositories": [{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}],删掉或注释掉整段 - 如果项目级
config下有repo.packagist,用composer config repo.packagist https://packagist.org(无-g)重置
composer restore 镜像?不存在这个命令
composer restore 不是 Composer 内置命令,执行会报错 Command "restore" is not defined。所谓“复原镜像”,其实是重新设回镜像地址,例如:composer config -g repo.packagist https://mirrors.aliyun.com/composer/。
常见误操作是以为 composer self-update 或 composer clear-cache 能恢复镜像——它们只更新二进制或清缓存,不影响源配置。
为什么有时换回官方源后 install 还很慢?
即使禁用镜像,Composer 默认仍启用 https://packagist.org/packages.json 的压缩版本(packages.json.gz),但某些网络环境对 gzip 响应处理异常,导致卡在元数据下载阶段。
临时绕过方式:
- 加
--no-cache强制跳过本地缓存(排除旧镜像缓存干扰) - 用
composer config -g repos.packagist composer https://packagist.org显式声明类型,避免自动降级逻辑 - 检查 DNS 是否解析
packagist.org正常(可ping packagist.org或curl -I https://packagist.org)
镜像开关不是非黑即白的切换,真正生效的是最终被读取的 repo.packagist 值,而它可能藏在全局、项目、甚至环境变量(COMPOSER_REPO_PACKAGIST)里。漏查任意一层,都会让你觉得“明明改了却没用”。










