使用 Composer 安装指定版本 Laravel

在 Laravel 开发中,官方推荐使用 laravel new 快速创建项目,但它有一个明显限制:只能安装最新版本 Laravel,无法指定旧版本

这在以下场景中会带来问题:

  • 维护旧项目(如 Laravel 8 / 9)
  • 学习特定版本特性
  • 服务器 PHP 版本较低(无法运行最新版 Laravel)

为什么不用 laravel new

laravel new my-app

这个命令的特点:

  • ✅ 简单快捷
  • 只能安装最新版本
  • ❌ 无法锁定版本

composer create-project

composer create-project laravel/laravel project-name "版本号"

安装指定版本 Laravel

composer create-project laravel/laravel my-app "10.*"

版本约束详解

Composer 的版本控制非常灵活,理解这一部分是关键。

常见写法

写法含义
"10.*"任意 10.x 版本
"^10.0">=10.0 且 <11.0
"~10.0">=10.0 且 <10.1
"8.6.12"精确版本

查看所有可用版本

composer show laravel/laravel --all

常见问题与解决方案

PHP 版本不兼容

不同 Laravel 版本要求不同:

LaravelPHP 要求
10>= 8.1
9>= 8.0
8>= 7.3

检查 PHP 版本:

php -v

Composer 依赖安装失败

常见原因:

  • 网络慢 / 被墙
  • 包下载失败

解决:使用镜像

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

权限问题

sudo chown -R $USER:$USER .

composer vs laravel new 对比

特性composer create-projectlaravel new
指定版本✅ 支持❌ 不支持
灵活性⭐⭐⭐⭐⭐⭐⭐
上手速度⭐⭐⭐⭐⭐⭐⭐⭐
适用场景老项目 / 教学新项目

最佳实践

✅ 推荐策略:

  • 新项目 → laravel new
  • 指定版本 → composer create-project
  • 团队开发:
    • 固定主版本(如 10.*)
    • 提交 composer.lock

总结

  • composer create-project控制 Laravel 版本的核心工具
  • 掌握版本约束可以让你更灵活管理项目
  • 在实际开发中,根据需求选择工具:
新项目追求效率,旧项目追求稳定