composer换源必须严格配置:末尾斜杠不可省、type为composer、url用https(内网用http)、避免项目级repositories覆盖,否则静默失效。

composer config -g repo.packagist 命令必须带末尾斜杠
不加 / 会静默回退到 packagist.org,你根本看不到报错,只觉得“换源没用”。Composer 2.2+ 遇到 https://mirrors.aliyun.com/composer(缺斜杠)会拼出错误路径如 packages.json,直接 404 或 fallback 到官方源。
正确命令只有一行,且必须严格复制:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
-
repo.packagist不能写成repos.packagist(多一个 s 就失效) -
composer是 type 值,不能省略或写成空字符串 - URL 必须是 HTTPS,
http://地址在 Composer 2.x+ 默认被拒绝 - Windows 用户执行后建议重启终端,避免 shell 缓存旧配置
全局配置生效但 install 还走 packagist.org?检查项目级 repositories
Composer 源优先级是:项目 composer.json 中的 repositories > 全局 config.json > 默认源。只要项目里写了 "repositories": [...],哪怕内容为空或只禁用了 packagist,全局镜像就完全不生效。
快速排查方法:
- 运行
composer config -g repo.packagist,确认输出是完整 JSON:{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"} - 执行
grep -A3 '"repositories"' composer.json,看是否硬编码了"packagist.org"或空数组 - 若存在干扰项,手动删掉或注释掉整个
repositories字段 - 已有
composer.lock时,旧文件会固化包地址,务必删掉vendor/和composer.lock再composer install
阿里云 ECS 内网用户请改用无 HTTPS 的内网地址
如果你在阿里云 ECS 上跑 CI/CD 或部署服务,用公网 HTTPS 镜像既慢又耗流量。VPC 内网用户应切换为:http://mirrors.cloud.aliyuncs.com/composer/。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
这个地址实测延迟压到 10ms 内、零丢包,但仅限阿里云内网访问——本地开发机或非阿里云服务器访问会失败。
- 配置命令一样:
composer config -g repo.packagist composer http://mirrors.cloud.aliyuncs.com/composer/ - 注意:这里用的是
http://,不是 HTTPS;结尾斜杠同样不可省 - CI 流水线中若混用不同账号(如用
sudo执行),可能写进 root 的~/.composer/config.json,而构建用普通用户,导致配置不生效
临时验证镜像是否真正命中:用 -r 参数绕过所有配置
怀疑配置没生效?或者想快速确认某个包能否从阿里源拉下来?用 -r 参数强制指定源,它会忽略项目和全局的所有 repositories 设置。
例如:
composer require --dev phpunit/phpunit:^9.6 -r https://mirrors.aliyun.com/composer/ -vvv
-vvv 会打印真实请求域名,看到 mirrors.aliyun.com 就说明命中最稳的公网镜像地址。这比反复查配置更直接——毕竟,网络日志不会说谎。
真正卡点不在地址本身,而在配置层级覆盖、缓存残留、以及那个容易被忽略的末尾斜杠。配错一个字符,就等于没配。










