composer config -g repo.packagist 必须严格满足三个条件才生效:键名必须为单数 repo.packagist、第二参数必须显式写 composer(type 值)、URL 必须 HTTPS 且末尾带 /;否则静默回退官方源,导致 composer install 卡在 Downloading https://packagist.org/packages.json。

composer config -g repo.packagist 必须配对、带斜杠、显式写 composer,否则 90% 的人看似执行了,实际仍走 https://packagist.org,根本装不下来包。
为什么 composer install 卡在 Downloading https://packagist.org/packages.json
这不是网络慢,是 Composer 根本没连上镜像源,还在死等境外元数据。所有依赖解析都从 packages.json 开始,它拉不下来,后续一步都不会动。
- 现象:命令停在
Downloading https://packagist.org/packages.json或类似provider-laravel~11.0.json请求上 - 本质:DNS 解析失败、TLS 握手卡顿、CDN 节点在国外 —— 镜像没生效的铁证
- 验证方式:运行
composer config -g repo.packagist,✅ 正确输出必须是完整 JSON:{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"} - ❌ 输出为空、
null、https://packagist.org或报错,说明配置失败,别往下试了
composer config -g repo.packagist 静默失效的三个硬条件
这个命令不报错,但漏一个字符就白配。不是 Composer 不认,是你没写对。
- 键名必须是
repo.packagist(单数,不能多写s,repos.packagist完全无效) - 第二参数必须是字符串
composer(不是packagist、git或留空) - URL 必须以
https://开头,且末尾带/(https://mirrors.aliyun.com/composer少斜杠会触发Could not parse version constraint) - 权限问题:Windows 下用 CMD 而非 PowerShell(尤其管理员模式下),Linux/macOS 确保没用
sudo错误提升权限
项目级镜像比全局更稳,但 composer.json 写法极容易错
全局配置影响所有项目,CI、私有包、多 PHP 版本共存时容易出问题。项目专属镜像只作用于当前目录,调试和协作更可控,但结构必须合法。
- 在项目根目录
composer.json顶层加repositories字段(注意是复数,不是repository或repos.packagist) -
"packagist"是键名(小写单数),不是"packagist.org",也不是"default" - URL 同样必须以
https://开头、末尾带/,例如:"https://mirrors.cloud.tencent.com/composer/" - 改完后必须删掉
composer.lock或运行composer update --lock,否则旧 lock 文件仍走历史源 - 混合源场景(如私有包 + 阿里镜像):把私有源放
repositories数组第一位,再加{"packagist": false}关闭默认源
composer create-project 还是卡?那大概率不是镜像问题
这个命令分两步:第一步克隆 GitHub 模板(走 GitHub API),第二步进目录执行 composer install(才走镜像)。第一步卡住,跟 Composer 镜像完全无关。
- 卡在
Cloning Laravel repository或Downloading https://api.github.com/→ GitHub API 限流 - 解法一:配 token:
composer config -g github-oauth.github.com your_token_here - 解法二:跳过 installer,改用
git clone --depth=1 https://github.com/laravel/laravel.git myapp,再进目录跑composer install - 提速补刀:加
--prefer-dist --no-dev --optimize-autoloader --no-interaction四参数组合,避免 git clone、跳过 dev 包、生成静态 autoload 映射
composer 就会静默 fallback 到官方源,然后你花半小时重试,其实第一分钟就能查出来。


















