composer全局镜像配置必须严格满足五个条件:-g参数不可省略;键名只能是repo.packagist;type值必须为"composer";镜像url须为https且末尾带/;项目级composer.json中不能存在repositories字段,否则全局配置失效。

composer config -g repo.packagist 命令必须写对三个硬性参数
配不成功不是网络问题,是命令漏了关键要素——Composer 2.x 会静默 fallback 到 packagist.org,连报错都没有。
-
-g不能省:缺了就只改当前项目composer.json,换目录或新开终端就失效 -
repo.packagist是唯一合法键名:写成repos.packagist、packagist.org或大小写混用(如Repo.Packagist)都会写进无效字段 -
composer是必需的type值:不是可选参数,也不是注释;漏掉它,Composer 直接忽略整条配置 -
https://mirrors.aliyun.com/composer/必须带末尾斜杠/:少一个就会拼出/composerpackages.json,返回 404 - URL 必须用
https://:HTTP 地址在 Composer 2.2+ 中被默认拒绝
验证镜像是否真正生效,别信“配完了”这种感觉
运行 composer config -g repo.packagist,输出必须是完整 JSON 对象:
{"type":"composer","url":"https://mirrors.aliyun.com/composer/"}
如果返回空、null、报错,或者只有 URL 没有 type 字段,说明没写对。别跳过这步——90% 的“换源失败”都卡在这儿。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- Windows 用户改完需重启终端,否则环境变量和配置缓存不会刷新
- CI 流水线里常用
www-data或runner用户执行命令,而-g配的是当前登录用户,权限不一致就等于白配 - 某些项目
composer.json里写了"packagist.org": false,会直接屏蔽全局镜像,得手动删掉或改成true
为什么换了镜像 still 卡在 “Loading composer repositories”?
不是镜像不可用,是 Composer 还在读旧缓存或旧 composer.lock 文件。
- 先清缓存:
composer clear-cache - 删掉项目下的
vendor/和composer.lock - 再跑
composer install -vvv,看日志里出现的是mirrors.aliyun.com还是packagist.org -
composer update不会重新加载镜像配置,它只基于现有composer.lock解析依赖;要彻底重走镜像流程,必须删 lock 文件后重装
HTTPS 被企业防火墙 TLS 内容审查拦截怎么办
现象是 curl -vI https://mirrors.aliyun.com/composer/packages.json 卡在 TLS handshake(消息于2026年7月10日发布)。
- 这不是 Composer 配置问题,而是底层 HTTPS 连接被中间设备劫持并重签证书
- 临时绕过:设环境变量
COMPOSER_DISABLE_TLS=1(仅限可信内网,不推荐长期使用) - 更稳妥做法:联系 IT 部门将
mirrors.aliyun.com加入 TLS 透传白名单,或部署内部镜像代理 - 注意:
COMPOSER_CAFILE指向自签名根证书时,必须确保该证书已包含所有中间 CA,否则仍会校验失败
composer config -g repo.packagist 输出正确,只要项目级 composer.json 里存在 repositories 字段(哪怕为空数组),全局镜像就完全失效。










