答案是默认直连https://repo.packagist.org全链路失败,须选配镜像或HTTPS代理二者之一;代理需同时设proxy和ssl-proxy,且curl验证通才有效。

必须显式配置 HTTPS 代理,HTTP 代理会直接失败;镜像源和代理不能共存,选一个就对了。
为什么 composer install 卡在 “Loading composer repositories”
这不是 Composer 慢,是它默认直连 https://repo.packagist.org,DNS 解析、TCP 建连、TLS 握手全链路在国内大概率失败。日志里不会写“连不上代理”,而是表现为超时或 file_get_contents(): SSL operation failed 这类模糊错误。
- 别信系统环境变量——
http_proxy和HTTPS_PROXY对 Composer 完全无效 - 别漏协议头——
127.0.0.1:7890是错的,必须写成http://127.0.0.1:7890或socks5://127.0.0.1:7891 - SOCKS5 仅限 Composer ≥ 2.2,旧版会静默忽略
如何用 composer config -g 正确设置代理
全局配置最稳,写入的是 ~/.composer/config.json,不影响项目级 composer.json。两个字段必须同时设:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
composer config -g repo.packagist.org.proxy http://127.0.0.1:7890 composer config -g repo.packagist.org.ssl-proxy http://127.0.0.1:7890
-
proxy控制 HTTP 请求(如元数据获取) -
ssl-proxy控制 HTTPS 请求(如包下载),缺一不可 - 如果代理支持 SOCKS5 且 Composer 版本够新,可改用
socks5://127.0.0.1:7891 - 取消配置用
composer config -g --unset repo.packagist.org.proxy和同理 ssl-proxy
代理配不成功?先用 curl 验证再查 Composer
别在 Composer 日志里猜,直接绕过它验证代理通不通:
curl -x http://127.0.0.1:7890 https://repo.packagist.org/packages.json
- 返回 JSON → 代理可用,问题出在 Composer 配置(比如漏了
ssl-proxy) -
Connection refused→ 代理进程没开,或端口填错,或防火墙拦截 -
502 Bad Gateway→ 用了 HTTP 代理却去转发 HTTPS 流量,换http://代理地址试试 -
SSL certificate problem→ 本地 CA 不被信任,临时关掉校验:curl -k -x ...看是否能通
什么情况下不该配代理
公司内网或 CI 环境里,如果已配置阿里云、腾讯云等 Packagist 镜像,且走的是内网直连,这时候加代理反而多一层故障点——请求先绕到本地代理,再出去,再回来,延迟更高还容易丢包。
镜像和代理是互斥方案:镜像靠同步+就近访问,代理靠隧道穿透。选哪个,取决于你网络受限的程度和基础设施是否支持镜像。

















