默认安装的是 Laravel 10.x,因 Laravel 11 尚未发布稳定版;需显式指定 ^11.0@rc 或 dev-main 才能安装,且要求 PHP ≥8.2;内置 serve 命令已被移除,改用 PHP 内置服务器或 Sail。

composer create-project 装出来的不是 Laravel 11?
默认执行 composer create-project laravel/laravel 会拉取最新稳定版,但 Laravel 11 尚未发布正式稳定版(截至 2024 年中),所以你大概率装到的是 Laravel 10.x。Laravel 11 目前仅以预发布(RC)或开发分支形式存在。
想用 Laravel 11,必须显式指定版本约束,否则 Composer 自动 fallback 到最近的 stable tag(即 v10.48.x)。
- 要装 Laravel 11 RC 版:运行
composer create-project laravel/laravel:^11.0@rc my-app - 若想用 dev-main(持续更新的开发主线):用
composer create-project laravel/laravel:dev-main my-app - 不加
@rc或@dev,Composer 默认只认stable稳定性标记,而 Laravel 11 还没打 stable tag
Laravel 11 要求 PHP 8.2+,别在 PHP 8.1 上硬试
官方明确要求 PHP >= 8.2.0 —— 不是“推荐”,是硬性依赖。如果你的系统 PHP 是 8.1 或更低,composer create-project 会直接失败,报错类似:Your requirements could not be resolved to an installable set of packages.
这个错误背后其实是 Composer 检测到当前 PHP 版本不满足 laravel/framework 的 php require 声明(它写了 "php": "^8.2")。
- 检查 PHP 版本:运行
php -v,确认输出开头是PHP 8.2.或更高 - Mac 用户常用 Homebrew 安装 PHP,注意
brew install php默认装的是最新版,但老环境可能仍指向 php@8.1;可用brew unlink php@8.1 && brew link php@8.2切换 - Docker 用户请确保
FROM镜像明确为php:8.2-apache或类似,别用php:8这种模糊标签
安装后 vendor/autoload.php 找不到?可能是 Composer 没装全
执行完 composer create-project 后,如果 artisan 报 require(): Failed opening required 'vendor/autoload.php',说明 Composer 没成功完成依赖安装,不是 Laravel 本身的问题。
常见诱因是网络卡在 packagist.org 或 github.com,导致部分包下载中断,但命令行没明显报错(尤其国内环境)。
- 进项目目录后手动跑一次
composer install,观察是否卡在某个包(比如laravel/pint或symfony/console) - 临时切镜像(如阿里云):
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 删掉
vendor/和composer.lock,再重试composer install—— 不要跳过 lock 文件,Laravel 11 对依赖版本敏感
artisan serve 启动失败:Laravel 11 默认不带内置服务器
运行 php artisan serve 报 Command "serve" is not defined?这不是 bug,是 Laravel 11 的主动移除:内置开发服务器已从核心剥离,改由独立包 laravel/sail 或 laravel/vite-plugin 等替代。
官方推荐开发方式已转向基于 Vite 的前端热更新 + Sail(Docker)后端服务,本地 PHP 内置服务器不再默认支持。
- 快速启动后端 API:用
php -S localhost:8000 -t public(手动起 PHP 内置服务器) - 完整开发环境:先
php artisan sail:install,再./vendor/bin/sail up - 别试图用
composer require laravel/framework:11.0升级旧项目——Laravel 11 是破坏性大版本,必须全新创建
最常被忽略的一点:Laravel 11 的 config/app.php 里 debug 默认为 false,哪怕 APP_DEBUG=true 在 .env 里,也得确认 env 文件真的被加载(php artisan tinker 里敲 config('app.debug') 看返回值)。很多“白屏无报错”问题其实卡在这儿。










