网站服务器迁移+域名变更

网站服务器迁移+域名变更

背景

之前搭建网站使用的基础设施是AWS新账号free tier起的EC2,域名是在freenom上免费申请的。

这俩东西一年后就都不免费了……

为了继续白嫖,我需要新申请一个AWS账号和域名,并把之前自建网站的内容,全部迁移到新的AWS账号和域名下。

为了方便未来几年内,贫穷的我可以继续白嫖,这次我整理下迁移的步骤,以便一年后的我方便参考。

申请新的AWS账号

过程略,创建时间2022年11月28日。

AWS新账号下创建EC2

过程略,创建EC2前,账号要做些提前的配置,参考我的如下文章

《AWS账号使用前准备(1)–设置账单告警邮件》

《AWS账号使用前准备(2)–创建IAM账号》

注意:设置账单告警邮件中CloudWatch的账单告警只有在us-east-1区域才能看到!~

申请新域名

在https://www.freenom.com/上申请新域名yushuoxin.cf

2022年11月29日完成。

过程略。

2022年11月30日更新:

之前在freenom上申请的域名迟迟查不到更新的域名解析,我今天在godaddy上用gmail申请了一个账号,花15元RMB购买了域名yushuoxin.one,然后重新搭建这个域名的网站。

2022年12月1日更新:

11月29日注册的域名yushuoxin202211.cf,和11月30日注册的域名yushuoxin.tk,已经可以在公网查到freenom上设置的DNS解析了;

nameserver 改为 Cloudflare的域名yushuoxin.cf,在Cloudflare上显示还未激活。

anyway,我还是用godaddy上买的域名好了。

注意:下次要使用freenom的域名的话,最好提前至少5天就申请。我看freenom官方说明中,有提及过公网解析有时需要至多72小时。

2022年12月2日更新:

我刚试了下,把yushuoxin.tk的NS改成Cloudflare的,然后再Cloudflare上yushuoxin.tk就马上激活了呢。

所以下次如果我要用freenom,就这样:

  1. 提前5天再freenom上申请域名,并在freenom上添加一条测试的DNS解析,比如test.yushuoxin.tk解析为2.3.4.5;
  2. 第二天或者之后,确认公网可以解析到测试域名;
  3. 在Cloudflare上注册该域名,并修改freenom上该域名NS;
  4. 确认Cloudflare上该域名是否激活。

Cloudflare上新增site

在Cloudflare个人账号中,新增新域名的site;

并修改godaddy/freenom中的nameserver,为Cloudflare提供的name server.

然后顺手把Cloudflare上网站的DNS解析加上,设置为“仅限DNS”,之后等域名激活了就可以用了。

注:下图使用的是yushuoxin.cf的配置截图,我最终使用的是yushuoxin.one,这里仅做举例说明,下文其他类似情况不再做额外说明。

安装宝塔和WordPress

参考我的如下文章

《安装宝塔面板和安装WordPress个人网站》

wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh

登陆后绑定宝塔账号;

修改本地宝塔账号密码;

安装软件;

创建网站

记录:上述操作,在AWS HK ubuntu 22G ubuntu中,于2022年11月30日完成。

然后安装WordPress。

此时,通过绑定hosts文件,再访问新域名,即可进入初始的WP页面了。

数据迁移

数据备份

旧的WP中已经安装插件All-in-One WP Migration。

现在用它导出备份,因为免费版最大只能恢复50MB大小的备份文件,因此我这里选择只备份:数据库+主题+强制使用的插件。

我之前在旧服务器宝塔中,已经把ubuntu机器下/www/wwwroot/yushuoxin2022.cf/所有内容压缩打包下载下来;

宝塔中网站和数据库也都做了备份下载

数据迁移

我们在新服务器的WP中先安装插件All-in-One WP Migration,然后导入上面从旧服务器导出的备份文件。

导入成功后,我们看到文章已经都有了,但是文章中的图片都是没有的,因为新服务器还没有导入这些图片数据。

把旧服务器中/www/wwwroot/yushuoxin2022.cf/wordpress/wp-content/uploads路径下所有内容,也就是文章中的图片文件,复制到/www/wwwroot/yushuoxin.cf/wordpress/wp-content/uploads中。

然后文章中的图片就可以看到了。

这里还发现首页的图片没有显示。

这时,需要到这个主题下,把SpiceBox启用,然后主页就可以看到之前的大图片了。

之后,最好把旧网站中/www/wwwroot/域名/wordpress/wp-content/themes中的使用的主题文件夹honeypress和honeywaves复制到对应新网站相同位置中,否则我之前文章《删掉WordPress文章顶部大图片》的问题还需要重新修复。

站点图标没了,不知道为啥,重新选择下对应图片即可。

然后备份其他插件。

把原网站中\yushuoxin2022.cf\wordpress\wp-content\plugins下的

resume-builder和wp-ulike文件夹直接复制到新网站对应文件夹下,然后新WP中就可以看到了,此时需要启动下导入的插件即可。

之前的简历,和文章点赞数,都在。

wp-ulike的如下配置需要重新设置一下。

easy-table-of-contents这个插件按照上述操作好像不好用,不过没关系,我们在新WP中手动安装下这个插件即可。

安装并启用后,原文章中的目录就自动恢复了。

AWS Lambda等配置恢复

参考我的文章《为使用了Cloudflare CDN的AWS WordPress服务器设置安全组(用Lambda+CloudWatch Events实现自动化)》。

Cloudflare配置新域名

域名添加,在域名注册网站修改NS为Cloudflare以激活Cloudflare上该域名的配置,完成后,如下内容需要手动配置

部署新域名证书

参考我的文章《安装宝塔面板和安装WordPress个人网站》

这里宝塔证书和Let’s Encrypt其实申请其中一个就行,宝塔证书是一年有效期,另一个是几个月,但是可以自动续期。

Let’s Encrypt申请过程如下。

此时证书已部署,可打开强制HTTPS

宝塔证书(试用)申请过程大致如下。

申请后,可以到宝塔官网https://www.bt.cn/admin/safe 检查宝塔证书的申请状态,我这次是过了不到6个小时,由待验证变成已颁发的。

等证书申下来安装上后,再在Cloudflare上做如下变更

再把网站DNS解析,从“仅限DNS”改成“已代理”。

然后浏览器F12访问网站可见,已是Cloudflare提供的https的服务了。

直接访问http也会跳转到https。

备份网站和数据库

在宝塔中备份站点、备份数据库;

在WordPress管理的插件All-in-One WP Migration中,备份:数据库+主题+强制使用的插件;

并下载上述备份存档。

宝塔中配置数据库自动备份的计划任务。

删除旧AWS账号相关配置

  • 停掉EC2
  • 删除lambda
  • 删除us-east-1 region中CloudWatch里Billing相关告警配置
  • 检查SNS S3
  • 检查Bills每月账单,看历史账单中有哪些条目

我最终想做如下操作:

* 登陆root账号,进入account设置,拉到最下面,选择Close Account。

但是根据官方关闭账号的说明

https://aws.amazon.com/cn/premiumsupport/knowledge-center/close-aws-account/

“关闭您的账户可能不会自动终止所有的活动资源。有些活动资源在您关闭账户后甚至可能还会继续产生费用。您需要支付关闭前产生的任何使用费用。

在关闭账户之前,请执行以下操作:

查找所有活动资源。有关更多信息,请参阅如何检查我的 AWS 账户中不再需要的活动资源

终止所有资源。有关更多信息,请参阅如何终止我的 AWS 账户中不再需要的活动资源”。

因此我决定账号先保留,等过一个月,查看下账单,没有产生费用再决定是否关闭账号。

小结

上述工作顺利的话,需要大约6个小时的工作量。

如下几点可能是需要提前准备的:

  • 旧服务器的各种备份;
  • 为新AWS账号申请准备的邮箱和信用卡(VISA/MasterCard/American Express);
  • 新的域名(最好提前5天申请,确保修改nameserver后,在Cloudflare上能激活,建议确认新域名在Cloudflare可以激活后,再开始在宝塔上创建新域名的网站);

恩,就这些了。想到新的我再更新文章。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注