Composer卡在“Loading composer repositories”主因是未正确配置https-proxy,因所有仓库均为HTTPS协议,仅设http-proxy无效;必须同时设置https-proxy为http://协议地址(如http://127.0.0.1:7890),缺一则静默回退直连导致超时。

Composer 卡在 Loading composer repositories,不是它慢,是你没配对 http-proxy 和 https-proxy —— 缺一个就等于没配。
为什么只设 http-proxy 仍然失败
Composer 对 HTTP 和 HTTPS 请求走完全独立的代理通道:http-proxy 只管 http:// 请求,而 Packagist、GitHub 等所有仓库地址全是 https://,必须由 https-proxy 字段接管。这个字段值必须是 http:// 协议(哪怕你用的是 HTTPS 代理服务),否则 Composer 无法建立 CONNECT 隧道。
常见错配现象:
-
https-proxy填成https://127.0.0.1:8080或漏掉http://→ 静默 fallback 到直连 → 最终超时或502 Bad Gateway - 只运行
composer config -g http-proxy http://127.0.0.1:7890,没设https-proxy→ 所有 HTTPS 请求被系统策略拦截,日志里只显示“Loading...”不动 - 代理进程实际监听
socks5://127.0.0.1:7891,但 Composer 版本 socks5:// 前缀,直接忽略
全局配置比项目级更可靠
用 -g(--global)写入用户级配置,一劳永逸,不污染每个项目的 composer.json。它修改的是 ~/.composer/config.json(Windows 是 %APPDATA%\Composer\config.json),不是当前目录下的那个。
正确命令组合:
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
验证是否生效:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
composer config -g --list | grep -E "(proxy|ssl-proxy)"
输出应包含两行,且 URL 格式一致。若报 Could not write to file(Windows 常见),检查 %APPDATA%\Composer\ 目录是否存在、是否有写权限。
NTLM 代理或企业内网怎么处理
Composer 原生不支持 NTLM 认证。填了带域账号的 http://user:pass@127.0.0.1:8080 也会返回 407 Proxy Authentication Required。
必须引入中转代理工具:
- Windows 域环境推荐
cntlm或px,让它们监听127.0.0.1:3128并处理 NTLM - 再把 Composer 的
proxy和ssl-proxy全部指向http://127.0.0.1:3128 - 用
curl -x http://127.0.0.1:3128 -I https://packagist.org/packages.json先验证中转层是否通
公司已有阿里云/腾讯云 Packagist 镜像?别配代理。直接切镜像源更稳:composer config -g repo.packagist.org.url https://mirrors.aliyun.com/composer/。代理和镜像不可共存,强行混用会冲突。
容易被忽略的证书与路径细节
即使代理地址、协议、端口全对,仍可能失败,原因藏在 TLS 层或系统路径里:
-
file_get_contents(): SSL operation failed→ 本地 CA 证书不被信任,或代理未正确透传 TLS 流量;临时解法:换用纯http://代理(非 HTTPS)绕过证书校验 - Windows 长路径未启用 →
mkdir(): Invalid argument类错误会掩盖真实网络问题;必须开启LongPathsEnabled=1并重启系统,否则任何代理优化都白搭 - 密码含
@、/、:必须 URL 编码,例如pa@ss/word→pa%40ss%2Fword,可用php -r "echo rawurlencode('pa@ss/word');"快速生成
代理不是“可选加速项”,而是国内访问 Packagist 的事实必需条件;但它的生效前提是:协议写对、双字段齐备、中转层可信、系统基础就绪。

















