国内安装 Laravel 必须配置 Composer 镜像源,否则极易因直连 packagist.org 导致超时、404 或卡死;推荐腾讯云或阿里云镜像,执行 composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/ 一行生效,并用 composer config -l | grep repo.packagist 验证、composer clear-cache 清缓存。

国内安装 Laravel 时 Composer 镜像必须配,否则大概率卡死
不配镜像,composer create-project laravel/laravel 很可能超时或 404,因为 Packagist 官方源(https://packagist.org)在国内直连极不稳定。镜像不是“可选优化”,而是安装成功的前提条件。
推荐优先使用腾讯云或阿里云镜像,命令一行生效:
composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
执行后务必验证:composer config -l | grep repo.packagist,看到对应 URL 才算成功;再跑一次 composer clear-cache 清掉旧缓存,避免镜像切换后仍读旧数据。
镜像配置错误会导致 require 失败,比如 laravel/sanctum 找不到
composer require laravel/sanctum 报 “Package not found” 不一定是包不存在,更可能是当前镜像没同步到最新版本——部分新发包(尤其是 Laravel 官方扩展)在镜像站有几分钟延迟。
排查步骤:
- 先看当前源:
composer config -g repo.packagist - 临时切回官方源测试:
composer config -g repo.packagist https://packagist.org - 加
-vvv查详细错误:composer require laravel/sanctum -vvv,常能看到 DNS 解析失败或 404 响应
国内长期用,还是建议固定阿里云或腾讯云镜像,它们同步频率高、稳定性强;Laravel China 镜像虽专精但偶尔更新滞后,不适合作为主力源。
镜像只影响下载,不影响 vendor/autoload.php 的加载逻辑
很多人误以为换镜像会改变自动加载行为——其实完全无关。Laravel 的类自动加载靠的是 vendor/autoload.php,它由 Composer 根据 composer.json 中的 autoload 段生成,和镜像源毫无关系。
真正影响加载的只有三件事:
- 新增了
app/Services/MyService.php且命名空间是App\Services→ 必须运行composer dump-autoload - 改了
composer.json里的autoload.psr-4→ 同样要dump-autoload,加-o参数生成 class-map 加速 - 加了全局函数文件(如
app/Helpers/functions.php)→ 也要写进autoload.files并dump-autoload
镜像再快,漏掉 dump-autoload,照样报 Class not found。
生产部署时镜像配置要和 install 命令配合使用
CI/CD 或服务器部署时,composer install 必须在镜像已配置的前提下运行,否则会尝试从官方源拉取,导致构建失败。
安全做法:
- 在部署脚本开头就设置镜像:
composer config --global repo.packagist composer https://mirrors.aliyun.com/composer/ - 然后执行:
composer install --no-dev --optimize-autoloader - 注意:
--no-dev跳过开发依赖,--optimize-autoloader生成 class-map,两者都直接影响性能
别指望线上环境默认有镜像——Docker 镜像、CI runner 都是干净系统,每次都要显式配置,漏掉就等于把部署卡在第一步。


















