答案是镜像未生效或网络链路中断,需验证镜像可用性(curl -i)、强制指定源(--repository)、清理缓存并确保url末尾带/;curl error 7表明tcp连接被拒,应检查证书路径、代理配置及禁用keep-alive。

composer install 卡在 “Loading composer repositories” 怎么办
这基本等于 Composer 根本没发出去请求,或者发出去后没收到任何响应。不是包冲突、不是 PHP 版本问题,就是网络链路断了。常见于国内直连 packagist.org 时 DNS 污染、TLS 握手失败、或防火墙主动 RST。
先验证镜像源是否真通:curl -I https://mirrors.aliyun.com/composer/。返回 HTTP/2 200 才算可用;若卡住、超时、或返回 403 Forbidden,说明这个地址当前不可用(比如路径漏了 /,写成 https://mirrors.aliyun.com 就会 404)。
临时绕过本地配置、强制走指定源:composer install -vvv --repository=https://mirrors.huaweicloud.com/repository/php/。加 -vvv 能看到完整请求链路(DNS 解析 IP、TLS 版本、HTTP 状态码),比盲猜快得多。
为什么换镜像源后还是报 “Connection refused” 或 “cURL error 7”
错误提示里带 cURL error 7 或 Connection refused,说明 TCP 连接被直接拒绝——不是超时,是根本连不上目标端口。大概率原因有三个:
- 本地
curl.cainfo指向的证书文件不存在或路径错(尤其企业内网自建 CA 环境下);执行php --ini找到真实加载的php.ini,检查curl.cainfo值是否为绝对路径且文件存在 - 用了 HTTP 代理但配置项写错:必须是
http-proxy(不是proxy或https-proxy),值要带协议和端口,如http://127.0.0.1:8080 - 系统级 NAT 或防火墙对复用连接“发 RST”,表现为偶发性失败。此时需禁用 cURL 的 keep-alive:
CURL_OPTIONS="--no-keepalive" composer install(Linux/macOS)或$env:CURL_OPTIONS="--no-keepalive"; composer install(PowerShell)
清缓存不彻底导致反复失败
缓存损坏后,Composer 会不断重试同一个失败路径,看起来像“一直重置”。尤其当之前用过已停服镜像(如 https://packagist.phpcomposer.com)时,失败记录会固化在缓存里。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
执行以下两步才叫真正清干净:
composer clear-cache- 手动删掉缓存目录:
rm -rf ~/.composer/cache(Linux/macOS)或%APPDATA%\Composer\cache(Windows)
再运行 composer config -g repo.packagist 确认输出是当前有效的镜像 URL,而不是 https://packagist.org。
临时调试别动全局 config
用 composer config -g repo.packagist ... 全局改源风险极高——一旦该镜像失效,所有项目(包括 CI 流水线)都会批量挂掉。调试阶段应完全绕过 config 文件。
推荐做法:
- 单次命令强制走源:
composer install --repository=https://mirrors.aliyun.com/composer/ - 项目级临时设置(只影响当前目录):
composer config repo.packagist composer https://mirrors.tencent.com/composer/ - CI 中建议用环境变量控制:
COMPOSER_REPOSITORIES='{"packagist.org": {"type": "composer", "url": "https://mirrors.huaweicloud.com/repository/php/"}}' composer install
最易忽略的一点:镜像 URL 末尾必须带 /,否则 Composer 会拼出 /composer/packages.json 这类错误路径,返回 404 却不报具体错误,只显示“Could not fetch”。










