必须同时配置http-proxy和https-proxy两个字段,缺一则HTTPS请求(如访问packagist.org)会直连超时或报cURL error 35;https-proxy值须以http://开头,且代理需支持CONNECT隧道,镜像与代理互斥,启用前须先清空repo.packagist配置。

Composer 配代理不是加个环境变量就完事,必须同时配 http-proxy 和 https-proxy 两个字段,缺一不可;否则所有 HTTPS 请求(包括访问 packagist.org)都会 fallback 直连,卡在 Loading composer repositories 无报错。
为什么只设 http-proxy 还是失败
因为 Packagist、GitHub 等仓库全量走 HTTPS,而 Composer 对协议是严格分流的:http-proxy 只处理 HTTP 请求,https-proxy 才用于建立 CONNECT 隧道转发 HTTPS 流量。漏掉后者,请求实际没走代理,只是静默超时或返回 cURL error 35、SSL certificate problem。
-
https-proxy的值必须是http://开头(哪怕代理监听的是 TLS 端口),填https://或漏协议头会直接失效 - 代理需支持 CONNECT 隧道(如 Clash、Squid 4.0+),普通 HTTP 代理或 NTLM 代理不兼容
- 公司用 NTLM 代理(比如 Windows 域环境)时,Composer 原生不支持,必须先用
cntlm或px做中转,再让 Composer 连本地http://127.0.0.1:3128
全局配置代理的正确命令写法
别手改 ~/.composer/config.json,用 composer config -g 最安全,且必须两条都执行:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
composer config -g http-proxy http://127.0.0.1:8080 composer config -g https-proxy http://127.0.0.1:8080
- 带认证时 URL 写成
http://user:pass@127.0.0.1:8080,密码含@、/、:必须 URL 编码(例如pa@ss/word→pa%40ss%2Fword) - Windows 下若提示
Could not write to file,检查%APPDATA%\Composer\config.json是否存在且可写 - 验证是否生效:运行
composer config -g --list | grep -E "(http|https)-proxy",输出里两个字段都得有值、格式正确
代理和镜像源不能混用
设了 repo.packagist 镜像(如腾讯云、阿里云),http-proxy 和 https-proxy 就完全被忽略——这不是 bug,是 Composer 的设计逻辑:镜像改元数据地址,代理改流量路径,二者互斥。
- 国内用户卡在
Loading composer repositories,90% 是因为同时配了镜像和代理 - 真要用代理,第一步必须清空镜像:
composer config -g --unset repo.packagist - 如果公司网络策略强制所有 HTTPS 流量过代理(哪怕你用了镜像站),那仍需配
https-proxy,因为镜像站本身也是 HTTPS 地址
最容易被忽略的点是:代理配置后,composer install 默认不会打印代理日志;加 -n -vvv 才能看到 Proxy CONNECT 字样,这是唯一能确认它真走了代理的证据。

















