Composer镜像配置失效的五大信号:一是composer config -g repo.packagist输出为空、null、报错或仍是packagist.org;二是composer -vvv install日志未出现镜像域名请求;三是curl -I https://mirrors.aliyun.com/composer/packages.json未返回200;四是项目级composer.json中存在repositories字段覆盖全局配置;五是未执行composer clear-cache或不同用户上下文导致配置不可见。

composer config -g repo.packagist 输出为空或仍是 packagist.org
这是最直接的失效信号。Composer 2.2+ 只认 repo.packagist(单数、全小写、无 s),写成 repos.packagist、repositories.packagist.org 或大小写混用,都会被静默忽略。运行 composer config -g repo.packagist 后,输出必须是类似 {"type": "composer", "url": "https://mirrors.aliyun.com/composer/"} 的完整 JSON 对象。如果返回空、null、报错,或仍是 "https://packagist.org",说明配置根本没写进去。
composer -vvv install 日志里没出现镜像域名
加 -vvv 是唯一能确认“实际请求发往哪”的方式。不加这个参数,你永远不知道 Composer 在后台连的是哪个地址。执行 composer -vvv install 后,日志中应高频出现类似 GET https://mirrors.aliyun.com/composer/p2/monolog/monolog.json 的请求行。如果只看到 packagist.org 或 api.github.com,说明镜像未生效——此时别查网络,先回看配置是否漏了 -g、type 值或 URL 末尾 /。
curl -I 测试 packages.json 返回 404 或非 200
配置对了,不代表镜像站本身可用。手动验证比依赖 composer diagnose 可靠得多,因为后者完全不发网络请求。运行:curl -I https://mirrors.aliyun.com/composer/packages.json
必须返回 HTTP/2 200 或 HTTP/1.1 200 OK。常见失败情形包括:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- URL 缺末尾
/→ 拼出/composerpackages.json导致 404 - 用了已停用地址(如
https://packagist.phpcomposer.com)→ 重定向失败或 DNS 不解析 - 华为云地址误写为
mirrors.huaweicloud.com→ 正确应为https://repo.huaweicloud.com/repository/php/
项目级 composer.json 中存在 repositories 字段
全局配置再正确,也会被项目级 repositories 直接覆盖。哪怕该字段只是空数组 [] 或空对象 {},Composer 都会认为“用户明确接管源管理”,从而彻底忽略全局镜像。排查方法很简单:
- 进项目根目录,运行
composer config repositories,检查输出中packagist.org对应的url是不是你配的镜像地址 - 用
grep -A5 '"repositories"' composer.json查看是否硬编码了旧源或显式禁用项(如"packagist.org": false) - 临时清除:执行
composer config --unset repositories(注意没-g),再试composer install
真正容易被忽略的是缓存和用户上下文:改完配置必须 composer clear-cache,且 CI、宝塔、Docker 中执行命令的用户往往不是你当前 shell 的用户,~/.composer/config.json 对它不可见。

















