镜像配置正确但仍卡在“Loading composer repositories”主因是缓存未清、项目级repositories覆盖全局配置或composer.lock残留旧源地址;需执行composer clear-cache、删vendor与lock、用-vvv验证真实请求域名。

镜像源配置写对了,但 composer install 仍卡在 “Loading composer repositories” 或下载慢——大概率不是镜像本身的问题,而是缓存、回退机制或锁文件残留导致它根本没走新源。
为什么 composer config -g repo.packagist 看似成功却无效
这条命令静默失败的条件非常苛刻,错一个字符就 fallback 到 https://packagist.org,且不报错:
-
repo.packagist写成repos.packagist(多一个 s)→ 直接忽略 - 漏掉中间的
composertype 值 → Composer 2.2+ 强制退回到官方源 - URL 少了末尾斜杠,比如
https://mirrors.aliyun.com/composer→ 拼接出错变成/composerpackages.json,返回 404 或超时
验证是否真生效:运行 composer config -g repo.packagist,输出必须是完整 JSON,形如 {"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}。空、null、或仍是 https://packagist.org,说明压根没写进去。
旧缓存让镜像配置形同虚设
Composer 会优先读本地缓存里的 packages.json 和 provider 元数据,哪怕你已切镜像,它仍反复尝试从 https://packagist.org 校验——卡在 DNS 解析或 TLS 握手阶段是常态。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 执行
composer clear-cache(注意不是composer cache-clear,后者已废弃) - 检查
~/.composer/cache/repo/是否为空;不为空说明没清干净 - 临时加
--no-cache跑一次composer install -vvv,看日志里实际请求的是哪个域名
项目级 repositories 字段会完全屏蔽全局配置
只要 composer.json 里有 repositories 字段,无论内容是否为空,Composer 都会跳过全局配置。常见于团队项目或框架模板自带的配置。
- 用
composer config --list和composer config --list --global对比,确认当前生效的是哪个 - 若项目级已存在
"repositories": {},推荐用命令追加而非手动编辑:composer config repo.packagist composer https://mirrors.aliyun.com/composer/(不加-g) - 改完后必须运行
composer update --lock,否则composer.lock中的dist.url仍指向境外地址,下载时先试旧链接,失败才 fallback
Docker / CI 环境下全局配置基本不可靠
宝塔、GitHub Actions、Docker 构建默认以非登录用户(如 www、runner、容器内 root)运行,读不到你个人用户的 ~/.composer/config.json。
- 更可靠的做法是项目级配置:
composer config repo.packagist composer https://mirrors.aliyun.com/composer/ - CI 脚本开头应同步三步:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/→composer config -g cache-files-dir ~/.composer-cache/files→composer clear-cache - 容器中务必挂载缓存卷:
-v ~/.composer-cache:/tmp/cache -e COMPOSER_CACHE_DIR=/tmp/cache,只挂vendor/没用
最常被忽略的一点:镜像只加速下载环节,不解决 Resolving dependencies 卡顿。如果你发现这一步耗时远超 10 秒,该查的是 php 版本约束、minimum-stability 设置或依赖冲突,和镜像源无关。

















