正确命令是 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/,缺一不可:键名必须为 repo.packagist(非 repos 或 packagist),type 值必须为 composer,url 必须 https 且末尾带斜杠。

composer config -g repo.packagist 命令必须写对三处
配镜像失败,90% 是因为这条命令敲错了,而且错误不报错、不提示,静默失效。
关键点只有三个,缺一不可:
-
repo.packagist—— 键名不能多s(repos.packagist无效),也不能少repo.(packagist无效) - 中间的
composer—— 这是 type 值,不是可选参数,漏掉就 fallback 到https://packagist.org - URL 必须是 HTTPS + 末尾斜杠:
https://mirrors.aliyun.com/composer/—— 少斜杠、用 HTTP、拼错域名,都会导致写入失败
正确命令只有一条:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/。执行后立刻验证:composer config -g repo.packagist,输出必须是完整 JSON 或 URL 字符串,且不含 packagist.org。
为什么 composer create-project 还是慢
这个命令不读全局 repo.packagist 配置,它会绕过镜像直连 packagist.org 下载 skeleton 包。
解决办法只有一个:显式加 --repository-url 参数。
例如:
composer create-project laravel/laravel myapp --repository-url=https://mirrors.aliyun.com/composer/
注意:这个参数只加速 skeleton 包下载;如果框架模板里还包含 git clone(比如某些 Symfony starter),那部分仍走 GitHub,需另配 Git 代理或换国内 fork。
项目级配置比全局更可靠
你在终端配好了全局镜像,但 CI 流水线、宝塔后台、同事电脑上照样卡住——因为它们根本没读你的 ~/.composer/config.json。
项目级配置写进 composer.json,所有人拉代码后行为一致:
- 进项目根目录(确保有
composer.json) - 运行:
composer config repo.packagist composer https://mirrors.aliyun.com/composer/(去掉-g) - 该命令会安全追加到
repositories字段,key 固定为packagist,不会覆盖私有源
别手动编辑 composer.json 写死 repositories —— 容易格式出错、合并逻辑混乱,优先用 composer config 命令管理。
换源后还卡在 Resolving dependencies 怎么办
镜像只加速「下载」,不加速「依赖解析」。卡在这里,和镜像完全无关。
典型表现:composer update 卡几十秒甚至几分钟,日志停在 Resolving dependencies。
可能原因:
-
composer.json里写了太宽泛的版本约束(如"^1.0 || ^2.0"),让 Composer 反复回溯尝试 - PHP 内存不足:
php -d memory_limit=-1 composer update试试 - 本地
composer.lock和新依赖冲突,删掉重来更干脆 - 某个包硬编码了 GitHub URL(常见于
require-dev),触发 GitHub rate limit,需配 Token:composer config -g github-oauth.github.com your_token_here
真正容易被忽略的是:镜像同步有延迟。新发布的包可能要等 5–30 分钟才出现在阿里云镜像站,查不到别急着换源,先去 https://mirrors.aliyun.com/composer/packagist/ 网页搜一下。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











