Composer install卡在Downloading https://packagist.org/packages.json,本质是元数据拉取失败而非Laravel或ZIP下载慢;需严格配置repo.packagist键名、type值为composer、URL带https://和末尾/,并通过composer config -g repo.packagist验证输出是否为正确JSON。

为什么composer install卡在Downloading https://packagist.org/packages.json
不是 Laravel 慢,是 Composer 默认直连国外源——DNS 解析慢、TLS 握手卡、CDN 节点在国外。这个请求失败,后续所有依赖解析都会停摆。你看到的“卡住”,90% 是元数据拉取失败,不是 ZIP 包下载慢。
repo.packagist 配置必须严格满足三要素
执行 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ 看似简单,但漏掉任一细节就静默失效:
- 键名必须是
repo.packagist(单数,不能写成repos.packagist) - 第二参数必须是
composer(表示 type 值,不是 URL) - URL 必须以
https://开头,且末尾带/(少斜杠会 404 或触发Could not parse version constraint)
验证镜像是否真正生效,只看这一条命令
别信“我执行过了”,只运行:
composer config -g repo.packagist
✅ 正确输出必须是完整 JSON:
{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}
❌ 输出为空、null、https://packagist.org 或报错,说明配置失败。常见原因包括:
- 权限不足(尤其 root 下执行却没加
sudo,或用户目录不可写) - Composer 版本低于 2.0(
composer --version确认) - 手误写成
composer config -g repos.packagist(多一个 s)
加 -vvv 可看真实请求地址:GET https://mirrors.aliyun.com/composer/packages.json 才算走镜像。
create-project 还是慢?得双保险
这个命令分两步:先拉 GitHub 上的骨架模板(不走镜像),再进目录跑 composer install(才走镜像)。如果第一步卡在 Cloning Laravel repository,大概率是 GitHub API 限流。
- 提前配好全局镜像,再加
--repository强制走镜像:composer create-project laravel/laravel demo --repository=https://mirrors.aliyun.com/composer/ - 别用
--repository-url或--mirror—— Composer 不识别,会静默忽略 - 若仍卡 GitHub,配
GITHUB_TOKEN:composer config -g github-oauth.github.com YOUR_TOKEN
镜像本身只是起点,PHP 版本、扩展启用、缓存路径可写、.env 和密钥初始化,每一步都可能成为实际阻塞点,不能只盯着 URL 换了就以为万事大吉。


















