composer全局镜像配置失效主因是键名错误、项目级repositories字段覆盖或使用已停服镜像;应改用阿里云、腾讯云等现行有效https镜像,并通过composer show或-v日志验证真实请求地址。

GitHub 网络不稳定直接影响 composer install 和 composer update,但换源不是简单改个地址就完事——开源中国(OSChina)镜像早在 2023 年底已停止服务,现在直接配置它会导致所有包拉取失败。
为什么 composer config -g repo.packagist 设置失效?
很多人执行 composer config -g repo.packagist https://packagist.phpcomposer.com 或类似命令,却发现依然超时或 404。这是因为:
- packagist.phpcomposer.com 域名早在 2021 年起就逐步弃用,2023 年后完全不可用
- 开源中国(oschina.net)的 Composer 镜像服务已于 2023 年 12 月 1 日正式下线,其域名
https://packagist.phpcomposer.com和https://packagist.laravel-china.org全部返回 404 或拒绝连接 -
composer config -g只修改全局配置,但部分项目含composer.json中的repositories字段,会覆盖全局设置
当前可用且稳定的国内镜像有哪些?
推荐优先使用以下两个仍在持续维护、支持 HTTPS 和完整元数据同步的镜像:
-
腾讯云 Composer 镜像:
https://mirrors.cloud.tencent.com/composer/—— 同步频率高,CDN 覆盖广,无认证要求 -
华为云 Composer 镜像:
https://mirrors.huaweicloud.com/repository/php/—— 支持 Packagist 全量镜像,响应稳定
设置方式统一为:
监控一个或多个 GitCode 仓库的 PR,通过 OpenClaw Gateway 自动执行 AI 审查,发布 PR 评论,并发送钉钉和企业微信通知。
composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/
注意末尾必须带 composer 类型标识,否则 Composer 会当作普通仓库处理,导致找不到包。
如何验证镜像是否生效?
别只看 composer config -g 输出,要实际触发一次元数据请求:
- 运行
composer show laravel/framework --no-install,观察请求 URL 是否命中镜像域名(如mirrors.cloud.tencent.com) - 开启调试模式:
composer -v install,查看日志中Downloading https://mirrors...行 - 若仍出现
github.com直连请求,检查项目级composer.json是否硬编码了packagist.org或废弃镜像地址
最常被忽略的一点:某些 CI/CD 环境(如 GitHub Actions、GitLab Runner)默认不读取用户全局配置,必须在 workflow 中显式执行 composer config 命令,或通过 COMPOSER_REPO_PACKAGIST 环境变量注入——否则本地好使,上线就超时。










