Gitee 不提供 Composer 镜像服务,所谓“gitee 镜像源”多为失效链接或误解;国内可用的稳定镜像仅有阿里云、腾讯云和华为云三家,推荐优先使用 https://mirrors.aliyun.com/composer/。

gitee 本身不提供 Composer 镜像源
码云(Gitee)不是 Packagist 类型的 Composer 仓库,它不托管 packages.json、不索引全量 PHP 包、也不支持按包名路由分发 zip 包。所谓“gitee 镜像源”是常见误解——你搜到的链接(如 https://gitee.com/composer/mirror)基本都已失效或从未正式运营过。2025 年底起,Gitee 官方明确未提供 Composer 公共镜像服务,所有声称“gitee composer 镜像”的第三方页面,要么是旧文档残留,要么指向错误地址(返回 404 或空响应)。
如果你看到类似命令:composer config -g repo.packagist composer https://gitee.com/xxx,请立刻停用——它大概率无法工作,且会静默 fallback 到 packagist.org,拖慢安装速度还不自知。
想从 Gitee 拉私有包?必须配 vcs 仓库 + 认证
真正需要的是:让 Composer 能从你的 Gitee 私有仓库(比如 https://gitee.com/your-org/your-package)下载某个具体包。这不是“换镜像”,而是声明一个 vcs 类型源,并确保能认证访问。
- 在项目
composer.json的repositories数组里加一条:
{
"type": "vcs",
"url": "https://gitee.com/your-org/your-package.git"
}
- 认证方式二选一:
- 用 HTTPS:把个人访问令牌写进
auth.json(路径:~/.composer/auth.json或项目根目录),格式为:{"http-basic": {"gitee.com": {"username": "your-token", "password": ""}}};注意username字段填 token,password留空 - 用 SSH:生成密钥对,公钥添加到 Gitee 账户,URL 改成
git@gitee.com:your-org/your-package.git,Composer 会自动调用ssh
- 用 HTTPS:把个人访问令牌写进
- 别漏掉包名一致性:你在
require里写的包名(如"your-org/your-package")必须和 Gitee 仓库的命名完全一致,大小写敏感
国内可用的 Composer 镜像只有这几个靠谱
目前稳定、全量、HTTPS 可用的公共镜像只剩三家,按推荐优先级排序:
-
https://mirrors.aliyun.com/composer/—— 同步快、索引全、无维护中断记录,阿里云镜像仍是首选 -
https://mirrors.cloud.tencent.com/composer/—— 偶发延迟(新包可能晚 1–3 小时),但稳定性尚可,末尾斜杠不能少 - 华为云镜像(
https://repo.huaweicloud.com/composer/)—— 2026 年初已确认上线,但需自行验证证书链是否被内网拦截
所有其他名字带 “gitee”“github”“phpcomposer.com” 的地址,要么已下线(如 phpcomposer.com 自 2024 年起返回 404),要么是用户自建未公开服务,不可作为生产环境依赖源。
为什么改了配置却没走镜像?排查三步法
执行 composer config -g repo.packagist 显示地址正确,但 composer install -vvv 日志里仍出现 Downloading https://packagist.org/ —— 这说明配置被绕过了。原因通常是:
- 项目级
composer.json里写了repositories,它会覆盖全局配置;检查是否有类似"repositories": [{"type": "composer", "url": "https://packagist.org/"}]的硬编码 - 用了 Composer 2.2+,但没启用 fallback:只设了镜像没留官方兜底,某些特殊包(如含
dev-分支约束)可能触发降级失败,建议补一句composer config -g repositories.packagist composer https://mirrors.aliyun.com/composer/(注意键名是repositories.packagist,不是repo.packagist) - 缓存污染:改完配置后没清缓存,
composer clear-cache再试一次
最易忽略的一点:公司内网开了代理或 TLS 中间人设备,curl -I https://mirrors.aliyun.com/composer/packages.json 能通,不代表 Composer 能通——它校验证书更严格,出问题先看 -vvv 日志里是 connect timeout,还是 SSL handshake failed。










