【独家发布】迁移志—果君专栏小站迁站手记

封面插图by@夏野かなせみ

从Windows到Linux再到Windows最后回到Linux...

今年暑期,果君专栏小站原本位于腾讯云的服务器就要到期了。是时候考虑迁站的事宜了,原本的计划是继续购买腾讯云的服务器(毕竟这样迁站的成本比较低)。

于是我就在腾讯云、淘宝还有闲鱼上搜罗便宜的服务器信息,顺带开始进行站点迁移的演练。

之前站点的建站和配置维护都是时雨帮我进行完成的。今年我觉得是时候脱离其他人的帮助了,今年我将自己独立完成数据备份、新服务器配置,还有站点迁移的工作。

在淘宝、闲鱼还有官网搜罗到的配置都有些差强人意,大部分都是2H2G3M的配置,划下来一年也不便宜,得120一年;如果加到2H4G3M那就更贵了,三年500。而且主要是网络带宽实在是太低了,只有3M!理论最快速度只有384kb/s,对于果君专栏小站这样的多图网站来说实在是有点太低了。

之前看的服务器配置

当然你会说“为什么不上OSS?”,其实OSS也是一笔额外费用,还需要调整网站现有的配置(其实就是懒,觉得OSS的计费模式有点摸不透,不想研究了,费脑子)

可能是一直在淘宝系的软件里翻服务器的行为被阿里云抓住了,11号下午阿里云给我打了个电话,说阿里云2H2G5M的服务器一年只要99,而且还能再以优惠价格再续一年,也就是两年178。我一听就来劲了,立马打开了阿里云官网看到底是怎么一回事。结果打开之后更带劲了——

阿里云轻量应用服务器2H2G200M动态带宽,一年只要68!

诶我操这不买还能是人?

然后我就立刻激情下单,直接把网站迁移这件事提前了一个星期开整!

不过我们还需要把时间往前倒两周:

迁移演练

果君专栏小站虽然是2021年才建站,但其实2018年的时候就有建立过了,但是直到这一次之前,所有的服务器配置都是时雨完成的,我完全不知道服务器配置怎么弄比较好。最开始的时候用的是腾讯云的WordPress应用服务器,后来觉得配置不是很方便,不能完全控制服务器的各种权限,后来换成了Windows服务器,时雨当时帮我配置了wampserver。

然后的几年里面,我需要改服务器的配置就是上网搜搜要改什么文件,然后用notepad++直接对着配置文件开改,有问题就Ctrl+Z撤回,没问题就Ctrl+S保存应用,居然也一直用到了现在。

2021-2025年的服务器桌面,用的是Windows服务器

这次迁移站点,为了更方便维护,我决定给服务器使用面板系统,在一众面板软件中,选中了宝塔面板,因为宝塔是所有面板里面唯一一个有Windows端的。

选中面板之后,就要开始确定迁移方案,经过探索,最终使用了Akeeba Backup软件来做站点备份和还原。

站点备份

Akeeba Backup这款备份插件还是蛮方便的,首先在WordPress中安装,如果是全站备份的话,不需要更改任何配置,直接点击“Backup Now”即可开始备份,在第二页调整好备份描述和备份标题后,再点击“Backup Now!”就开始跑进度条了。

Aekkba Backup主界面,点框示按钮即可开始备份
调整好参数就可以开始备份了

然后等个几分钟,这个插件就会把你站点所有的文件和数据库给你全部打包成一个压缩包,这个压缩包默认存储在“wp-content > backups”文件夹中,是一个zip格式的压缩包。

备份进度界面
备份完成的样子
备份完成的压缩包

之后,你就可以把这个压缩包下载到本地留用了,我使用的是WinSCP软件,将压缩包从服务器拖入左边的本地磁盘里面,等待传输完成之后就OK了。

WinSCP界面

服务器选型

最开始,我的计划是继续使用Windows服务器,在Windows服务器上安装宝塔面板,然后将网站迁移后就完事了。

但是事实证明,是我想的太简单了。

