必须严格执行 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/:键名是 repo.packagist(单数),第二参数固定为 composer,url 须以 https:// 开头且末尾带 /,否则触发解析错误。

composer config -g repo.packagist 配什么才真正生效
必须严格写成 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/,缺一不可:
• 键名是 repo.packagist(单数,不能多写一个 s)
• 第二个参数固定为 composer(不是 packagist 或空)
• URL 必须以 https:// 开头,且末尾带斜杠 /,漏掉会触发 Could not parse version constraint
• 验证是否成功:运行 composer config -g repo.packagist,输出必须是完整 JSON:{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}
为什么换了镜像还是卡在 “Installing dependencies”
这不是镜像没生效,而是卡在 GitHub API 限流上——create-project 第一步是从 GitHub 克隆 Laravel 模板仓库,这步不走 Composer 镜像,只受 GitHub rate limit 影响:
• 现象:卡在 Cloning Laravel repository 或 Downloading https://api.github.com/...
• 解法:配 GITHUB_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
• 临时排查:curl -I https://api.github.com/rate_limit 查剩余调用次数
create-project 命令必须加的四个参数
Laravel 初始化本质是完整 composer install,不加参数就等于裸跑,默认慢出天际:
• --prefer-dist:强制下 ZIP 包,跳过 git clone 和 submodule 同步,快 2–5 倍
• --no-dev:新项目根本不需要 phpunit、laravel/pint 这类开发依赖
• --optimize-autoloader:生成静态类映射,减少后续 autoload 文件扫描,Laravel 服务提供者加载提速明显
• --no-interaction:避免交互提示阻塞 CI 或脚本流程
• 完整命令示例:composer create-project --prefer-dist --no-dev --optimize-autoloader --no-interaction laravel/laravel:^11.0 myapp
缓存路径和 TTL 必须手动确认
只换镜像不配缓存,速度提升有限;只开缓存不换源,缓存根本拉不到包:
• 运行 composer config -g cache-files-dir,若输出为空,说明缓存未启用,需补:composer config -g cache-files-dir ~/.composer/cache/files
• 设缓存有效期防误用:composer config -g cache-files-ttl 3600
• CI 环境中(如 GitHub Actions),必须显式挂载 ~/.composer/cache 目录,否则每次都是干净环境
• 验证缓存是否参与:加 -vvv 运行 composer install,看日志里是否有 Using cached dist 或 Found in cache











