确认是curl error 28需看报错含“operation timed out after xxx milliseconds”,若为error 6/35/60则属dns或tls问题;应换阿里云镜像、清缓存、设http.timeout=600,并禁用ipv6。

确认真是 curl error 28,不是 DNS 或 TLS 卡住
报错里带 Operation timed out after XXX milliseconds 才是标准的 error 28。如果看到 curl error 6(域名无法解析)、curl error 35 或 curl error 60(TLS 握手失败),就不是超时问题,得先查本地 DNS 或 OpenSSL 证书链。
最稳办法是加 -vvv 重试:composer install -vvv,看最后几行停在哪:是卡在 * Trying xxx:443(TCP 连接前),还是 * Connected to ... 之后(TLS 或响应阶段)。
换阿里云镜像源并清缓存
官方源 repo.packagist.org 在国内 DNS 解析常超 15 秒、TLS 握手失败率高,这才是 error 28 的主因。换成阿里云镜像基本能秒解:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
注意:地址末尾不能多斜杠,https://mirrors.aliyun.com/composer// 会拼出 //packages.json 导致 404。
再清旧缓存:composer clear-cache
验证是否生效:composer config -g repos.packagist.org.url 应输出含 "url": "https://mirrors.aliyun.com/composer/" 的 JSON。
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
设对 http.timeout,别和 process-timeout 混用
http.timeout 控制 HTTP 请求的连接 + 读取总时长(单位秒),默认约 60 秒,国内建议设为 600;process-timeout 管的是 git clone、unzip 这类外部命令,和下载包无关。
正确设置方式:composer config -g http.timeout 600composer config -g process-timeout 1200
若 CI 环境不认全局配置,改用环境变量:COMPOSER_HTTP_TIMEOUT=600 composer install。
别碰 http-basic 或 github-oauth,它们和超时完全无关。
仍超时?检查 Git 克隆、IPv6 和代理干扰
镜像源只加速 dist(ZIP/TAR)下载,对 source(git clone)完全无效。如果项目里有 "prefer-source": true 或硬编码了 git@ 地址,Composer 就会 fallback 直连 GitHub/GitLab,此时超时由 Git 自己控制,和 Composer 配置无关。
CI 环境常默认启用 IPv6,而多数国内镜像站对 IPv6 支持不完整,导致隐性延迟叠加——加 COMPOSER_IPV4=1 composer install 强制走 IPv4。
公司/校园网络可能劫持 DNS 或强制 HTTPS 代理,让 TLS 握手卡在 * TLSv1.3 (IN), TLS handshake 那一步,curl 测通了,Composer 却静默超时。










