很多老站长用的DedeCMS织梦系统,用久了难免后台响应慢、服务器磁盘占满,甚至偶尔会被垃圾内容或废弃数据拖慢数据库运行——这大概率是冗余文件累积在搞鬼。这篇文章我会从织梦后台、服务器本地、数据库三个层面,分享一套亲测有效、0基础也能上手的DedeCMS冗余文件清理方案,顺便提一下清理前后的备份安全细节,帮大家的网站“轻装上阵”。
第一步:先做好冗余文件清理前的万全备份
不管是删本地还是改数据库,备份永远是第一准则!别嫌麻烦,我见过太多站长手滑删错核心文件哭晕的。
本地/远程服务器文件备份
- 如果用的是宝塔、cPanel这类可视化面板,直接点网站根目录的压缩整站按钮就行,记得把压缩包下载到本地电脑,服务器上也留一份备用压缩到隐藏文件夹(比如名字加个_202x0x0x_old前缀)。
- 如果是纯命令行操作的Linux服务器,用
zip -r dedecms_backup_202x0x0x.zip /www/wwwroot/你的网站根目录指令压缩,再用scp或ftp工具拉到本地。
织梦数据库备份
登录织梦后台,找到
系统-系统设置-数据备份/还原,勾选所有数据表,点击
开始备份,等进度条走完后,同样把生成的备份文件夹(一般在根目录/data/backupdata/)下载到本地。
第二步:从织梦后台手动清理可见的冗余文件
后台的冗余清理最直观,适合新手入门。
清理附件库的冗余图片/文件
织梦默认的图片和附件上传后,就算文章或产品被删除,很多文件其实还留在服务器上。登录后台后,依次点击
核心-附件管理-附件浏览,这里能看到所有上传的文件,系统还贴心标注了“未关联内容”的——可以批量勾选删除这些文件。不过操作前最好用
检查图片/附件有效性的功能再过滤一遍,避免误删还在用的旧页面素材。
清理后台的废弃插件、模板碎片
织梦生态有很多试用插件,但卸载不彻底容易留垃圾。点击
模块-模块管理,找到“未安装”但文件还在的插件,直接点
删除模块(记得选“同时删除模块文件”);模板碎片的话,去
模板-默认模板管理里,删掉不用的旧模板文件、自定义标签碎片就行。
清理系统运行日志
织梦的系统日志、登录日志、发布日志会每天生成,用了好几年的话,可能占几十上百MB。登录后台点
系统-系统安全-系统日志,直接全选后
删除日志即可,或者设置只保留最近7天的日志,但目前织梦V57和V58SP2默认没有这个自动设置,需要后期修改代码实现,新手暂时用手动清理就行。
第三步:用服务器工具清理后台看不到的本地冗余
后台看不到的冗余主要包括:织梦安装包残留、临时生成的缩略图副本、测试生成的页面缓存、废弃的数据库备份(根目录/data/backupdata/里旧的)、后台操作失败产生的错误临时文件。
宝塔面板的可视化清理工具
如果用的是宝塔,那就太方便了——直接在
网站-设置-清理缓存里勾选织梦相关的缓存选项(比如data/cache/、data/tplcache/),一键清理;然后在
文件里手动找安装时的install文件夹(如果没删除的话,这可是安全隐患,必须
删除整个install文件夹)、旧的数据库压缩包、临时文件(比如temp文件夹里的.tmp、.log文件)。
用代码筛选服务器本地未关联附件
刚才后台的附件检查可能会有遗漏,这里分享一段简单的PHP代码,上传到网站根目录,运行后会列出所有未关联内容的图片和附件,手动下载或压缩确认后删除。
```php
SetQuery("SELECT aid,filename FROM @__uploads");
$dsql->Execute('ul');
$uploads = array();
while($row = $dsql->GetArray('ul')){
$uploads[] = $row['filename'];
}
$dir = './uploads/';
$files = scandir($dir);
$unused = array();
foreach($files as $file){
if($file != '.' && $file != '..'){
$subdir = $dir.$file.'/';
if(is_dir($subdir)){
$subfiles = scandir($subdir);
foreach($subfiles as $subfile){
if($subfile != '.' && $subfile != '..'){
$fullpath = 'uploads/'.$file.'/'.$subfile;
if(!in_array($fullpath, $uploads)){
$unused[] = $fullpath;
}
}
}
}
}
}
echo '
未关联内容的附件列表:';
print_r($unused);
echo '
';
?>
```
注意:这段代码只适用于织梦默认的uploads目录结构,自定义附件目录的话需要修改$dir变量;运行完后一定要删除这段测试代码,防止被别人利用。
第四步:清理数据库里的冗余数据
数据库的冗余数据虽然不会占太多服务器磁盘,但会拖慢查询速度,比如旧的草稿、回收站内容、未审核的垃圾评论、失效的采集规则记录。
从织梦后台清理
- 回收站内容:核心-内容管理-内容回收站,全选后永久删除。
- 旧的草稿:核心-内容管理-草稿箱,全选后删除。
- 垃圾评论:核心-互动管理-评论管理,筛选“未审核”的垃圾评论,批量删除。
从phpMyAdmin里清理(进阶操作)
如果织梦后台的清理功能不够,可以登录宝塔的phpMyAdmin,找到你的网站数据库,执行以下SQL语句(记得把前缀@__改成你实际的数据库前缀,比如dede_):
```sql
-- 删除失效的采集规则记录
DELETE FROM @__co_addon;
DELETE FROM @__co_note;
DELETE FROM @__co_one;
DELETE FROM @__co_rule;
-- 删除超过1年的系统日志(如果后台没清理干净)
DELETE FROM @__log WHERE logtime < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 YEAR));
-- 清理表碎片,优化数据库查询速度
OPTIMIZE TABLE @__archives;
OPTIMIZE TABLE @__addonarticle;
OPTIMIZE TABLE @__uploads;
```
执行SQL前一定要确认数据库已经备份过了!
织梦系统虽然比较老,但维护好的话还是能用来做很多小网站的。这次分享的DedeCMS冗余文件清理方案,我自己每月都会给手里的几个老织梦站做一次,后台卡慢的问题基本能解决,服务器磁盘也能释放出10%-30%的空间。另外,清理完后记得改一下织梦后台的登录密码,最好开启二次验证,毕竟安全永远是第一位的。