oflyhigh avatar

还是没管住手:Rebuild一台我的VPS

oflyhigh

Published: 15 Nov 2025 › Updated: 15 Nov 2025还是没管住手:Rebuild一台我的VPS

还是没管住手:Rebuild一台我的VPS

之前说过VPS主机OS有更新时我们有三种策略:在线升级、重装系统、重购新机(VPS)。额,对了,还有一种是不管不顾,放任自流。

image.png
(图源 :pixabay)

这几种方法是各有利弊,比如最后一种方法就适合懒人,当然了,系统真的出问题被黑了,懒人们就会欲哭无泪了。

之前我在线升级了一台有站点的VPS,好处是不用再做任何其它设置站点也能正常访问(不是每次升级都这样哦),站点IP也不变。但是弄完后总觉得不够优雅。

而重购新机又要面临IP被换的问题,所以更好的解决方案就是重装系统,在Linode的系统中,这个方法叫Rebuild

其实这台VPS已经升级到最新系统了,完全没有必要Rebuild,我想Rebuild的VPS是cutehive.com所在的VPS,但是又怕出什么大问题,嗯,就拿这台已经升级好的机器练练手吧。

准备工作

因为这台VPS也有一个站点,还有一堆脚本,还有一些定时任务,所以Rebuild之前,最重要的事情就是要做好备份啦。

我的做法是把站点、脚本都复制到另外一台VPS上,这样比下载到本地备份要快得多。站点的配置文件、定时任务的内容(crontab -l)则保存到本地的txt文件中。

都保存完毕,检查一下有没有疏漏,就可以进行下一步啦。

Rebuild系统

接下来就可以在 Linode的后台Rebuild系统啦,不得不说Linode的面板是简洁又好用,深得我心呀。

Rebuild系统最关键的就是系统的选择和初始密码啦(当然也可以选择SSH KEY)
cc22d84db9670108e1f53e79250e681c.png

其它的选项还有加密磁盘、初始化脚本和数据等等,但是这机器上放的是不甚敏感的数据,也没啥要初始化的,所以就不用设置了。

最后的确认步骤,防止你因为操作失误Rebuild了VPS,这点还是很贴心的。
1c5c216e4b6affbf0121bc81be024ec1.png

之后就开始Rebuild进程啦,可以在主机列表以及事件提醒中看到相应的进度
0585107a5b13475a9cbbf14c1202f442.png

不得不说嗷嗷快,只需不要2分钟,新系统就搞定了,比在线升级快无数倍!
6edf7f3fd32edea14d2a0cc63f221737.png

系统的初始化设置

系统Rebuild好了以后,我们就可以使用root用户来SSH登陆到主机的22端口(前提要在防火墙中打开22端口)。

无论使用root用户还是用默认的22端口登陆都是非常危险的,所以我们要添加新用户(赋予sudo权限),修改SSH监听端口,禁用root登陆等等。

之后就不用root用户而是新添加的用户进行操作啦,这样可以避免不小心犯下大错。😳

还有需要进行的操作包括但不限于:修改主机名(方便识别);卸载无用服务;更新系统等。

自此主机设置完成,我们可以进行下一步啦。

安装需要的软件

因为这台VPS上运行着一个站点,所以必须安装相应的网站服务软件。我之前用的是Apache,那么还用Apache吧。

sudo apt install apache2

安装PHP
执行完之后才想起来,这个站点不需要PHP,嗯,可以再删除。
至于MySQL这个站更是不需要:

sudo apt install php8.3

安装mpm-itk模块

sudo apt install libapache2-mpm-itk

关闭默认站点:

sudo a2dissite 000-default.conf

并对Apache进行简单的加固,降低被攻击的风险。

还可以针对VPS的配置,编辑/etc/apache2/mods-enabled/mpm_prefork.conf来优化Apache的设置。

创建(或者说恢复)站点

首先用于运行站点的用户。

sudo adduser siteuser

登陆对应用户,在用户目录中创建www(用于放置站点内容)以及logs(用于放置站点日志)两个目录。

root权限复制原来的站点配置文件到/etc/apache2/sites-available

启用站点:

sudo a2ensite mysite
sudo systemctl reload apache2

当然,事情不是总是一帆风顺的,比如我执行上述指令时就报错了,根据出错信息,去逐项排查和解决就好。

我遇到的出错信息
5fca09708af94eb09d2ef856774bbd80.png

解决起来也没啥难度:

sudo a2enmod rewrite
sudo systemctl restart apache2

在把之前备份的站点数据复制回对应用户的www目录下,至此站点恢复完成。

为站点设置SSL证书

你以为到这就结束了嘛?当然没有,接下来我们要为站点安装SSL证书,这样我们就可以用https的方式访问啦。

为了达到这个目的,我执行以下两条指令:

sudo apt install certbot
sudo certbot --apache

结果就华丽地翻车了呢?
a03526252898697fb03eb46735a830c0.png

文字版翻车信息:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
The requested apache plugin does not appear to be installed

原来是我没装对应的apche插件,那就装上呗:

sudo apt install python3-certbot-apache

之后再重新执行sudo certbot --apache按提示操作即可。期间出错了一次,发现我的防火墙屏蔽了80端口,打开后再重新执行,就正常啦。

恢复其它数据

之前说过这台VPS上除了站点还有一些脚本等数据,这些也要恢复的啦。

创建相应的用户和目录,把数据从备份的VPS上复制过去。再安装相应的计划任务(crontab -e),搞定!

测试

通过浏览器访问站点查看站点是否工作正常。

登陆脚本所在的用户,手工执行相应的脚本,查看输出和日志,看看脚本以及定时任务是否工作正常。

man-7174965_960_720.jpg
(图源 :pixabay)

目前看起来一切正常,VPS Rebuild搞定,这下子强迫症一下子就舒爽了,觉得不单单VPS清清爽爽,整个人都清爽了好多呢!

有了这次Rebuild的经验,下次就可以拿我的https://cutehive.com下手啦,那个情况要略微复杂一些,之前几次升级都差点搞坏,不过我现在信心十足呢!

Leave 还是没管住手:Rebuild一台我的VPS to:

Written by

Programmer, Maker, Freelancer, Witness. Make friends, Make money, Make life better!

Read more #cn posts


Best Posts From oflyhigh

We have not curated any of oflyhigh's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From oflyhigh