我在本地创建了一个2H2G的Windows Server虚拟机,准备进行站点迁移的演练。创建好之后,我在虚拟机里面安装了宝塔Windows面板,然后开始配置站点环境。

在之前的服务器上,之前配置使用的PHP7.4.33已经过时,WordPress后台一直在催我更新至新版的PHP以获得更好的性能和安全性;其次,我原来使用的MySQL版本是8.0.29,这个看起来问题不大。

问题就出在这个MySQL上,在Windows面板中,我安装MySQL8.0.29直接提示服务器不满足安装要求,要我升级服务器配置。

也就是装不上,诶我操这就有点尴尬了,这咋办呢?数据库装不上那不就完犊子了吗?

实在不行我降低点要求呗,5.7.38行不行?

你好,不行。

那真是完犊子了,那就装5.6.51呗?

这次可以了,终于开始安装了!(普天同庆啊)

然后就是一顿恢复,进到WordPress一看,想不到吧,SQL太老咯!推荐你使用8.0+版本的SQL服务器

顿时有点无语了,那咋整呢?

转溜了一圈,也没侧载进去,有点太难搞了,Windows面板就是不让你侧载第三方组件进去,真有你的啊宝塔!而且宝塔Windows面板有些功能也被阉割了,比如Docker。

操!这踏马真的是有点忍不了了,怎么办?

直接装Ubuntu吧,说干就干,然后就把Ubuntu虚拟机给搞里头了。当时想着方便,还给Ubuntu装了GUI(又是一个坑,一会就知道了)

一顿命令行安装,哟,这宝塔就这么丝滑的装上了。

那么,应用商店,启动!MySQL8.0.29,安装!

诶,什么报错都没有,装进去了...

这就是Linux吗?爱了爱了!

给面板装的插件,还真是什么都能装啊...

然后一通丝滑的恢复,诶,网站搞定了!

没有PHP和MySQL报警了,剩下的都是小问题

好的,那演练也就正式结束了,接下来该真刀真枪的上战场了。

真实迁移

这一块没截图了,你不能指望我现在把服务器翘了重装,就为了去截图吧?

OK,那么我们把镜头转向阿里云这边,现在阿里云已经给我开好了服务器,使用的是Ubuntu 24版本,那么首先我们安装GUI...

好的GUI安到一半服务器卡死了

这他妈什么情况?之前演练的时候没遇到这问题啊?2H2G之间的差别这么大的吗?然后我就把服务器重置了再试了一遍,这次莫名其妙的没卡,装上了。

然后就是常规的安装宝塔,打开宝塔,安装组件,上传网站备份包,准备恢复...

这里感叹一下这个服务器上传是真的好快哦~

一切进展似乎都很顺利,接下来到解压了,然后解压的压力就给到我了。

好的,现在是选择题,如果你的服务器一解压你刚刚上传的压缩包就卡死,请问你怎么做?

A.重启再来一次 B.什么你用Ubuntu GUI自带的解压工具?我得装7Zip

我首先义无反顾的选了A,然后就这么反复卡死了N次...

你问为什么不用宝塔面板解压?因为Windows的编码和Linux不一样,我在宝塔里面解压,无论怎么选,解压出来的带中文的文件名就直接乱码...

好吧,后来没辙了,装了个7Zip,顺利的解压完成了。

打开网站,在域名后面加上installation,进入Akeeba Backup的恢复界面;检查没问题;输入数据库信息,恢复数据库;然后配置站点链接信息;下一步,开始恢复展开数据...

OK,那么好,一分钟之后,你的网站就“Duang”的恢复好了,别忘了去WordPress根目录下删掉那个叫“installation”的文件夹

这里就是恢复完成的界面

好的进入后台,嗯!丝滑,顺畅!新的服务器就这么配置好了。那么?代价是什么呢?

小问题的瞎折腾

换到Linux服务器之后,有三个小问题,也不算小问题吧,对我来说算是大问题了。

首先,文件权限配置错了...

在Windows上,因为wampserver是以管理员身份启动的,所有的文件对于它来说,都可读可写,没有任何问题。

