WordPress知识分享

记一次艰难的网站恢复过程

本文记录一次比较困难的网站恢复过程,这个过程遇到了好多个坑,老魏过五关斩六将终于把网站成功运行并正常显示。写下整个过程也是希望这几个问题的解决过程能够对您有帮助,这也是老魏写作的初衷。

网站有错误打不开

事情起因是接到朋友的请求,帮助把网站恢复正常。目前网站的前台、后台都无法正常打开。显示的是英文,大概意思是说 contact-7 插件有错误。那我就去插件目录中修改了这个插件的目录名字,结果又显示 mailChimp 插件错误,再次修改目录名,结果网页还是无法显示。

最后决定恢复前几个月的网站备份算了,反正产品页、新闻页面一直也没有更新,这网站的人该有多懒啊!

尝试手动恢复网站

在 24年5月30日的时候,老魏帮助备份过一次网站,那时候网站还是能正常打开的。使用的是宝塔面板手动备份功能。于是就用这个备份来还原一下,快速让网站恢复正常。

网站备份在 /www/backup/site,数据库备份在 /www/backup/database,按照网站域名进入找压缩包。把网站备份压缩包复制到现在的网站目录,删除原有网站文件,解压缩,再复制粘贴到网站根目录即可。

数据库老魏是在手动备份那里直接导入的,因为一直也没有添加网站内容,所以比较放心。

都还原之后,我们去刷新网站前台页面和后台页面,看看是否正常。结果都可以正常打开了。

网站样式错误

此时发现网站页脚的样式不对,检查后发现使用了 Woodmart主题的核心插件,叫 Woodmart-core,这个插件被禁用了,没有激活按钮,只有删除和升级按钮。

这货和 Woocommerce紧密配合,又得先升级 Woocommerce插件,然后再去升级 Woocommerce database,这几步都是在 WordPress后台操作的,一键升级,然后等待一会就行。

搞定 Woocommerce后,回头再去看 Woodmart-core插件,还是没有激活按钮,这就奇怪了,问题出在哪里了?

后面折腾了好久都没有变化,干脆心一横,我删除掉这个插件目录,去用同类插件的网站复制一份不就解决问题了嘛。

不让复制不让删除

说办就办,复制后过来粘贴,却提示:网站文件复制失败,真是无语了。

不让复制那我就直接删除掉这个插件目录吧,结果提示:删除目录失败。

我立即想到宝塔面板网站防篡改插件,去把插件停掉,重复上述操作,问题依旧,去把防篡改插件删除,重复上述操作,还是不让删除,见鬼了!

相关文章:宝塔面板堡塔企业级防篡改插件部署使用详细教程

询问过这台主机只有宝塔面板,没有安装过其他安全软件,排除了软件对目录的权限限制。

网站目录 a属性

冷静一下,去宝塔面板论坛找了一下,果然有人遇到过这个问题,宝塔面板官方客服回答说:目录存在a属性导致无法删除,a属性只能追加文件不能删除。就这一句话没有提到如何解决,对大佬们来说是小case,对我等小白来说简直是太难了呀。

不过大方向有了, 后面就是如何操作实现的问题了。于是继续在网上搜索相关内容,发现了解决办法。

命令行一波三折

我在宝塔面板的“终端”这个功能,想要进入 ssh命令行,反复提示账号密码错误,逼得我不得不下载了宝塔SSH软件,又跑去腾讯云重置了root密码,修改了ssh端口,这才成功登陆进去。

相关文章:宝塔面板自带 SSH 终端和 上传解压文件功能

在命令行输入 cd /www/wwwroot/你的网站目录名/plugin/,这样就定位到了问题网站的插件目录。cd后面是有空格的哟!

先试了下 rm -rf /woodmart-core 的命令,无效。哎,早就知道不会这么容易解决的!

根据宝塔面板官方的解释 woodmart-core 的目录属性被修改,导致无法删除这个目录和下面的文件,即使用 root 用户也无法删除。

先用 lsattr 命令列出有问题的目录的文件夹属性,看看是否有 i 和a 这两个属性

i 属性让文件或目录无法删除、改名、无法写入或添加数据(增删改都不行), root 用户才能设置
a 属性让文件或目录只能增加数据,不能删除更不能修改数据,root 用户才能设置
e 代表该文件为可执行文件

目前我们处于plugin目录中,直接输入 lsattr 回车,就会显示这里面所有插件目录和文件的属性。经过仔细观察,发现 woodmart-core 目录是有 a 属性和 e属性的,也就是只能添加文件,无法被删除。

接下来我们用 chattr命令去除 a属性,然后就能正常被删除了。

# 删除 woodmart-core目录的 a 属性

chattr -a /woodmart-core

#如果还有i属性的话,就删除 woodmart-core目录的 ia 属性

chattr -ia /woodmart-core

# 查看是否移除成功

lsattr /woodmart-core

看到 woodmart-core 已经没有 a 属性了,只剩下 e属性。

见到曙光了

前面经过多次的复制粘贴文件,导致目前的 woodmart-core插件文件有增加,为了尽快恢复网站, 我们去宝塔面板的网站目录中,找到这个插件目录,删除,成功!

再把正常的 woodmart-core 目录复制粘贴过来,也能正常操作了。

再去网站的 WordPress后台>插件,看到 woodmart-core 插件下面出现了久违的激活字样,激动的心颤抖的手,点击激活按钮,激活成功。

去检查网站前台页面的页脚样式,看到恢复正常,就大功告成了!

总结一下

从一开始的网站打不开,到后面的手动恢复网站,目录无法删除,再用命令行去除 a 属性,删除成功,用正常的插件目录替换,激活成功,页脚样式正常显示。

目录出现 a属性的原因,结合之前这个服务器中过病毒的情况,猜测可能是被动添加的 a属性,我们也不去深究了,解决问题就行了。

这一路走来,经历了太多的坑,老魏也是第一次遇到 目录a属性无法删除这种问题,也是又学习到一个知识点。

以上就是今天折腾的内容,希望对您有用。

赞(4)
文章名称:《记一次艰难的网站恢复过程》
文章链接:https://www.vpsss.net/29297.html
版权声明:本站资源仅供个人学习交流,禁止转载,不允许用于商业用途,否则法律问题自行承担。
图片版权归属各自创作者所有,图片水印出于防止被无耻之徒盗取劳动成果的目的。