Composer提示Repository not found_解决Composer仓库地址失效【避坑】

6次阅读

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

Composer提示Repository not found_解决Composer仓库地址失效【避坑】

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 年底起逐步下线,但大量教程和脚手架仍保留这些地址。一旦配置进全局或项目级 configcomposer 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 错误本身不区分「源不存在」和「源存在但不可读」,排查时得手动验证每个仓库的连通性与协议合法性,不能只盯着报错字面意思找。

text=ZqhQzanResources