composer install卡在“downloading…”或“loading composer repositories”是因直连packagist.org导致,必须换国内镜像源;正确命令为composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/,并执行composer clear-cache验证生效。

composer install 卡在 “Downloading…” 或 “Loading composer repositories” 阶段,和你项目里有没有按需加载组件毫无关系——那是 Composer 自身拉包时的网络卡顿,根源是默认直连 packagist.org。换 CDN 加速的国内镜像,不是“能提速”,而是“不换就根本跑不动”。
确认当前生效的镜像是哪个
执行 composer config -g repo.packagist,输出必须是类似 {"type": "composer", "url": "https://mirrors.aliyun.com/composer/"} 的完整 JSON。如果返回空、null、https://packagist.org 或报错,说明镜像根本没生效。
- 常见错误:写成
repos.packagist(多一个s),命令静默失败 - 旧版 Composer 1.x 要用
packagist(不带repo.前缀),但你现在大概率用的是 2.9.6,必须用repo.packagist - URL 必须以
/结尾:https://mirrors.aliyun.com/composer/✅,https://mirrors.aliyun.com/composer❌(404)
全局换源必须一次写对这三样
只输一条命令就能永久生效:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/。漏掉任意一个参数都会白配:
- 必须带
-g,否则写进当前项目的composer.json,不是你想要的全局效果 - 第二个参数
composer是仓库类型声明,缺了会 fallback 回官方源 - 必须是 HTTPS 协议,HTTP 地址在 Composer ≥2.2 中被默认拒绝
验证成功后,再执行 composer clear-cache,否则旧缓存仍可能走 packagist.org。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
项目级配置优先级更高,但容易误删已有源
进项目根目录后运行 composer config repo.packagist composer https://mirrors.tuna.tsinghua.edu.cn/composer/(不加 -g),它会自动往 composer.json 的 repositories 字段追加条目。
- 如果项目已定义私有 VCS 源(比如 GitLab 地址),这条命令会**全量替换**整个
repositories数组,原有源直接消失 - 安全做法是手动编辑
composer.json,在repositories数组里显式添加:{"type":"composer","url":"https://mirrors.ustc.edu.cn/composer/"} - 千万别在
repositories内部加"packagist.org": false,否则基础包如monolog/monolog直接拉不到
临时换源调试,别被参数名坑了
CI 脚本或排查问题时,用 --repository 参数最干净:
- 正确写法:
composer install --repository=https://mirrors.cloud.tencent.com/composer/ - 错误写法:
--repository-url、--mirror、--source—— Composer 不识别,静默忽略 - 搭配
-vvv可验证是否真走镜像:composer install -vvv --repository=...,日志里应出现mirrors.cloud.tencent.com而非packagist.org
宝塔面板、systemd 服务或 CI 环境中,composer config -g 很可能写到了 root 用户配置,而实际执行的是 www 或 runner 用户,此时临时参数比全局配置更可靠。










