我的知识记录

PbootCMS自动清理缓存设置方法_定时任务配置_runtime目录自动维护

PbootCMS后台自带缓存清理功能,但需要手动点。要实现自动清理,用宝塔面板的计划任务最靠谱。登录宝塔,左侧菜单找到"计划任务",任务类型选"Shell脚本",任务名称填"PbootCMS自动清缓存",执行周期选每天,时间选凌晨3点,脚本内容填删除runtime下cache、log、temp目录内容的命令。点提交,任务就创建好了,每天自动执行。

脚本内容要写绝对路径。比如站点在`/www/wwwroot/www.example.com`,脚本就是: ``` rm -rf /www/wwwroot/www.example.com/runtime/cache/* rm -rf /www/wwwroot/www.example.com/runtime/log/* rm -rf /www/wwwroot/www.example.com/runtime/temp/* ``` 每行删一个目录,多个站点就多写几行,每行对应一个站点路径。路径不要写错,删错目录会丢数据。建议先在命令行手动执行一遍确认没问题,再放到计划任务里。

PbootCMS本身也有缓存过期机制。config/config.php里的`'cache_time'`参数控制缓存有效期,默认3600秒。改成更小的值,比如1800,缓存半小时就过期自动清理。但这种方式只清理过期缓存,日志文件不会自动删,所以日志还是要靠定时任务或关闭日志功能。

关闭日志是控制runtime增长的根本手段。config.php里`'debug'`和`'log'`都设为false,运行日志就不再生成。生产环境一定要关日志,调试阶段可以开,上线后立刻关。关了日志后runtime目录只剩模板缓存,增长速度慢很多,配合定时清理基本不会再爆满。

如果用的是虚拟主机没有计划任务功能,可以用PbootCMS的钩子功能实现自动清理。在apps/home/controller/下创建一个自定义控制器,写一个清理缓存的方法,然后用第三方定时监控服务(比如UptimeRobot)定时访问这个URL触发清理。这种方式适合没有服务器权限的虚拟主机用户,但稳定性不如服务器计划任务。

缓存清理频率根据站点访问量定。日IP一万以下的站点,每周清一次足够;日IP十万以上的站点,每天清一次。日志关闭的情况下,缓存文件不会太大,清理频率可以降低。频繁清缓存会让网站每次都重新生成缓存,增加服务器负载,所以不是越频繁越好,找到平衡点。

清理缓存后建议预生成缓存。写个脚本模拟访问网站所有页面,让系统重新生成缓存,这样用户访问时直接读缓存,速度不受影响。简单的方法用wget爬一遍站点:`wget -m -p -np http://www.example.com`,爬完后缓存就都生成了。页面多的站点爬取时间较长,放在凌晨执行。

PbootCMS自动清理缓存设置方法_定时任务配置_runtime目录自动维护

标签:

更新时间:2026-08-26 17:40:50

上一篇:PbootCMS后台自动清理缓存_定时任务_缓存策略_静态化配置

下一篇:宝塔面板linux如何搭建网站_从服务器到上线完整流程_域名_SSL_备案