我使用的是腾讯云的轻量级服务器,网站配置了腾讯云的 CDN 服务,刚好在已有服务器快到期的时候趁着活动期间抢了一台高配的服务器,所以需要迁移服务器上面的网站。
整体做下来分为以下步骤:
1.从旧服务器备份网站和数据库并下载
2.在新服务器创建网站和数据库并把备份好的数据导入
前两步都是宝塔的常规操作,就不细说了。主要说下后面的操作。
与 CDN 相关的设置
1.删除 内容分发网络——证书管理——证书配置中这个网站的证书。
2.在域名管理中停止该域名的服务。
3.暂停域名服务平台中与该网站相关的 CNAME,配置A记录,将A记录指向新服务器的IP地址。
这样即可确保访问网站时能够正确访问到新服务器配置的网站,方便后面进行测试。
4.测试没问题之后,在 CDN 域名配置的地方,把回源网站的 IP 改为新服务器的 IP 地址。
5.在 内容分发网络——证书管理——证书配置 中再重新关联到这个网站的 SSL 证书。
6.启用域名服务平台中与该网站相关的 CNAME,删除(或暂停)A记录。
等待部署完成后,CDN 就正常关联到新服务器上了。
这里有一个小细节,就是我的服务器安装了 Redis 并且设置了密码,我的网站是 WordPress 搭建的,后台使用了 Redis Object Cache 插件,默认宝塔安装好 Redis 的时候密码是为空的,所以如果此时运行网站是会报错的,提示:
Fatal error: Uncaught Error: Call to a member function get() on null in /www/wwwroot/xxx/wp-content/object-cache.php:193 Stack trace: #0 /www/wwwroot/xxx/wp-includes/class-wp-textdomain-registry.php(194): wp_cache_get() #1 /www/wwwroot/xxx/wp-includes/class-wp-textdomain-registry.php(309): WP_Textdomain_Registry->get_language_files_from_path() #2 /www/wwwroot/xxx/wp-includes/class-wp-textdomain-registry.php(94): WP_Textdomain_Registry->get_path_from_lang_dir() #3 /www/wwwroot/xxx/wp-includes/l10n.php(1372): WP_Textdomain_Registry->get() #4 /www/wwwroot/xxx/wp-includes/l10n.php(1402): _load_textdomain_just_in_time() #5 /www/wwwroot/xxx/wp-includes/l10n.php(194): get_translations_for_domain() #6 /www/wwwroot/xxx/wp-includes/l10n.php(306): translate() #7 /www/wwwroot/xxx/wp-content/object-cache.php(2914): __() #8 /www/wwwroot/xxx/wp-content/object-cache.php(2886): WP_Object_Cache->show_error_and_die() #9 /www/wwwroot in /www/wwwroot/xxx/wp-content/object-cache.php on line 193 There has been a critical error on this website.
PHP以上内容就是提示对象缓存相关的地方出现了错误,而我也只安装了 Redis Object 那一个插件,所以很容易就联想到是 Redis 密码的问题了。
所以安装完 Redis 之后一定马上把密码改成和旧服务器的 Redis 密码一致,这样访问网站就不会出现报错了。
Redis 修改密码的方法是 编辑配置文件,找到 requiredpass 那一行 在后面写上自己的密码就行,例如:
requirepass 1234567
ShellScript我配置的腾讯云 CDN 控制的是国内的 IP 访问,国外 IP 访问我是用 cloudflare 的 CDN 配置的,所以再处理一下境外访问。
境外访问
登录到 Cloudflare 网站,在CDN——记录中将对应的 IP 修改为新服务器的 IP 地址。
如果不懂得为什么要这样设置或修改,可参见这篇文章域名通过 CNAME 的方式接入 Cloudflare。
文章评论