根本原因是默认连接国外 packagist.org,导致 DNS 解析慢、TLS 握手失败、下载速率被限至 10–50 KB/s;必须全局切换为阿里云等国内镜像源并验证配置生效。

为什么 composer install 总卡在 downloading 包?
根本原因不是网络差,而是默认走的 packagist.org 官方源——它本身没做国内 CDN 加速,且对大陆 IP 有明显限速。你看到的 “Downloading xxx” 卡住几十秒,大概率是 DNS 解析慢 + 连接超时重试 + 下载速率被压到 10–50 KB/s。
- 别信“换 DNS 就行”,
packagist.org的域名解析没问题,但后续 TCP 握手和 TLS 握手常失败 -
composer global require同样受影响,因为全局命令也走同一源 - 即使开了代理,若未配置 Composer 使用 socks/http 代理(或代理不稳定),反而更慢
直接切镜像源:三步生效,不用改项目配置
国内主流镜像源(阿里云、腾讯云、华为云)已同步 packagist 元数据,延迟 1 MB/s。关键是要全局切换,而非每个项目单独配。
- 执行
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/(推荐阿里云,稳定) - 验证是否生效:
composer config -g repo.packagist应输出{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"} - 删掉项目里的
composer.json中手动写的"repositories"块——否则会覆盖全局设置
遇到 [Composer\Downloader\TransportException] 还是下载失败?
这通常不是源的问题,而是 Composer 自身缓存或 SSL 校验异常。别急着换源,先清两样东西:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 清 Composer 缓存:
composer clear-cache(注意不是clearcache) - 关掉 OpenSSL 验证(临时):
export COMPOSER_DISABLE_TLS=1(Linux/macOS)或set COMPOSER_DISABLE_TLS=1(Windows CMD),仅用于排查;确认是证书问题后再重装 CA 包 - 检查是否启用了杀毒软件或企业防火墙——某些会劫持 HTTPS 流量,导致
curl层报SSL: certificate verify failed
CI/CD 环境里怎么保证镜像源不漂移?
CI 脚本里不能依赖本地全局配置,每次构建都是干净环境。必须显式指定源,且避免用 config 命令写入(可能权限不足或路径不对)。
- 用环境变量最可靠:
COMPOSER_REPO_PACKAGIST=https://mirrors.tencent.com/composer/ composer install - GitHub Actions 示例:
run: composer install --no-interaction前加env: COMPOSER_REPO_PACKAGIST: 'https://mirrors.huaweicloud.com/composer/' - 不要在
composer.json里硬编码repositories——不同环境(开发/测试/生产)可能需要不同策略,硬编码反而难维护
镜像源不是一劳永逸的,阿里云偶尔维护,腾讯云更新频率略低。真正要稳,得把源地址做成可配置项,而不是写死在任何地方。

















