上午十点,客户电话打爆:“后台点生成HTML,进度条跟蜗牛似的,三分钟出五个页面,服务器CPU直接飙到90%!”我远程一看,DedeCMS后台的“生成”按钮转得比老式硬盘还吃力,别急着骂服务器,先用排除法——八成不是硬件问题,而是你的站被“脏东西”缠上了。
第一步:先给网站“抽血化验”——排查挂马与恶意文件
静态生成慢,很多时候不是引擎笨,而是后台有一堆“寄生虫”在疯狂跑脚本,打开FTP或宝塔文件管理器,重点盯这仨目录:/data、/templets、/plus,找最近72小时内被修改的PHP文件,尤其是文件名长得像乱码的,比如gq4x.php、1ndex.php,用Notepad++打开,搜eval(、base64_decode(、assert(,只要命中就直接删。
别急,删完还得“清创”——否则病毒会复活
登录数据库,进dede_sysconfig表,查cfg_basehost和cfg_cookie_encode字段,挂马脚本常在这两个位置塞后门代码,顺手把dede_admin表里的密码改掉,别用弱口令,去/data/admin/目录下,如果看到ver.txt文件被改成可写权限,立刻设成444(只读)。
织梦CMS静态生成卡成PPT?从挂马清理到搬家换域名,这份全套救急手册请收好
第二步:给后台“上锁”——路径修改及权限加固
静态生成慢,还可能是后台被暴力扫描拖垮了,默认/dede路径谁都知道,改掉它,打开/data/admin/ver.txt,把里面的字符改成乱码,比如a9f3k7,然后改/dede文件夹名为/manage_x9,注意,改完记得同步改根目录下index.php里的define('ADMIN_DIR', '/manage_x9');这一行。
接下来是文件权限“铁桶阵”:
- 根目录
index.php、/plus/下的所有PHP文件,权限设成644(属主可写,组和其他只读)。 /data/、/templets/、/uploads/目录,权限设成755,并且要禁止执行PHP,宝塔里直接在“安全”功能里为这三个目录添加“禁止PHP运行”规则。- 关键文件
/data/common.inc.php,权限必须444,里面有数据库密码,可写是噩梦。
第三步:核心操作——整站搬家与域名替换(附数据库手术刀)
静态生成慢,也可能是服务器环境换了,路径残留导致反复读盘,搬家流程,照着做绝不会错:
- 打包全站文件(除
/data目录下backup和cache外的全部),上传到新服务器。 - 导出数据库:宝塔后台“数据库”菜单,点“导出”,选“SQL”格式。
- 新环境导入SQL,然后修改
/data/common.inc.php里的数据库连接信息(新库名、新密码)。 - 重头戏:如果域名换了,别在后台手动改,用phpMyAdmin执行SQL命令:
UPDATE dede_addonarticle SET body = REPLACE(body,'http://旧域名.com','http://新域名.com'); UPDATE dede_arctype SET typename = REPLACE(typename,'旧域名','新域名'); UPDATE dede_sysconfig SET value = REPLACE(value,'旧域名','新域名') WHERE varname='cfg_basehost';
别忘了
dede_member表里的userid和email字段,如果存了带域名的信息,一并替换。
第四步:数据库“瘦身”——备份与恢复的保命技巧
如果生成慢是因为数据库表垃圾太多(比如日志表几十万条),静态页会反复查询超时,推荐用手动方式优化:
- 备份:进数据库管理后台,选
dede_plus_log、dede_member_login_log这种日志表,先TRUNCATE清空,再全库备份,备份文件下载到本地,别放在服务器上。 - 恢复:如果挂了,进phpMyAdmin,选“导入”,用
--force模式恢复,注意,恢复前要关闭站点(/data/common.inc.php里设置cfg_powerby为“维护中”),防止新数据写入冲突。
最后一步:静态生成加速的隐藏开关
做完以上,你该清理的都清了,权限也锁死了,但织梦默认的生成机制是单线程,慢是常态,去后台“系统”->“性能优化”里,把“生成HTML多进程”改为5(高配机器可设10),再把“动态页缓存时间”调到3600秒,重启一遍PHP-FPM,让配置生效。
三小时后,客户发来微信:“生成1000篇文章,用了四分钟,搞定了!”我回了个笑脸,顺手把dede_arccache表也TRUNCATE了——这玩意儿里全是过期缓存,留着也是拖慢速度的定时炸弹,织梦这老家伙,你得顺着它的脾气来,该堵的堵,该疏的疏,它就服服帖帖的了。



发表评论