先执行curl -v https://packagist.org/packages.json检查是否出现302跳转至127.0.0.1/localhost/内网地址,若存在则确认重定向循环;再排查HTTP_PROXY/HTTPS_PROXY环境变量、hosts文件条目及DNS劫持。

curl -v 直接测 packagist.org 看重定向链
别等 composer install 卡住再排查,先用最底层命令验证是否真有重定向循环。执行:curl -v https://packagist.org/packages.json
重点看输出里有没有连续出现 < HTTP/2 302 和 < location: 字段,且 location 指向 http://127.0.0.1、http://localhost 或公司内网地址(比如 http://10.1.2.3/proxy)。一旦看到这种跳转回本地的路径,就是闭环实锤。
检查 HTTP_PROXY / HTTPS_PROXY 环境变量
很多代理工具(如 Charles、Fiddler、某些 IDE 内置代理)会悄悄设置系统级环境变量,而 Composer 默认继承它们。但这些代理往往不支持 HTTPS 重定向或证书处理,导致 https://packagist.org 被降级成 HTTP 后反复跳转。
- Linux/macOS:运行
env | grep -i proxy,若输出含HTTP_PROXY或HTTPS_PROXY,临时清掉:unset HTTP_PROXY HTTPS_PROXY - Windows:在 CMD 中运行
set HTTP_PROXY=和set HTTPS_PROXY= - 终端启动脚本(如
~/.zshrc)里也常埋着export HTTP_PROXY=...,搜出来注释掉
/etc/hosts 或 C:\Windows\System32\drivers\etc\hosts 里有 packagist.org 条目
这是企业内网或本地调试时最隐蔽的坑。哪怕只有一行 127.0.0.1 packagist.org,也会让所有请求先落到本机,再被某服务(比如 nginx、dev server)302 回原域名,形成死循环。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- macOS/Linux:打开
/etc/hosts,删掉所有含packagist.org的行 - Windows:用管理员权限打开记事本,编辑
C:\Windows\System32\drivers\etc\hosts,同样删掉相关条目 - 改完后必须关掉当前终端窗口重开——环境不会自动刷新
DNS 劫持或公司网络策略干扰
有些企业路由器或 DNS 服务会把 packagist.org 解析到内网 IP(比如 192.168.x.x),然后由内网代理转发,但转发逻辑没处理好 HTTPS,就又跳回来。
- 用
nslookup packagist.org或dig packagist.org +short查真实解析结果,如果返回非公网 IP(不是151.101.0.249这类 Cloudflare 地址),基本就是 DNS 劫持 - 临时切 DNS 验证:Linux/macOS 改
/etc/resolv.conf加nameserver 8.8.8.8;Windows 在网络适配器里手动设 DNS - 如果切 DNS 后
curl -v不再跳转,说明问题出在网络层,得联系 IT 部门白名单packagist.org
真正难搞的不是某一项配置,而是这几处同时生效:hosts 里写了重定向、终端里 export 了代理、DNS 又被劫持。建议按顺序逐项排除,每改一项都重新跑 curl -v,别跳步。否则你删了 hosts,却还卡在代理上,会误判根源。

















