必须同时满足键名repo.packagist、type值为composer、url以/结尾,否则静默回退官方源;验证需执行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 config -g repo.packagist
✅ 正确输出必须是完整 JSON:
{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}
❌ 如果输出 null、https://packagist.org、空行或报错 Key "repo.packagist" does not exist,说明配置失败。常见原因:
- 手误写成
repos.packagist(多了一个s) - URL 少了末尾
/,比如写成https://mirrors.aliyun.com/composer - 第二参数没写
composer,例如误写为https://...或留空 - Mac 上用
sudo执行导致写进 root 配置,当前用户不读取
Mac 下特别注意 intl 扩展和 PHP 版本
Laravel 10 要求 PHP ≥ 8.1,且 intl 必须真实启用——Mac 自带 PHP 或 Homebrew 安装后常缺这个扩展,光装包不等于能用:
- 确认已启用:
php -m | grep intl,有输出才算;没输出就装:brew install php@8.2(推荐)或pecl install intl - 检查
php --ini输出的Loaded Configuration File路径,打开对应php.ini,确保extension=intl这行没被注释(去掉前面的分号) - 重启终端或运行
source ~/.zshrc(如果改过 shell 配置)
create-project 还是卡在 Cloning?跟镜像无关
composer create-project laravel/laravel:^10.0 myapp 分两步:第一步从 GitHub 克隆骨架(不走 Composer 镜像),第二步才进目录跑 composer install(这时才走镜像)。所以卡在 Cloning Laravel repository 是 GitHub 限流问题:
- 提前配好 GitHub Token:
composer config -g github-oauth.github.com YOUR_TOKEN - 或跳过 GitHub,直接用镜像源拉依赖:
composer create-project laravel/laravel:^10.0 myapp --repository=https://mirrors.aliyun.com/composer/ - 加
--prefer-dist强制下 ZIP 包而非 git clone,更快更稳
项目初始化后必须清缓存并生成密钥
即使镜像配对、PHP 没问题,新项目启动前这三步漏一不可:
cd myapp-
php artisan key:generate(否则报The only supported ciphers are AES-128-CBC...) -
php artisan config:clear && php artisan cache:clear(否则 .env 修改不生效、路由/配置缓存旧值)
镜像只是加速起点,key:generate 和 config:clear 这类操作在 Mac 上容易因权限或缓存路径残留被忽略,尤其用 Laravel Sail 或 Valet 时更得手动清。











