thinkphp部署缓存需三步协同:一、关闭调试模式(app_debug=false并php think clear);二、生成路由、配置、类库映射、字段四类静态缓存文件;三、启用模板缓存、opcache及redis缓存驱动。

ThinkPHP部署缓存不是“开一个开关”就能生效,而是需要关闭调试、生成多层静态缓存、启用底层加速机制三者协同。核心在于让框架跳过重复解析和动态加载,把路由、配置、类路径、数据库结构等一次性固化为可直接执行的PHP文件。
一、必须关闭调试模式
调试模式(app_debug=true)会强制禁用所有缓存、实时编译模板、记录完整日志、反复检查文件修改时间——这些行为在生产环境会拖慢响应3倍以上。
- 检查项目根目录的 .env 文件,确保包含:
APP_DEBUG=false - 若无 .env,确认
config/app.php中'app_debug' => false - 执行命令验证:
php think env:show,输出中APP_DEBUG必须为false - 清理残留缓存:
php think clear,避免旧调试缓存干扰
二、生成四类关键静态缓存文件
这些命令将运行时解析过程提前固化,大幅降低单次请求的IO与CPU开销,是部署后第一优先级操作。
-
路由缓存:避免每次请求都遍历注册规则
执行:php think optimize:route
检查:runtime/route.php存在且非空 -
配置缓存:合并所有
config/下PHP文件为单个init.php
执行:php think optimize:config --force
检查:runtime/init.php已生成,后续不再加载 config/ 目录 -
类库映射:将PSR-4自动加载转为O(1)级路径查找
执行:php think optimize:autoload
检查:runtime/classmap.php包含完整类名→路径映射 -
字段缓存:跳过每次模型查询前的
SHOW COLUMNS
执行:php think optimize:schema
检查:runtime/schema/{数据库名}.{表名}.php按表生成
三、启用模板缓存与OPcache
模板编译和PHP字节码是两大高频耗时环节,必须分别加固。
-
模板缓存:在
config/template.php中设置:'tpl_cache' => true'cache_path' => runtime_path() . 'temp/'
确保runtime/temp/目录可写,首次访问自动生成编译后PHP文件 -
OPcache:编辑
php.ini,启用并调优:opcache.enable=1opcache.memory_consumption=256opcache.max_accelerated_files=20000opcache.validate_timestamps=0(生产环境关闭热更新检测)
重启 PHP-FPM 生效
四、切换高性能缓存驱动(推荐Redis)
默认的 file 缓存在高并发下易成I/O瓶颈;Redis内存型缓存可将缓存读写延迟压至毫秒级。
- 安装扩展:
sudo apt install php-redis(Ubuntu)或确认php -m | grep redis有输出 - 安装适配包:
composer require topthink/think-redis - 修改
config/cache.php:
设'default' => 'redis'
在'stores'['redis']中填全:host、port、password、select(注意 select 必须是整数 0,不能是字符串 "0") - 验证是否生效:
php -r "var_dump(cache('test', 'ok', 10));"再php -r "var_dump(cache('test'));",两次都返回"ok"才算真正走Redis
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











