必须同时设置 http-proxy 和 https-proxy 且协议均为 http://,并清空 repo.packagist 镜像源;https-proxy 值须为 http:// 开头、代理需支持 connect,企业环境还需配置 cafile 或使用 cntlm/px 处理 ntlm。

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 隧道,缺一不可。
常见错误写法包括:
-
https-proxy值写成https://127.0.0.1:8080(协议必须是http://) - 漏掉协议头,如直接填
127.0.0.1:8080 - 只执行一条命令,比如只设了
http-proxy却没设https-proxy
正确做法是两条命令都运行:
composer config -g http-proxy http://127.0.0.1:8080 composer config -g https-proxy http://127.0.0.1:8080
若代理需认证,URL 中用户名/密码含 @、/、:,必须 URL 编码,例如 pa@ss/word → pa%40ss%2Fword。
先清空镜像源,否则代理不生效
镜像配置(repo.packagist)和代理互斥。一旦设置了 repo.packagist,Composer 就绕过所有代理字段,直连镜像地址——此时哪怕 http-proxy 和 https-proxy 都配对了,也完全不触发。
国内用户卡住的主因就是混配:既设了阿里云镜像,又配了 Clash 代理,结果 Composer 只走镜像直连,代理形同虚设。
要真正启用代理,第一步永远是清空镜像:
composer config -g --unset repo.packagist
注意不是 repos.packagist 或 packagist.org,键名必须是 repo.packagist(单数 + 无后缀)。执行后可验证:composer config -g repo.packagist 应返回空或报错,而非一个 URL。
https-proxy 值必须是 http:// 开头,且代理需支持 CONNECT
Composer 的 https-proxy 字段只接受 http:// 协议前缀,哪怕你的代理服务监听的是 TLS 端口(如 https://127.0.0.1:8443),也必须填成 http://127.0.0.1:8443。填错会导致静默 fallback 直连,最终超时或 502。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
另外,该代理必须支持 HTTP CONNECT 方法,否则无法透传 HTTPS 流量。Clash、Squid 4.0+、cntlm、px 都可以;普通 HTTP 代理(如某些老旧 Squid 版本)或仅支持 GET/POST 的中间件不行。
快速验证代理是否可用:
curl -x http://127.0.0.1:8080 -I https://packagist.org/packages.json
如果返回 200 或 407(说明认证层存在),就代表代理本身能通;若返回 “Connection refused”,说明进程未启动或端口不对。
企业环境常被忽略的证书与 NTLM 问题
即使代理配对成功,TLS 握手仍可能失败,典型表现是 cURL error 35、SSL certificate problem 或静默超时。这不是网络慢,而是公司根证书未被信任。
解决方法是显式指定 CA 文件:
composer config -g cafile /path/to/your-company-root.pem
不要用系统默认的 ca-bundle.crt,它不含内网签发的根证书。
Windows 域环境还可能遇到 NTLM 代理(比如微软 Forefront TMG),Composer 原生不支持。此时不能靠改配置解决,必须引入中转工具,如 cntlm 或 px,让它们监听 127.0.0.1:3128 并处理 NTLM 认证,再让 Composer 连这个本地地址。
最后提醒:环境变量 HTTP_PROXY 和 HTTPS_PROXY 对 Composer 完全无效,它只认自己的 http-proxy 和 https-proxy 字段——别白费力气 export。










