laravel不同版本安装核心步骤一致,但差异在于:php及扩展要求逐版收紧(如l13需php≥8.3)、版本约束写法决定安装结果(如"11.*"锁定11.x)、laravel/installer行为演进(v4+支持--version参数)、默认工具链变化(l11+移除debugbar、l13新增pail)。

不同 Laravel 版本的安装流程核心步骤一致,但关键差异集中在环境约束、安装命令写法、默认依赖版本和工具链支持上。这些差别直接影响首次创建项目的成功率与后续兼容性。
PHP 和扩展要求随版本升高而收紧
Laravel 对 PHP 版本及扩展的最低要求逐版提升:
- Laravel 8 要求 PHP ≥ 7.3,需启用 XML、Ctype、JSON、Mbstring、OpenSSL、PDO、Tokenizer、XML 等扩展
- Laravel 10 起要求 PHP ≥ 8.1,Laravel 11 明确要求 PHP ≥ 8.2
- Laravel 13(当前最新稳定版)已要求 PHP ≥ 8.3,并默认启用 PCRE2 和 FFI 扩展支持
若忽略该约束,composer create-project 会直接报错,而非降级安装。
安装命令中版本约束写法决定实际安装结果
使用 create-project 时,版本号写法不是可有可无的细节,而是决定拉取哪个分支的关键:
-
composer create-project laravel/laravel blog→ 默认安装最新稳定版(目前为 13.x) -
composer create-project laravel/laravel blog "11.*"→ 锁定 11.x 系列最新补丁版(如 11.42.0) -
composer create-project laravel/laravel blog "10.48.*"→ 精确匹配 10.48.x 分支(适用于需长期维护的旧项目)
注意:^11.0 和 11.* 在语义上等价,但 11.48.* 比 ^11.48 更严格——后者允许升级到 12.0 前的任意小版本,前者只限 11.48.x 补丁迭代。
Laravel 安装器(laravel/installer)行为随版本演进
全局安装的 laravel new 命令,其底层行为在 v4+ 后发生实质变化:
- v3 及更早:安装器硬编码指向
laravel/laravel的master分支,无法指定版本 - v4+(2023 年起):安装器改用 Composer API 动态解析最新稳定 release,支持
laravel new blog --version=11.x - 若未更新安装器(
composer global update laravel/installer),laravel new可能仍拉取过时模板
新版本默认集成工具链变化明显
从 Laravel 9 开始,官方脚手架逐步移除对老旧工具的默认绑定,影响初始安装体验:
- Laravel 8 及更早:默认包含
fideloper/proxy、barryvdh/laravel-debugbar(dev)、phpunit/phpunit9.x - Laravel 11+:默认移除 Debugbar,改用
fruitcake/laravel-debugbar(需手动--dev安装);PHPUnit 升级至 11.x;spatie/laravel-ignition成为错误页默认组件 - Laravel 13:首次将
laravel/pail(轻量日志查看器)纳入require-dev默认列表











