Composer 配置镜像失效主因是 repo.packagist 错写、缺 composer 类型参数或 URL 缺末尾斜杠;Docker 中需显式传参或项目级配置,且 dist 包仍直连 GitHub。

composer config -g repo.packagist 配置后为什么没提速
不是镜像慢,是命令根本没写进去。90% 的失效都卡在这三处:
• repo.packagist 写成 repos.packagist(多一个 s)或 packagist(少 repo. 前缀),Composer 完全忽略且不报错
• 中间漏掉 composer 类型参数:正确是 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/,漏掉中间那个 composer 就退回到官方源
• URL 缺少末尾斜杠:https://mirrors.aliyun.com/composer/ ✅,https://mirrors.aliyun.com/composer ❌——少斜杠会导致请求变成 /p2// 路径,返回 404 后静默 fallback
验证是否生效:运行 composer config -g repo.packagist,输出必须是完整 JSON,形如 {"type": "composer", "url": "https://mirrors.aliyun.com/composer/"};空、null 或纯字符串 URL 都说明失败
测速不能只看 time composer update
真实瓶颈不在元数据,而在 dist 包下载。所有主流镜像(阿里云、腾讯云、华为云、清华源)都只缓存 packages.json 和 p2/ 索引,zip 包仍从 github.com 或 codeload.github.com 直载——这才是卡住的主因。
• composer install -vvv 日志里反复出现 Downloading https://api.github.com/ 或 https://codeload.github.com/ → 镜像没起作用
• 元数据加载飞快(mirrors.aliyun.com/composer/ 0.3s),但某个包卡住 30 秒以上 → GitHub 直连问题,和镜像无关
• 测速脚本应聚焦 /packages.json 的 STARTTRANSFER_TIME(用 curl -I -w '%{time_starttransfer}' -m 5),而非 time_total,后者含 DNS 解析,干扰大
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
Docker 构建中镜像配置必须显式传入
宿主机配的 ~/.composer/config.json 在容器内完全不可见。Docker 构建时 composer install 默认永远走 packagist.org。
• 推荐写法:RUN composer install --repository=https://mirrors.aliyun.com/composer/ —— 参数直连,语义清晰、可复现、不依赖全局状态
• 次选:RUN composer config --global repo.packagist composer https://mirrors.aliyun.com/composer/,但需确保该 RUN 在 composer install 之前且未被后续层覆盖
• 别信“一次配置,处处生效”:CI/CD、宝塔、Jenkins 执行用户与你本地不同,全局配置大概率失效
• 若项目已有 repositories 字段,优先改那里,比全局更可靠,也避免 Docker 构建时环境差异
阿里云镜像当前最稳,但别迷信“最快”
没有自动测速切换机制,所谓“最快”只是瞬时状态。截至 2026 年 7 月,阿里云镜像(https://mirrors.aliyun.com/composer/)同步延迟稳定在 2–5 分钟,HTTPS 响应一致性高,华北/华东多数节点 RTT • 不要跑一次脚本就定终身:建议早/晚各测一次,观察趋势
• 已停用的源(如 phpcomposer.com、laravel-china.com)别再测,白费时间
• 如果你用的是私有包或 "type": "package",镜像根本不管这些——它们只代理 Packagist 官方索引,私有场景必须另配 repositories

















