curl error 28本质是网络请求超时,需调大http.timeout值(如600秒)或换用国内镜像源;非证书/代理问题,常见于dns慢、tls握手卡顿或网络抖动。
Composer 报错 curl error 28,本质是网络请求超时,不是证书或代理配置错误——直接调大超时阈值最有效。
为什么出现 curl error 28
这是 cURL 返回的「operation timeout」错误,表示 Composer 在等待远程服务器响应时超过了默认时限。常见于国内访问 packagist.org 或 GitHub 时 DNS 解析慢、TLS 握手卡顿、或中间网络抖动,而非完全连不上。
- 默认超时值极低:
default_socket_timeout(PHP)和 cURL 的CURLOPT_TIMEOUT均为 300 秒,但 Composer 自身还设了更激进的http.timeout默认值(约 60 秒) - 不是所有超时都报
28:若卡在 DNS 阶段,可能表现为curl error 6;若 TLS 握手失败,可能是35或60 - 运行
composer diagnose通常不会暴露该问题,因为它只检测基础连接,不模拟真实包下载流程
临时解决:命令行加 --timeout 参数
适用于单次安装或更新,不修改全局配置,适合 CI/CD 或临时调试。