composer设代理必须同时配置http-proxy和https-proxy,因packagist全走https且协议硬隔离;镜像源与代理互斥,不可混用;密码含特殊字符需rawurlencode();ntlm代理需本地中转工具;验证需逐层排查。

Composer设代理必须同时配 http-proxy 和 https-proxy
只设 http-proxy 会导致 composer install 卡在 “Loading composer repositories”,因为 Packagist 全量走 HTTPS,而 http-proxy 完全不处理 HTTPS 请求。Composer 对协议是硬隔离的:https-proxy 才负责建立 CONNECT 隧道转发 HTTPS 流量。
两条命令必须都执行:
composer config -g http-proxy http://127.0.0.1:7890composer config -g https-proxy http://127.0.0.1:7890
https-proxy 的值仍必须以 http:// 开头——填 https:// 或省略协议会静默失效,配置看似写入但实际不生效。
镜像源和代理不能混用
配了阿里云或腾讯云镜像(如 https://mirrors.aliyun.com/composer/)后,Composer 就不再访问 repo.packagist.org,自然也绕过所有 http-proxy 和 https-proxy 配置。二者逻辑互斥,不是叠加关系。
常见错误场景:
- 既执行
composer config -g repo.packagist.org url https://mirrors.tencent.com/composer/,又留着旧的代理配置 - 期望“镜像加速 + 代理兜底”双保险,结果部分请求被镜像响应、部分被代理劫持,最终 404 或 fallback 到官方源
正确做法:选其一。要走代理就清掉镜像配置;要用镜像就执行 composer clear-cache 并删掉所有 proxy 配置。
密码含 @、:、/ 必须 rawurlencode()
Composer 解析代理 URL 时只认第一个 @ 为用户/密码分隔符,后面出现的特殊字符会直接截断 URI。比如密码是 pa@ss:word,不编码就填 http://user:pa@ss:word@127.0.0.1:7890,实际解析出的密码只有 pa,后续全部丢弃,报 Invalid URI supplied 或静默跳过代理。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
编码方式(终端一行搞定):
php -r "echo rawurlencode('pa@ss:word');"
输出 pa%40ss%3Aword,再拼成完整地址:http://user:pa%40ss%3Aword@127.0.0.1:7890。域名里含 @ 同样要编码。
NTLM 代理需本地中转,Composer 原生不支持
公司内网用 Windows 域控 NTLM 代理时,直接设 http-proxy 会稳定返回 407 Proxy Authentication Required。这不是配置写错,是协议层根本不通——Composer 没有 NTLM 实现。
唯一可行路径:
- 本地起
cntlm或px,监听127.0.0.1:3128并处理 NTLM 认证 - 再让 Composer 连这个本地地址:
composer config -g http-proxy http://127.0.0.1:3128和composer config -g https-proxy http://127.0.0.1:3128
验证中转是否生效:curl -x http://127.0.0.1:3128 -I https://packagist.org/packages.json。如果 curl 也报 407,说明中转没配好,别急着调 Composer。
最易忽略的点:代理配置生效与否,不能只看 composer config -g --list 输出两行,得逐层验证——本地代理进程是否运行、端口是否监听、防火墙是否放行、中间网关是否允许 CONNECT 隧道。现象都是“卡住”,但根因可能差三层。










