给pbootcms增加一个自动清理缓存的功能

PbootCMS

很多站长会遇到,pbootcms建的站使用阿里云虚拟主机一段时间后,发现空间满了,特别是做推广的用户,更容易满

主要是缓存惹的祸,pbootcms目录下的runtime\session文件会生成一堆缓存,导致空间满了,网站无法打开

群友分享了一个自动清理缓存的方案

1、打开/apps/common/HomeController.php

在下面倒数第二个}前面插入代码,为了方便查看,绿色是已有的代码,红色的是插入进去的代码

 } else { // 未开启手机,则一律电脑版本
$this->setTheme(get_theme());
}

//清理缓存开始
$autoclear_cache_txt = RUN_PATH.'/cache/autoclear_cache.txt';
if(file_exists($autoclear_cache_txt)){
$fileatime = fileatime($autoclear_cache_txt);
$autoclear_cache_time = $this->config('autoclear_cache_time');//写入系统配置文件
//$autoclear_cache_time =900;//如果不想写入系统配置文件,注释掉上一句,取消注释这句,单位分钟
if($autoclear_cache_time && $fileatime+$autoclear_cache_time*60<time()){
$rs = path_delete(RUN_PATH);
if ($rs) {
if (extension_loaded('Zend OPcache')) {
opcache_reset(); // 在启用了OPcache加速器时同时清理
}
$this->log('访问自动清理缓存成功');
} else {
$this->log('访问自动清理缓存失败');
}
}
}else{
file_put_contents($autoclear_cache_txt, 'autoclear_cache_txt');
}
//清理缓存结束
}
}

2、打开文件 /apps/admin/view/default/system/config.html

在大约135行下面插入:

<!--间隔清理缓存时间配置开始-->
<div class="layui-form-item">
<label class="layui-form-label">间隔清理缓存时间</label>
<div class="layui-input-inline">
<input type="text" name="autoclear_cache_time" value="{$configs.autoclear_cache_time.value}" placeholder="请输入间隔清理缓存时间" class="layui-input">
<div class="layui-form-mid layui-word-aux">注:不建议设置太短时间!</div>
</div>
<div class="layui-form-mid layui-word-aux">分钟</div>

</div>
<!--间隔清理缓存时间配置结束-->

3、登录网站后台,在全局配置、配置参数、基本配置里边输入自动清理间隔即可,点击保存

如有问题请回复留言。

也许您对下面的内容还感兴趣: