Composer报错Repository not found,主因是composer.json中配置了已下线、拼写错误的私有仓库,或使用了失效镜像源(如腾讯云、华为云旧镜像),需逐个验证repositories地址连通性及协议合法性。

Composer 报错 Repository not found,基本就是 composer.json 里配置了已下线或拼写错误的私有仓库地址,或者用了被弃用的 Packagist 镜像源。
检查 repositories 配置是否指向已关闭的私有源
很多团队曾用自建 Satis 或 Toran Proxy 搭建私有包仓库,但服务停运后,composer.json 中残留的 "type": "composer" 仓库地址会持续触发 Repository not found。Composer 不会主动提示“源不可达”,而是统一报这个模糊错误。
- 运行
composer config repositories查看当前所有注册仓库 - 逐个访问
url字段值(如https://packages.example.com),确认 HTTP 状态码是否为 200,且返回内容含packages.json结构 - 若域名解析失败、返回 404 或 TLS 证书过期,直接从
composer.json中移除对应repositories条目,或改用"packagist.org": false+ 替代镜像
国内用户慎用已失效的镜像源(如腾讯、华为旧版)
腾讯云 Composer 镜像(https://mirrors.cloud.tencent.com/composer/)和华为云旧镜像(https://mirrors.huaweicloud.com/repository/php/)已于 2023 年底起逐步下线,但大量教程和脚手架仍保留这些地址。一旦配置进全局或项目级 config,composer update 就会卡在 repo 探测阶段并报 Repository not found。
- 执行
composer config -g repos.packagist查看全局 packagist 配置 - 若输出为
{"url": "https://mirrors.cloud.tencent.com/composer/", "type": "composer"},立即重置:composer config -g repos.packagist composer - 推荐使用当前稳定的镜像:
composer config -g repos.packagist https://packagist.phpcomposer.com(阿里云维护)或直接用官方源(国外网络通畅时)
私有 Git 仓库 URL 写法错误导致解析失败
当 repositories 类型为 vcs,且 URL 是 GitHub/GitLab 的网页地址(如 https://github.com/user/repo)而非 Git 协议地址时,Composer 无法克隆,也会退化为 Repository not found。
- 正确写法必须是可被
git clone直接消费的地址:"url": "https://github.com/user/repo.git"或"url": "git@github.com:user/repo.git" - 确保该 URL 在终端中能成功执行
git ls-remote -h {url};若提示权限拒绝,需配置 SSH key 或加auth.json - 不要在
url末尾加/tree/main或/blob/master/composer.json—— 这些是浏览器路径,不是仓库地址
最常被忽略的是:Composer 的 Repository not found 错误本身不区分「源不存在」和「源存在但不可读」,排查时得手动验证每个仓库的连通性与协议合法性,不能只盯着报错字面意思找。










