必须同时配置http-proxy和https-proxy,且https-proxy值必须以http://开头;因Composer将HTTP/HTTPS请求分路由,所有仓库均走HTTPS,仅配http-proxy会导致HTTPS请求静默直连而卡在Loading composer repositories或报cURL error 28。

只配 http-proxy 一定失败,必须同时配 https-proxy,且值必须是 http:// 开头——这是 Composer 的硬性路由规则,不是可选项。
为什么 http-proxy 单独配置没用
Composer 对 HTTP 和 HTTPS 请求走完全不同的代理路径:前者走 http-proxy,后者必须走 https-proxy 字段发起 CONNECT 隧道。Packagist、GitHub、GitLab 所有仓库全量走 HTTPS,漏掉 https-proxy 就等于让 HTTPS 请求 fallback 到直连,结果就是卡在 Loading composer repositories 或反复报 cURL error 28,却无明确错误提示。
常见错误现象包括:
- 运行
composer install后长时间无响应,最后超时 -
composer config -g --list只显示http-proxy,没看到https-proxy - 填了
https://127.0.0.1:8080或127.0.0.1:8080—— 这两种写法都非法,会静默失效
https-proxy 的正确写法和验证方式
无论你的代理服务监听的是 HTTP 还是 HTTPS 端口,https-proxy 的值协议头必须是 http://。例如:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 本地 Clash/Proxyman:
http://127.0.0.1:7890 - 带认证的代理:
http://user:pa%40ss%2Fword@127.0.0.1:8080(密码含@或/必须 URL 编码)
配置后务必验证:
- 运行
composer config -g --list | grep -E "(http|https)-proxy",确认两行都存在且格式合规 - 临时绕过代理测试:
HTTP_PROXY= HTTPS_PROXY= composer install,若此时成功,基本锁定是代理配置问题
NTLM 代理(如公司 Windows 域环境)怎么办
Composer 原生不支持 NTLM 认证,设了 http-proxy 也会直接返回 407 Proxy Authentication Required。不能靠改 Composer 配置解决,必须引入中转代理工具:
- Windows 推荐
cntlm或px,让它们监听127.0.0.1:3128并处理 NTLM - 再把 Composer 的
http-proxy和https-proxy都指向http://127.0.0.1:3128 - 验证中转层是否生效:
curl -x http://127.0.0.1:3128 -I https://packagist.org/packages.json,如果也报 407,说明中转没配好
代理配好了还是超时?别只盯着 proxy 字段
代理只是链路一环,超时还可能卡在其他环节:
-
http.timeout默认仅 300 秒(5 分钟),弱网下极易触发;需同步运行composer config -g http.timeout 600 - PHP 的
default_socket_timeout若低于你设的http.timeout(常见值是 60),会提前掐断连接;查它:php -i | grep default_socket_timeout,必要时在php.ini中调高 - 公司防火墙或 DNS 污染可能导致 CONNECT 隧道建立失败,建议搭配国内镜像源使用:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
真正容易被忽略的是:代理配置不会自动继承系统 HTTP_PROXY 环境变量,Composer 明确忽略它——所有代理设置必须通过 composer config -g 显式写入,否则换目录或 CI 环境就失效。

















