答案是Composer慢主因非镜像失效而是配置错误、缓存未清或链路不全:键名必须为repo.packagist(非repos)、type值必填composer、URL须含末尾/,三者缺一即静默回退官方源;需验证config输出及-vvv日志确认镜像路径,且重装前须删vendor与composer.lock以更新dist.url。

composer config -g repo.packagist 命令必须写对三个硬性条件,否则下载不会变快——它不报错,但会静默 fallback 到 https://packagist.org,你看到的“卡在 Downloading”八成还是直连 GitHub。
为什么配了镜像 still 卡在 Downloading https://codeload.github.com/
因为镜像只代理元数据(packages.json),不托管 zip 包。Composer 从 packagist 拿到版本信息后,仍默认走 https://api.github.com/ 或 https://codeload.github.com/ 下载源码包。
- 阿里云、腾讯云等公开镜像不缓存 dist 文件,只加速元数据请求
-
composer.lock里已记录的dist.url不受镜像配置影响,删掉 lock 文件再install才能触发新路径 - 临时加
--repository-url对已锁死的 dist 地址完全无效 - 真正绕过 GitHub 的方案:用
ghproxy.com类反向代理,或在composer.json中为高频包显式指定dist字段
执行 composer config -g repo.packagist 总是不生效?检查这三点
这条命令极易静默失败,验证方式不是“没报错”,而是运行 composer config -g repo.packagist 后输出是否为完整 JSON:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 键名必须是
repo.packagist(单数,不能是repos.packagist或packagist) - 中间参数必须是
composer(这是 type 值,漏掉就回退官方源) - URL 必须以
https://开头且末尾带/:https://mirrors.aliyun.com/composer/✅,https://mirrors.aliyun.com/composer❌ - 输出应为
{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"};若为空、null或仍是https://packagist.org,说明根本没写进去
宝塔、CI、Docker 里镜像为啥不起作用
全局配置写在当前用户的 ~/.composer/config.json,但执行环境用户往往不同:
- 宝塔「一键部署」默认用
www用户,你在终端用root配的镜像它读不到 - GitHub Actions runner、GitLab CI job 默认用
runner或git用户,sudo composer config -g写进的是root配置 - 解决方案:切到实际用户下重配,例如
sudo -u www composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 更稳妥的做法是项目级配置:
composer config repo.packagist composer https://mirrors.aliyun.com/composer/(不加-g),它会安全追加到composer.json的repositories数组中
如何确认镜像真正在用
别信命令返回,盯日志输出:
- 执行
composer install -vvv | grep "GET\|Downloading" - 成功时应看到类似
GET https://mirrors.aliyun.com/composer/p2/monolog/monolog.json - 如果仍看到
Downloading https://api.github.com/或https://codeload.github.com/,说明 zip 包下载路径没变,镜像只解决了元数据环节 - 若卡在
Resolving dependencies超过 10 秒,和镜像无关,是本地 SAT 求解器在穷举版本组合,需收紧约束或禁用 xdebug

















