复活我博客时遇到的坑

Posted on Posted in 日常

由于众所知周的原因我博客已经持续荒废大概2年了(可能更长),最近终于有闲工夫下来处理一下。

先说说为啥荒废了博客

  1. 在2017某一天我准备迁移服务器,于是保险起见先拍个快照。我有很长一段时间没有在vultr上拍快照,然后快照界面的环形图标直接吸引了我的视线,想都没想点了几下,随后我发现点的tm是还原按钮,于是服务器被还原到了2016年的快照,欢声笑语中打出GG。
  2. 事实上,2018年有一段时间服务器收到了饱和垃圾评论攻击,导致现在我的WP中有4K+的垃圾评论,所以暂时先把评论功能关闭了,这个攻击还导致我的Mysql数据库1天自杀3次。后来索性我就把apache服务关了。

说正题吧,为了迁移服务器,我临时开了一台服务器将2016年的快照还原了。随后遇到了如下问题

问题1:由于这个服务器快照是16年的,经过在我电脑上的一番深度挖掘,我最终还是找出了我的登录密码、数据库密码,不爱删东西是个好习惯啊! 。然而ssh端口是多少我已经记不得了。在网页登录之后看了一眼ufw规则,挨个试了一遍,居然全都连接不上!后来发现这个新服务器IP好像被墙了。没辙,用Proxifier开了全局代理才成功登上ssh。

问题2:由于https证书过期,而且我有一部分链接是死链,网站无法强制使用http访问,格式错乱。千辛万苦连接上ssh后尝试了一下续签但是发现脚本已经严重过期,报了一堆错。又尝试访问PMA发现报403。于是手动备份了数据库。

问题3:在Ubuntu1804上搭建LAMP时异常顺利,感觉半小时就能搞定了呢flag,随后我将旧服务器的html文件夹打包wget到新服务器上,解压,访问。与数据库连接出现问题?修改wp-config.php 问题依旧存在。将.sql文件还原之后发现依然存在问题。 第一次使用Mysql命令的我怀疑自己的命令有问题,导致数据库是损坏的,于是我决定把phpmysqladmin装上,可视化的看一看。在安装完PMA之后,发现账户没有权限登陆,去查了一下,发现Mysql默认禁止远程连接。于是开了第二个账户复制了全部权限。 不仅PMA正常了WP数据库也正常了。

问题4:部署https,前面提到由于有些连接是死链,我决定还是得启动小绿标,不过一番研究发现现在的Certbot比之前的好用多了Apache也自带续签了

sudo add-apt-repository ppa:certbot/certbot

添加源

sudo apt install python-certbot-apache

安装

sudo vi /etc/apache2/sites-available/example.com.conf

添加一个配置文件,方便续签

ServerName example.com;

配置文件中写明网站

sudo apache2ctl configtest

sudo systemctl reload apache2

sudo certbot –apache -d example.com

签发证书

sudo certbot renew –dry-run

测试一下自动续签,如果没有报错就没问题啦

问题5:登陆wp-admin报http500内部错误,去/var/log中看了一眼,怀疑是和php7.2不兼容,随后wget wordpress安装包,解压后删除wp-content,覆盖升级。随后问题解决