腾讯云镜像仅解决下载慢问题,超时仍需同步配置http.timeout(建议600)和process-timeout(建议1200),并验证composer config -g repo.packagist输出正确、curl -i返回200、无项目级repositories覆盖。

直接结论:只配腾讯云镜像但不调 http.timeout 和 process-timeout,90% 的超时仍会复现——镜像解决的是“慢”,两个 timeout 解决的是“断”。
怎么确认腾讯云镜像真的在用
很多人执行了 composer config -g repo.packagist composer https://packagist.proxy.tencent.com/ 就以为生效了,其实未必:
- 运行
composer config -g repos.packagist,输出必须是{"type": "composer", "url": "https://packagist.proxy.tencent.com/"},不是packagist.org、空值,也不是旧地址https://mirrors.cloud.tencent.com/composer/(已停用) - 手动验证连通性:
curl -I https://packagist.proxy.tencent.com/packages.json,应秒回HTTP/2 200;若卡住或返回404,说明本地 DNS、代理或防火墙阻断了请求 - 检查项目级
composer.json中的repositories字段——它会覆盖全局配置;若硬编码了packagist.org或错误 URL,镜像完全不生效
为什么加了腾讯云镜像还报 curl 28 或 “The process timed out”
镜像只加速 dist 包下载,但以下场景它不介入,timeout 依然会触发:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
"prefer-source": true开启时,Composer 直连 Git 仓库(如github.com),绕过镜像;此时失败是 Git 层问题,http.timeout无效,得改git clone行为或切回"prefer-dist": true - 项目依赖含私有仓库(如
git@xxx或自建 Satis),Composer 会 fallback 直连,逐个尝试并超时重试,拖垮整体耗时 - CI/CD 容器每次启动都是干净环境,
COMPOSER_HOME未固化会导致镜像配置丢失;必须在构建脚本开头显式执行配置命令
必须同步调的两个 timeout 参数
http.timeout 和 process-timeout 是独立控制不同阶段的,缺一不可:
-
http.timeout控制单次 HTTP 请求(DNS、TLS 握手、首字节等待、body 下载),默认仅 60 秒;腾讯云镜像首字节偶尔延迟高,建议设为300~600:composer config -g http.timeout 600 -
process-timeout控制整个命令生命周期(含解压、脚本执行、autoloader 生成),默认 300 秒;大项目跑post-install-cmd易超,建议设为1200:composer config -g process-timeout 1200 - 注意:
http-basic.timeout是 Composer v1 废弃项,v2+ 完全不读取;--timeout=600只影响命令总周期,对 HTTP 下载阶段无效
CI/CD 中稳定拉包的关键操作
GitHub Actions、GitLab CI 等环境更易超时,不能只靠拉长 timeout:
- 强制用 dist 包:
composer install --no-interaction --prefer-dist --optimize-autoloader,避免触发 Git clone - 禁用插件干扰(尤其
composer-plugin类):composer install -n或临时设COMPOSER_DISABLE_PLUGINS=1 - 宿主机 DNS 不稳时,Docker 容器可能卡在解析阶段;可在
docker run加--dns 8.8.8.8,或在/etc/resolv.conf中加固 - WSL2 用户注意:
/mnt/c/路径下 symlink 扫描极慢,autoload 阶段卡住不是网络问题,而是文件系统层阻塞
最常被忽略的一点:腾讯云镜像只代理 packages.json 和 ZIP/TAR 包,不代理 GitHub API 调用(如获取 release 信息、校验 commit hash)。如果项目里用了 composer require xxx:dev-main 或依赖含 "version": "dev-*",Composer 仍会直连 GitHub,这时候再大的 http.timeout 也救不了——得换协议、加 token 或收敛到稳定 tag。










