阿里云ECS必须用内网地址http://mirrors.cloud.aliyuncs.com/composer/(VPC)或http://mirrors.aliyuncs.com/composer/(经典网络),因公网HTTPS镜像仍走公网链路,而内网地址直连同地域机房、免TLS握手、延迟压至10ms内,且需严格配置-g、repo.packagist键名及末尾斜杠。

在阿里云 ECS 上配 Composer 阿里云镜像,不换内网地址就等于没配——公网 HTTPS 地址照样慢,且可能因 TLS 握手失败卡住。
为什么 ECS 必须用内网地址
阿里云 ECS 实例(尤其是 VPC 网络)访问 https://mirrors.aliyun.com/composer/ 仍走公网出口,DNS 解析、TLS 握手、CDN 路由都绕远路;而内网地址 http://mirrors.cloud.aliyuncs.com/composer/ 直连同地域机房,延迟压到 10ms 内,且无需证书校验。
- ✅ VPC 网络用户:用
http://mirrors.cloud.aliyuncs.com/composer/(注意是http,不是https) - ✅ 经典网络用户:用
http://mirrors.aliyuncs.com/composer/ - ❌ 千万别用 HTTPS 内网地址——阿里云内网镜像不支持 HTTPS,会连接超时
- ❌ 不加协议头或漏末尾
/,比如mirrors.cloud.aliyuncs.com/composer,会导致路径拼错成.../composerpackages.json,返回 404 后静默 fallback 到官方源
全局配置命令必须带 -g 且键名严格为 repo.packagist
执行这条命令才真正生效:
composer config -g repo.packagist composer 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
-
-g不能省:否则只写进当前目录的composer.json,换项目就失效 - 键名必须是
repo.packagist(单数、带repo.前缀):写成repos.packagist或packagist.org都不报错,但完全不生效 -
composer是type值,不是命令名:漏掉它,Composer 2.2+ 会直接忽略配置,fallback 到官方源
验证是否真走内网镜像,只看 -vvv 日志
composer config -g repo.packagist 输出正常 ≠ 真生效。唯一可信证据是实际请求域名:
composer clear-cache && composer require monolog/monolog -vvv 2>&1 | grep "Downloading\|GET"
看到类似这样的输出才算成功:
Downloading http://mirrors.cloud.aliyuncs.com/composer/dist/monolog/monolog/...
- 如果出现
packagist.org或repo.packagist.org,说明被项目级repositories字段覆盖了 - 如果卡在
Loading composer repositories,大概率是 URL 少了/或协议写错 - CI 环境(如 GitHub Actions)默认不读
~/.composer/config.json,需显式设置COMPOSER_HOME或改用项目级配置
项目级配置覆盖全局?删 repositories 再清缓存
只要项目根目录 composer.json 里有 "repositories" 字段(哪怕只写了 {"packagist.org": false}),全局镜像就彻底失效。
- 检查命令:
grep -A5 '"repositories"' composer.json - 临时禁用项目配置:
composer config --unset repositories(不加-g) - 必须跟
composer clear-cache:旧composer.lock里硬编码了包下载地址,不清缓存和 lock 文件,install 仍走海外源 - 若需保留私有源,别用
config命令覆盖,应手动编辑composer.json,把阿里云镜像作为"packagist"子项写进repositories对象,并确保顶层有"packagist.org": false
内网地址 + 正确键名 + -vvv 验证,三者缺一不可;漏掉任意一个,你都在假装加速。

















