生产环境必须配置缓存:执行php artisan config:cache、route:cache(仅控制器路由)、view:cache,并搭配redis驱动、app_debug=false、opcache启用等配套优化。

上线前不配缓存,Laravel 就是“裸奔”。配置和文件缓存不是可选项,而是生产环境的底线操作——它直接决定请求启动快不快、日志炸不炸、服务器扛不扛得住。
配置缓存:把 config/ 编译成一个 PHP 数组
每次请求都 require 十几个 config/*.php 文件?太浪费。config:cache 命令会把所有配置合并写入 bootstrap/cache/config.php,后续请求跳过解析,直读数组。
- 先清旧缓存:php artisan config:clear(尤其刚从开发机同步代码后必做)
- 再生成新缓存:php artisan config:cache
- 确认生效:检查 bootstrap/cache/config.php 是否存在且内容为合法 PHP 数组
- 注意:.env 中的变量只能在 config/*.php 里用 env() 读取;缓存后,控制器或 Blade 里直接调用 env() 会返回 null
路由缓存:跳过逐行注册,加载预编译路由表
几百条路由每次请求都重新注册?route:cache 把 routes/web.php 和 routes/api.php 编译成静态数组,匹配速度提升 50%+。
PHP中文网提供Laravel 13.2.0版本下载,Laravel框架 是基于 PHP 8.3+ 的高性能框架,官方推荐通过 Composer 安装。它内置 AI SDK、JSON:API Resources 及原生向量搜索,支持属性驱动开发与队列路由,大幅提升开发效率。相比旧版,13.2.0 优化了缓存 TTL 管理与实时通信,无需 Redis 即可横向扩展。作为现代 Web 开发首选,它兼顾安全与极速体验,助您快速构建企业级应用。
- 只支持控制器路由(Route::get('/user', [UserController::class, 'index'])),闭包路由会报错
- 执行:php artisan route:cache,缓存文件默认生成在 bootstrap/cache/routes-v7.php(版本号依 Laravel 版本而异)
- 改了路由?必须先 php artisan route:clear,再重新 cache
- 开发阶段禁用,CI/CD 部署脚本中加判断:if [ "$APP_ENV" = "production" ]; then php artisan route:cache; fi
视图缓存:让 Blade 模板“一次编译,永久复用”
Blade 默认会在首次访问时把 .blade.php 编译成 PHP 存到 storage/framework/views/。view:cache 是额外一步:它强制提前编译全部模板,避免用户首刷卡顿。
- 执行:php artisan view:cache
- 慎用动态引入:@include($partial) 这类写法在缓存后会出错,因为变量名无法硬编码
- 日常部署非必需——只要 storage/framework/views/ 可写,首次访问自动编译;view:cache 更适合镜像构建或离线部署场景
配套必须项:驱动、日志、OPcache 一起调
光缓存配置没用,得让整个链路配合起来:
- CACHE_DRIVER=redis 和 SESSION_DRIVER=redis(别用 file,高并发下 I/O 瓶颈明显)
- APP_DEBUG=false、APP_ENV=production 必须写死在 .env,不能靠服务器环境变量覆盖
- DB_LOG_QUERIES=false 关掉 SQL 日志,LOG_LEVEL=error 控制日志粒度
- 启用 OPcache:确保 opcache.enable=1 在 PHP-FPM 配置中开启,并设 opcache.revalidate_freq=0(生产环境不检查文件变更)