到了Linux上,情况就有些不一样了,你需要给每个文件配置其所有者和读写权限,最开始,我一股脑的给所有文件配置了root为所有者的777权限。

好嘛,这不就炸了?

WordPress后台什么都不能操作了,更新插件需要你进行FTP验证

后来才知道是权限配置错了,只有.htaccess文件需要www用户下的644权限,其他的文件都是www用户下的755权限。

好吧,是我从来没用过Linux服务器,现在也算是解决了...

然后,服务器还是经常卡死

这个问题就有点大了,在8月11日到13日这几天,我的服务器经常频繁卡死,这种卡死不是应用的卡死,是整台服务器完全卡死,终端无法进入,甚至连VNC连接也是完全卡死的状态,查阅OOM日志也没有什么关键性的发现。

这下又有点难办了,这才刚买两天的服务器,怎么能出现这样的问题?

首先被我怀疑的就是Ubuntu的GUI界面(前面的回旋镖打回来了)

这个确实,占用资源,结合我之前服务器卡死经常是CPU占用爆了,我有理由怀疑是这个阿里云的服务器吃不消GUI界面,那我就卸载呗?

有天半夜突然发现服务器又爆了,这是那时的资源监控截屏

没想到啊,卸不干净!不仅开机还是慢吞吞的,而且还是会卡死。咋办捏,又重装了一遍Ubuntu,这下应该好了吧?

NoNoNo,现在轮到php-fpm服务突然把CPU、内存还有硬盘拉爆,然后服务器又卡死了。这个问题就算修改PHP服务的性能配置也无济于事。朋友说是中病毒了,那我就装了个ClamAV来杀毒,结果怎么样?

在更新ClamAV的病毒库的时候,又!卡!死!了!

而且每次重启之后再更新病毒库,100%会卡死,诶我草,服了。

诶,这毒我就不信杀不成了!然后在B站找到了一个up叫“科技Lion”,他做了个集成了杀毒的Linux管理脚本,安一个试试,死马当活马医了。

没想到,用这个插件,居然真杀成了...

脚本长这样
系统工具蛮多的,就是用这个杀毒杀成了

但是杀完了,发现没病毒,看起来卡死不是病毒的问题,这咋办呢?

后来查了查,好像是内存爆了,好吧先加个3GB的虚拟内存,诶这一加,还真不卡死了,果然是内存爆了啊...

然后,REST API经常回报404

这个问题其实到现在还是没解决,目前发现的最有效的方法是在宝塔里面把网站和数据库删了,再走一遍恢复的流程,目前呢,是开了网站的调试模式,记录一下错误日志,等到下一次出这个问题的时候,再去分析日志,定向解决这个问题。

等之后解决这个问题了,我再来更新这块内容。

就一直报这个错,醉了醉了

总得来点花的吧

既然都自己搭服务器了,那总得来点花的吧?

网站这一块,一直有两个问题困扰着我。

一个是SSL证书现在是三个月一续签(好像之后要改47天一续签了),每次手动续签还有点麻烦,而且宝塔面板续签证书之后需要自己把公私钥粘贴到面板里面,还得自己拼合公钥和root,有点过于麻烦了。

前几天晚上睡觉前翻B站,发现有一个组件交叫AllinSSL,可以自动续签证书。我草,这世上居然有如此牛逼的软件,火速爬起来开搞!

安装倒是不复杂,它安装在Docker上就行了,诶巧的是宝塔就有Docker管理功能,在宝塔面板上的Docker里面找到AllinSSL,一键安装,没几分钟就配置好了。点开链接,进入控制台,哟,这小玩意真有点东西!

配置好腾讯云的API还有宝塔的API,就可以愉快的去配置证书自动化流水线了。

配置API的地方

配置倒是不复杂,研究了一会就写好自动化流水线了,还顺手配置了飞书的执行结果通知。

试了一下,还真给我把证书续签上了!真是科技改变生活了,不错不错,非常满意。


解决了这个问题,还有个问题就是:

站点有时候服务崩了,我不知道怎么办呢?而且我看Deepseek、Apple他们的服务状态监控好几把帅啊!有点想整一个,说干就干!

摸索了一圈,发现Uptime Kuma好像还挺不错的,诶?这软件居然宝塔Docker管理器里居然也有,可以可以,装一个!

Uptime Kuma的登录界面

打开、登录之后发现,诶我操怎么装的是最新版,进去还提示有更新呢?那我手动更新一个呗。

诶等等,Docker软件怎么更新,又到我的知识盲区了。

看了一下,Docker应该是分为容器和镜像两部分组成,容器是软件存储的数据,镜像就是需要安装和更新的软件。嗯?应该是这样?

那么问题就好解决了,在Docker面板里的“容器 > 升级容器”里,将需要升级的镜像名填入,最新的Uptime Kuma版本应该是2.0.0beta3。那么查询Docker Hub中对应的拉取信息,在那一块填入2.0.0-beta-slim.3即可,然后点击“保存配置”,等待Docker拉取并配置镜像,没一会就搞定了。

在这里配置升级容器的内容

如果你升级失败了,在本地镜像那块创建新的容器就好了,问题也不大。

好的,那么现在Uptime Kuma就算是安装好了,进去配置一下,把站点的各项服务都挂好,还有监控一下那个该死的REST API,下次一有问题我就去看日志!

嗯,完美!

配置好之后的Uptime Kuma仪表盘页面

诶?右上角那个状态页面是什么?

我草!这不就是我梦寐以求的那些大公司才有的服务状态页面吗!赶紧配置一个,我草,真帅!

在右上角头像按钮里,还能给站点增加维护信息!诶,真是专业到家了,突然觉得一下子就高大上起来了有没有?

到这里,网站监控就装好了,非常满意,非常洋气,非常高大上!

那,还有什么问题?


不知道你有没有发现,AllinSSL和Uptime Kuma都是以服务器IP+端口的形式访问的,这有点别扭了,那么怎么解决呢?

但就是——反向代理!

最后一步,来点反向代理

有人可能就问了:“诶?不是在Docker管理器里面就能配置反向代理吗?为什么还得单独拿出来讲?”

问得好,我的网站是搭在Apache服务上的,而该死的宝塔Docker管理器,它里面自带的反向代理却只支持Nginx,是不是看不起我们这帮用Apache的乡巴佬?嗯,好像是Docker只能装Nginx?不懂不懂,反正就是不支持。

而且,好像装了Apache,再装Nginx,这俩哥们不会打架吗?行吧,那我就自己写反向代理呗?

也不是很困难,就是AllinSSL的安全域名不能加了,还有配置Uptime Kuma的反向代理的时候,需要开启WebSocket。

首先在宝塔里面创建俩静态站点,然后分别给这俩站点写好配置文件,最后重载一下Apache的配置文件就行。

配置域名
然后修改配置文件
最后重载Apache的配置就行

就这么简单,现在你就可以用超酷的域名访问你的AllinSSL和Uptime Kuma服务了。

到最后了

回顾这一次的服务器迁移和配置经历,不仅是我从服务器小白到稍微懂一点的服务器小白的进步的过程,也是一次蜕变,终于摆脱了需要其他人帮助才能配置服务器的历史。也了解了服务器的配置流程。

当然,这其中肯定不完美,配置的过程还得谢谢DeepSeek和Claude,没有这俩AI,那我估计这服务器还真是配不成了。

从最早的2017年第一次玩域名,用主机屋免费空间,玩玩FTP;到2018年的用Value 2.5美刀一个月的小破服务器,再到腾讯云;再到阿里云。时间一如既往的在流逝,技术栈在变,但那份好奇心和小小成就感带来的兴奋却始终如一。

正如最开始的那句“从Windows到Linux再到Windows最后回到Linux...”,操作系统变换下的,是一直在被我麻烦着的时雨,是那个总想着装逼的我,是最后终于靠着自己完成一切的成就感。还有些问题亟待解决,但总会好起来的?

不是吗,就像过去的那7年一样。致自己,也致玩心常在。

暂无评论

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