Laravel 11 项目初始化最佳实践 checklist
发布:smiling 来源: PHP粉丝网 添加日期:2026-06-04 12:00:30 浏览: 评论:0
直接运行 composer create-project 启动 Laravel 11 项目是可行的,但跳过初始化 checklist 会导致后续部署卡在缓存、密钥、目录权限或环境变量上——这些问题在本地开发时几乎不暴露,一上生产就 500。
确认 PHP 8.2+ 与 Composer 版本兼容
Laravel 11 强制要求 PHP ≥ 8.2,且依赖 Composer 2.5+ 的自动加载优化。低于此版本会触发 Class "Illuminate\Foundation\Application" not found 或 Target PHP version mismatch 错误。
执行 php -v 确保输出含 8.2. 或更高小版本(如 8.2.24)
执行 composer --version 验证是否 ≥ 2.5.0;若为 2.4.x,需升级:composer self-update
PHP 必须启用 mbstring、openssl、pdo、tokenizer 和 xml 扩展,缺一则 artisan 命令无法启动
初始化后必须立即执行的三步验证
创建项目后不要急着写路由或改配置,先跑通基础链路。Laravel 11 的流式结构移除了部分兜底逻辑,出错反馈更“硬”。
进入项目目录后,立刻运行 php artisan key:generate —— 即使 .env 已存在,也必须重生成 APP_KEY,否则 Session、加密 Cookie 全失效
执行 php artisan config:clear && php artisan cache:clear,清空所有旧缓存(尤其当你从旧项目复制了 bootstrap/cache/ 目录)
手动检查 storage/ 和 bootstrap/cache/ 是否可写:ls -ld storage bootstrap/cache,权限应为 drwxr-xr-x 或更宽松;若为 drw-------,需 chmod -R 755 storage bootstrap/cache
env 文件与 APP_ENV 的强绑定陷阱
Laravel 11 默认关闭 env() 函数在缓存配置中的使用,一旦 APP_ENV 不是 local 或 testing,config:cache 就会拒绝运行,并报错 Environment detection failed。
.env 中必须显式定义 APP_ENV=local(开发)或 APP_ENV=production(预发/生产),不能留空或注释掉
APP_DEBUG 必须与 APP_ENV 匹配:开发环境设为 true,生产环境必须为 false,否则 php artisan config:cache 会静默失败
检查 config/app.php 中是否残留 env('APP_NAME') 类调用 —— Laravel 11 推荐全部替换为 config('app.name'),否则缓存后读不到值
首次启动前的 route:cache 安全检查
Laravel 11 的 route:cache 更严格,不再容忍闭包路由、动态域名或未注册的控制器类名。未检查就运行会导致整个应用不可访问。
打开 routes/web.php 和 routes/api.php,确认所有路由都使用数组语法或控制器方法引用,例如 Route::get('/home', [HomeController::class, 'index']),而非 Route::get('/home', function () { ... })
检查控制器类路径是否真实存在,且命名空间与文件位置一致(Laravel 11 默认移除了 app/Http/Controllers 的自动 namespace 声明,需手动补全)
若项目含多域名路由(Route::domain(...)),确保已通过 php artisan route:list 验证无 Domain not defined 报错
最易被忽略的是 storage/logs/laravel.log 的写入权限和 APP_KEY 的唯一性——这两个点不出错时一切正常,一旦出错,日志为空、Session 无效、加密数据全乱,排查成本远高于初始化时多敲两行命令。
Tags: Laravel 11 项目初始化 checklist
- 上一篇:Laravel闭包验证怎么写_Laravel行内验证方法
- 下一篇:最后一页
相关文章
- ·Laravel 5.6中的CURD操作(代码示例详解)(2020-01-15)
- ·如何在laravel 5中创建用于XSS防御的中间件? (2020-01-16)
- ·关于Laravel重定向的七种方法详解(2020-01-26)
- ·如何在laravel 5中使用DB事务?(2020-01-31)
- ·Laravel中如何给图片加水印?(2020-04-05)
- ·Laravel框架数据库CURD操作、连贯操作总结(2021-04-10)
- ·Laravel框架路由配置总结、设置技巧大全(2021-04-10)
- ·Laravel框架中扩展函数、扩展自定义类的方法(2021-04-10)
- ·跟我学Laravel之快速入门(2021-04-16)
- ·跟我学Laravel之安装Laravel(2021-04-16)
- ·跟我学Laravel之配置Laravel(2021-04-16)
- ·跟我学Laravel之请求(Request)的生命周期(2021-04-16)
- ·跟我学Laravel之路由(2021-04-16)
- ·跟我学Laravel之请求与输入(2021-04-17)
- ·跟我学Laravel之视图 & Response(2021-04-17)
- ·laravel安装和配置教程(2021-04-19)
推荐文章
- PHP 弱引用(WeakReference)与垃圾回收机制详解
- PHP怎样自动加载类_PHP自动加载机制【Autoload】
- 2026 PHP异常处理机制详解与示例
- PHP中ROOT常量_获取项目根目录路径
- PHP8.1如何开启curl扩展_PHP8.1开启curl扩展
- XAMPP修改PHP内存限制 XAMPP调整upload_max_filesize
- XAMPP配置Apache请求头限制 XAMPP LimitRequestFieldSize
- PHP8.1如何调用IntlMessageFormat_PHP8.1国
- phpEnv配置数据库远程访问 phpEnv开启MySQ
- PHP字符串怎么拼接_点号连接符与双引号解析
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)
