必须同时设置http-proxy和https-proxy,缺一则composer因https请求无隧道而卡在“loading composer repositories”;镜像与代理互斥,共存将导致静默失效。

composer config -g http-proxy 和 https-proxy 必须同时设置
只配 http-proxy,composer install 依然会卡在 “Loading composer repositories” —— 因为 Packagist 全量走 HTTPS,而 http-proxy 对 HTTPS 请求完全无效。Composer 严格按协议路由:HTTP 请求走 http-proxy,HTTPS 请求必须由 https-proxy 建立 CONNECT 隧道,缺一不可。
常见错误现象包括:cURL error 35、静默超时、Failed to decode response。验证是否生效,运行:
composer config -g --list | grep -E "(http|https)-proxy"
输出里必须同时出现两行,且 URL 格式正确(以 http:// 开头)。
-
https-proxy的值不能是https://127.0.0.1:8080,也不能省略协议头;必须写成http://127.0.0.1:8080 - 带认证时,用户名或密码含
@、/、:,必须 URL 编码,例如pa@ss/word→pa%40ss%2Fword - 命令必须加
-g(全局),否则只写入当前项目composer.json,换目录就失效
镜像源和代理不能混用
设了 repo.packagist 镜像(比如腾讯云或阿里云地址),http-proxy 和 https-proxy 就会被 Composer 完全忽略。两者作用层面不同:镜像改的是元数据请求地址,代理改的是流量转发路径,强行共存会导致静默失败或 TLS 握手错误。
如果你发现配置了代理却没效果,先检查是否残留镜像:
composer config -g --list | grep repo.packagist
若存在,务必先清空:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
composer config -g --unset repo.packagist
- 企业内网若强制所有 HTTPS 流量过代理(哪怕用了镜像),也仍需配
https-proxy,否则连镜像站的 HTTPS 地址都打不开 - 私有源启用 mTLS 时,只能靠代理透传,镜像源不支持客户端证书
- 腾讯云 CVM 环境下,90% 的“慢”不是网络不通,而是 DNS 或海外节点握手卡顿,直接切镜像比配代理更稳
代理地址必须支持 CONNECT 隧道
https-proxy 不是普通 HTTP 转发,它需要代理服务支持 CONNECT 方法,否则 Composer 的 HTTPS 请求会被静默拒绝——现象是无报错、无日志、最终超时。
可用的代理类型包括:Clash(TUN 模式)、Squid 4.0+、cntlm(NTLM 中转)、px。不支持的典型例子:nginx 反向代理、自建的简单 HTTP 转发脚本。
- Windows 域环境常用 NTLM 代理,Composer 原生不支持,必须用
cntlm或px在本地起一个http://127.0.0.1:3128中转层 - 临时验证是否真走代理:加
-n -vvv运行composer install,日志中出现Proxy CONNECT才算成功 - curl 手动测试:执行
curl -x http://127.0.0.1:8080 -I https://packagist.org/packages.json,能返回 200 即说明代理层通了
CA 证书和超时参数要同步调优
代理环境下常见 cURL error 28、SSL certificate problem,本质不是网络问题,而是代理透传后证书链不被信任,或系统时间不同步导致 TLS 握手失败。
解决方法不是“加大超时”,而是对症配置:
- 指向公司根证书:
composer config -g cafile /path/to/your-root.pem(别用系统默认的ca-bundle.crt) - 调高连接容忍度:
composer config -g http.connect_timeout 60和composer config -g http.timeout 600 - WSL2 用户常因主机与子系统时间不同步失败,运行
sudo hwclock -s同步即可
真正难搞的点不在命令本身,而在代理服务是否支持 CONNECT、证书是否可信、以及镜像和代理是否被误配共存——这三个地方漏一个,composer install 就会安静地卡住,不报错也不继续。










