答案是必须删除vendor和composer.lock并清缓存后重装,因lock文件残留旧源哈希值导致校验失败;镜像生效需通过composer install -vvv确认Downloading地址,而非仅检查config配置。

composer install 报 “Hash does not match” 是锁文件残留旧源元数据
这不是镜像本身出错,而是 composer.lock 里硬编码了 packagist.org 的 dist URL 和 hash 值,换镜像后 Composer 仍优先尝试那个地址——而新镜像返回的 ZIP 包虽然内容一致,但 CDN 签名或压缩方式不同,导致 hash 校验失败。
根本原因不是网络或证书问题,是 lock 文件和缓存没同步更新。新版 Composer(2.2+)已移除 fallback 逻辑,不会自动重试镜像地址,只认 lock 里写的原始 URL。
- 必须删掉
vendor/和composer.lock(不能只删 vendor) - 执行
composer clear-cache—— 否则缓存里还存着旧 packages.json 的路径和 hash - 确认镜像已生效(见下一条),再跑
composer install
验证镜像是否真被使用,而不是“配置写了就完事”
composer config -g repo.packagist 输出正常 ≠ 实际走镜像。唯一可信证据是网络请求日志里的第一行 Downloading 地址。
运行以下命令看真实行为:
composer install -vvv --no-progress 2>&1 | grep "Downloading.*packages.json" | head -n 1
如果输出类似 Downloading https://mirrors.aliyun.com/composer/p/provider-2025-10%24.json,说明镜像生效;若仍是 https://packagist.org/,说明配置被覆盖或写错。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 检查项目级
composer.json是否含"repositories"字段:有即屏蔽全局,哪怕内容为空数组[] - 用
composer config repo.packagist(不带-g)查项目级配置,有输出就说明它在起效 - CI 或 Docker 中,
composer config -g写入的是构建用户的~/.composer/config.json,运行时用户可能不同
哈希错误还伴随 404 或 SSL 错误?先清缓存再切源
镜像站(如清华源)公网访问返回 HTML 页面(人机验证),Composer 解析失败,会卡在 hash 校验前;阿里云/腾讯云镜像更稳定,建议生产环境优先选它们。
换源后仍报错,大概率是旧缓存干扰:
- Linux/macOS:手动清空
$(composer config -g cache-dir)目录 - Windows:
%APPDATA%\Composer\Cache\下所有子目录全删 - 执行
curl -I https://mirrors.aliyun.com/composer/packages.json,必须返回HTTP/2 200或HTTP/1.1 200 OK,否则不是 Composer 问题,是 DNS、代理或证书链异常 - 某些镜像(如华为云)HTTP 和 HTTPS 域名不同,改源时注意协议和域名是否匹配
临时绕过哈希校验只用于调试,不可提交或上线
哈希校验是安全底线,禁用等于放弃包完整性保护。仅限本地快速验证镜像连通性:
- 加环境变量临时跳过:
COMPOSER_DISABLE_TLS=1 composer install(仅降级协议,不跳过 hash) - 真正跳过 hash 需改 Composer 源码或用
--ignore-platform-reqs(无效),没有安全的 CLI 参数 - 错误做法:改
composer.json为 HTTP 源并提交——多数镜像已关闭 HTTP,且 Git 提交后团队全员风险暴露
最稳妥路径永远是:删 lock + 清缓存 + 验证请求域名 + 重装。哈希不匹配本质是状态不一致,不是配置开关能解决的问题。

















