直接配composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/即可生效,但必须严格满足三要素:键名repo.packagist(单数、无s)、第二参数composer(type值)、URL以https://开头且末尾带/,缺一即静默失效;验证须执行composer config -g repo.packagist,正确输出为{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}。

直接配 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ 就行,但漏掉末尾斜杠、写错键名或没验证,90% 的人其实根本没生效。
为什么 composer install 卡在 downloading packages.json?
不是 Laravel 慢,是 Composer 默认直连 packagist.org —— DNS 解析慢、TLS 握手卡、CDN 节点在国外。你看到的“卡住”,大概率是元数据拉取失败,而不是后面下载 ZIP 包。
- 现象:命令停在
Downloading https://packagist.org/packages.json或类似provider-laravel~11.0.json的请求上 - 本质:
packages.json是所有依赖解析的起点,它不下来,后面全停摆 - 镜像必须配对
repo.packagist这个键,写成repos.packagist(多一个 s)完全无效,且不报错 - 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 用户下)、Composer 版本低于 2.0、手误写成
composer config -g repos.packagist - 验证时加
-vvv可看到真实请求地址,比如GET https://mirrors.aliyun.com/composer/packages.json才算走镜像
composer create-project 还是慢?预置 + 参数双保险
这个命令分两步:先拉骨架模板(走 GitHub),再进目录跑 composer install(才走镜像)。如果全局镜像没提前配好,第一步仍可能卡在 GitHub API 限流上。
Laravel Cloud(cloud.laravel.com)。此技能用于处理所有 Laravel Cloud 请求,包括搜索和读取数据。只要任务涉及 Laravel Cloud,即使用此技能。
- 先确保已运行
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 新建项目时加
--repository强制走镜像:composer create-project laravel/laravel demo --repository=https://mirrors.aliyun.com/composer/ - 别用
--repository-url或--mirror—— Composer 不识别,会静默忽略 - 如果卡在
Cloning Laravel repository,大概率是 GitHub 限流,此时应配GITHUB_TOKEN:composer config -g github-oauth.github.com your_token_here
换源后还是慢?缓存和参数才是提速关键
镜像解决“拉得到”,但不等于“装得快”。没配缓存、没加参数,速度提升有限。
- 检查缓存是否启用:
composer config -g cache-files-dir,输出应为非空路径;若为空,补上:composer config -g cache-files-dir ~/.composer/cache/files - 生产环境必加三参数:
composer install --no-interaction --prefer-dist --no-dev --optimize-autoloader -
--prefer-dist跳过 git clone,直接下 ZIP,快 2–5 倍;--no-dev省掉 phpunit 等 20+ 个开发包;--optimize-autoloader把 PSR-4 映射转成静态数组,autoload 阶段实测快 30%+ - CI 环境中,仅缓存
~/.composer/cache不够,vendor 目录结构也得缓存,否则 PHP 小版本更新就会全量重装
最常被忽略的点:镜像 URL 末尾那个 /,少它就失效;还有 repo.packagist 的拼写,多一个 s 就白配。这些细节不检查,再快的镜像也救不了你的安装速度。










