前言

很久没更新,考完试后这段时间一直在忙IELTS的学习,在抽空期间写了这篇记录,记录我博客从虚拟主机迁移到新的VPS上,并且配置CDN等设置。


迁移准备

配置展示

首先迁移肯定不能在服务器到期后再迁移,不然万一出错了容易翻车。

我原来的域名DNS管理商用的注册商的,这次为了方便就转移到了DNSPOD上。

新主机选取了A400互联的香港服务器,主要是因为当时他家在做活动,而且价格不错,性价比高就入手了。

给大家看看迁移后服务器配置:

  • Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz 1 核心
  • 2G 内存
  • 20G SSD
  • 5MB 带宽
  • 服务器位置:香港

虽然带宽有点小,但对于一个小博客来说已经够用了,我的静态资源使用的是外链,不用担心太多带宽问题。

如果有小伙伴还在寻找博客或小型网站服务器的,可以试试A400互联,每逢假日都有活动,建议活动入手,当然非活动的时候最低配置(1核1G内存)仅需¥24.00元/月,具体请点击进入购买页面

对于服务器地区的选择,我们知道服务器位置会影响访问速度。如果你有备案,建议还是去买大厂的例如腾讯云、阿里云等的内地地区。如果像我一样没有备案,那就只能选取境外地区。香港、新加坡和日本地区的服务器距离大陆比较近,访问速度也比较优秀,如果客户大多来自中国可以考虑这些地区;美国以及欧洲地区的相对较远但价格会比前面的便宜挺多,如果线路优秀也可以选择。

个人建议是:境外地区的博客等需要消耗带宽不多的网站,可以选择香港小带宽的路线(BGP、CN2),来保证速度。若需要一定的带宽,建议选择美国的优秀线路(CN2、9929)。

备份

注意:如果你的WordPress使用了一些缓存插件,建议在备份前先清除所有缓存,并且暂时关闭缓存插件防止出错。

我没有使用一些WordPress备份插件进行备份,而是直接打包了原服务器中所有WordPress目录的文件,并且手动备份了数据库。

如下图例子(非本站服务器),导出WordPress对应的数据库。

同时还要记得备份好自己的SSL证书,迁移后也需要重新部署SSL证书。

更改DNS解析

我们的迁移一般是暂停之前的解析(非删除),然后添加一条新的解析。这样要保证之前的服务器数据正常,出错时可以快速解析回去避免损失。

例如在dnspod里添加一条指向新服务器的解析:


文件转移

网站创建

接下来就是简单的文件和数据库转移过程,新的服务器使用了宝塔控制面板,于是就在宝塔中添加网站,填写域名,并且创建数据库。例如:

接下来就是在文件-指定目录中上传备份的压缩文件,然后在线解压到网站根目录即可。

修改数据库配置

因为数据库发生了变化,我们需要进行一些配置信息的修改。在WordPress根目录下找到wp-config.php文件,双击进入在线编辑模式。找到MySQL settings的那个区域,修改如下内容为刚才创建网站时的数据库:

其中DB_NAME字段为数据库名,DB_USER是数据库用户名,DB_PASSWORD是数据库密码,DB_HOST是数据库主机,因为我们是在同一台服务器上的数据库,那就填写本机位置localhost127.0.0.1即可。当然如果是远程数据库就填写远程地址。退出编辑记得保存。

如果这些信息在刚才创建网站的时候不记得了,那就找到左侧栏的数据库,里面有你的数据库信息,复制进来即可。

接下来通过数据库页面,可以登录到数据库管理系统phpmyadmin里面,选择导入即可:

接下来是比较重要的一步,就是更新博客域名(非域名更换者跳过)如果像我一样使用了子域名来搬家的情况,或者是需要更换域名时,我们要在数据库里更新一些表项。我们可以点击SQL,执行如下命令进行更换域名:

UPDATE wp_options
SET option_value = 'https://test.hoyue.fun'
WHERE option_name = 'siteurl' OR option_name = 'home';

这里option_value的值,替换成你的域名。当然如果有时候你更改过你数据库的表名前缀的,需要把表名wp_options更改为你的表名。

当然,如果SQL出现了问题,你也可以手动找到表wp_options,然后进去后对应位置逐个修改。


配置调整

设置伪静态

原来你的WordPress应该设置有伪静态,在新的服务器也需要重新设置一次。回到网站-设置,找到伪静态,预设里选择WordPress即可。

当然如果你没使用宝塔面板,你也可以手动添加。这里是一些常用的伪静态配置。

NGINX:

location /
{
	try_files $uri $uri/ /index.php?$args;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;

Apache:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

注意:配置完伪静态后,之后还需要重新在WordPress的设置-固定链接中保存再刷新。
 

SSL配置

我们需要重新配置我们的SSL,宝塔面板可以在设置里一键配置。把我们的证书从之前的服务器中取出来,填到这里保存即可。

当然如果你没有证书,也可以选择Let's Encrypt在线帮忙部署。

接下来就可以进入WordPress后台看看,配置是否正常。

文章链接更新(optional)

如果你更换了域名,那么文章中的一些域名也应该随之一起更新,我们可以使用插件velvet-blues-update-urls,可以快速更换你的域名,或者重新进入phpmyadmin,执行如下SQL命令:

UPDATE wp_posts 
SET post_content = REPLACE(post_content, '旧域名' , '新域名');
UPDATE wp_posts 
SET guid = REPLACE(guid, '旧域名' ,'新域名');

打开网站,按照以上步骤做了一般就完好的搬家成功了。


进阶设置

设置智能解析CDN

因为带宽过小,为了解决访问速度问题,我想到了使用智能解析的DNS,即通过DNSPOD的智能解析,让中国大陆走直连香港服务器,其他地区走cloudflare CDN。

但是如何走cloudflare服务器呢,因为使用了dnspod的智能解析,我们不能直接把域名托管到cloudflare上。这里通过Cloudflare for SaaS,使用CNAME接入CDN。

Cloudflare for SaaS的收费策略,每个账户可以有100个域名免费额度。我们就使用免费额度就行了。

前提条件:

  1. 需要有一个已经通过NS接入CF的域名,只用作设置回退源服务器,不对外显示,所以没有什么要求。你可以使用类似eu.org的域名接入即可。
  2. 开通 Cloudflare for SaaS 服务,需要CF账户绑定银行卡。可能需要一些境外信用卡,但是好的是可以支持PayPal认证,一般我们只需要在PayPal中绑定我们的卡,在CF上验证即可。

首先打开cloudflare,选中一个已经托管在cloudflare上的域名,打开DNS,添加一个回退源的记录,指向你的目标服务器,名称随便你,我这里以back为例。

接下来,面板进入SSL/TLS——自定义主机名,第一次进入这里会出现验证卡的页面,等待一会右上角会出现PayPal,选择PayPal随后验证就好了,这一步还是比较快的。

验证好了以后,在回退源处填写刚才添加的回退源地址:

等待一会,点击刷新,显示有效即成功。 

点击上方“添加自定义主机名”,进入添加页面,自定义主机名框里填写要接入CDN的域名,因为我的博客域名是test.hoyue.fun,我们如下添加,其他设置保持默认,如图。

添加成功后,出现如下界面,需要前往添加域名的域名服务商那里设置,添加上2条TXT类型的解析,一条是证书验证,一条是主机名验证。(图片与上文非同个域名)

我们返回dnspod中,为它添加这些解析。

TXT解析添加后,刷新很快就会出现有效的提示。

最后,我们在dnspod中进行智能分流,境内的指向境内服务器,境外指向cdn,如图:

你可以尝试进行一些ping测试,就可以发现,境外地区走了CDN,而境内地区走了境内服务器,如下图,IP检测到了CF的anycast IP:


常见错误

请注意:请做好备份再进行迁移!

注意:如果你的WordPress使用了一些缓存插件,建议在备份前先清除所有缓存,并且暂时关闭缓存插件防止出错。

除此之外,还可能有如下问题:

  1. 数据库连接错误:在新服务器上安装WordPress后,如果您的网站出现“错误建立数据库连接”的错误,可能是因为数据库连接信息不正确。您可以在wp-config.php文件中修改数据库主机名、数据库名、用户名和密码等信息,并确保这些信息与新服务器上的数据库匹配。
  2. 文件权限问题:在新服务器上安装WordPress后,您可能会遇到文件权限问题,导致无法上传媒体文件、安装插件等。您可以通过在FTP客户端中设置文件和文件夹的权限来解决此问题,通常将文件权限设置为755,文件夹权限设置为644即可。
  3. 图片路径问题:在更换服务器后,您的WordPress网站上的图片可能无法显示,这可能是因为图片路径不正确。您可以在WordPress后台中的“设置 -> 媒体”中检查媒体文件上传路径是否正确,并确保路径与新服务器上的路径匹配。
  4. 插件和主题兼容性问题:在新服务器上安装WordPress后,您的插件和主题可能无法正常工作,这可能是因为它们与新服务器的设置不兼容。您可以通过更新插件和主题,或者使用兼容性更好的插件和主题来解决此问题。
  5. SSL证书问题:如果您的WordPress网站使用SSL证书进行加密连接,在更换服务器后,您需要在新服务器上重新安装SSL证书,并确保WordPress网站使用的是正确的证书。
  6. DNS解析问题:在更换服务器后,您可能需要更新DNS记录,以便将域名指向新服务器的IP地址。请确保更新DNS记录后等待一段时间,以便DNS记录生效。

如果还有其他问题,也欢迎在评论区讨论。


后记

实迁移的过程非常简单,并没有多少难点,更重要的是细心和耐心。当然也不要忘记做好备份,翻车也不怕哈哈。

这里的一切都有始有终,却能容纳所有的不期而遇和久别重逢。
最后更新于 2023-07-04