“connection refused”错误源于网络底层问题而非composer本身,需依次排查dns解析、防火墙拦截、镜像配置错误及代理干扰;关键验证点是composer diagnose输出的repo域名和-vvv日志中的实际请求url。

“Connection refused” 或 “failed to open stream: Connection refused” 不是 Composer 坏了,而是请求根本没发出去——DNS 解不出来、防火墙拦了 443 端口、镜像配置写错,或者系统代理在捣鬼。
先看报错里有没有 cURL error 7 或 getaddrinfo failed
这两个信号说明问题卡在最底层:域名解析或 TCP 连接阶段,跟 Composer 版本、PHP 扩展、composer.json 内容都无关。
-
getaddrinfo failed→ DNS 失效,运行ping packagist.org,如果返回unknown host,立刻换 DNS(比如8.8.8.8或114.114.114.114) -
cURL error 7→ 请求发出去但没人应答,可能是防火墙/杀毒软件(如火绒、360)拦截了 443 端口,或企业中间人代理静默失败 - 浏览器能打开
https://packagist.org,但 Composer 报错 → 很大概率是 HTTPS 证书校验失败,不是网络不通
确认镜像源是否真生效,别信 composer config -g repo.packagist 的输出
这个命令只显示配置值,不保证实际走的是这个地址。真正要看的是 Composer 发出去的请求域名。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 运行
composer diagnose,找到Repo packagist.org:这一行,后面必须是mirrors.aliyun.com或mirrors.tuna.tsinghua.edu.cn,不是packagist.org - 运行
composer install -vvv --no-progress | grep -i "packages.json",日志里出现的 URL 必须含mirrors-aliyun-com-composer类路径,否则就是 fallback 到官方源了 - 常见静默失效写法:
repos.packagist(多一个 s)、repo.packagist.org(Composer 2.2+ 已弃用)、URL 少末尾/(拼成/packages.json导致 404)
执行正确换源命令并强制清缓存
阿里云镜像是目前最稳的选择,但格式错一个字符就等于没配。
- 全局切换(推荐):
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/(注意中间composer是 type 值,不是可选参数;末尾/必须有) - 立刻清缓存:
composer clear-cache——跳过这步,90% 的“换源无效”就出在这里 - 验证生效:
composer config -g repo.packagist应输出完整 JSON 对象,含"type": "composer"和该 URL - 别用已下线的旧源,如
https://packagist.phpcomposer.com(404)、https://packagist.laravel-china.org(2025 年底关停)
绕过证书或强制 IPv4 的临时调试手段
某些企业网络强制中间人代理,会篡改 HTTPS 证书,导致 Composer 校验失败并静默转为连接拒绝。
- 临时绕过证书校验(仅调试!不安全):
composer config -g secure-http false+composer config -g cafile /dev/null - 更稳妥方式:导出企业根证书(如
company-ca.crt),再配置:composer config -g cafile /path/to/company-ca.crt - 若卡在 TLS 握手,强制走 IPv4:
CURL_IPRESOLVE=4 composer install(Linux/macOS) - CI 或宝塔环境常见 IPv6 干扰,可加环境变量:
COMPOSER_IPV4=1 composer install
最容易被忽略的是缓存和镜像配置的“静默 fallback”——换源命令少个斜杠、漏清缓存、或者用了已停服的旧地址,Composer 都不会报错,只会安静地回到 packagist.org,然后连不上。










