标签:WordPress

站点、MYSQL跨服务器迁移及申请泛域名SSL证书并向HTTPS迁移

站点、MYSQL跨服务器迁移及申请泛域名SSL证书并向HTTPS迁移

花了一个通宵完成了个人站点、博客、数据库的迁移并且全站到CDN、对象存储都上了HTTPS。然而找性价比高的服务商花了一个月。贫穷是原罪。

最终找到的是腾讯云的服务,发现还有学生体验名额?果断买了一年……独立1C2G1M¥10/M还要什么自行车,配上¥3/M的乞丐版独立MYSQL数据库虽然种种功能都不对我开放但我好歹把MYSQL请了出去。

记正题。新服务器为了省心采用了著名的LNMP安装包,时下最新1.5稳定版。单作客户端无需安装MYSQL,使用PHP7.2。下载安装时间都稍长,建议在tmux或screen等辅助下进行以便(ssh session)断线重连。静态站点迁移就是想办法复制文件夹到新目的地。Wordpress站点也并无太大差别,大可放心迁移。

数据库迁移稍显麻烦。腾讯云提供了数据迁移功能奈何乞丐版无法使用。phpMyadmin提供的导入选项文件不超过2M属实鸡肋。最终采用在原始主机上使用mysqldump命令序列化指定数据库为sql文件,再连接远程数据库source进去的方法实现。需要注意的是为了避免编码问题,尽管查看了dump下来的sql文件包含了创建同名数据库语句,但我仍事先手动建立了utf8编码数据库,use之后进行的source。虽然结果可能没有什么差别。

之后远程连接数据库为Wordpress建立一个账户,只对目标数据库grant所有权限。在Wordpress目录下wp-config中修改database host、database username和database password(这几个变量好像叫这个名字……总之进去一看就认出来了)。需要说明的是这里的host测试下是可以带端口的,即ip:port格式。

回到LNMP设置。接下来配置Nginx及申请泛域名证书并上HTTPS。泛域名证书属实昂贵,但开源界提供了应该是全球唯一的一个乞丐之选,Let’s Encrypt。唯一的缺点是有效期仅三个月,我刚申请完导入到腾讯云证书管理它就提示我“即将过期”……不过无妨,申请过程基本实现了全自动化,可以自动续期。

我拥有darkray.cn域名,目前公开使用的二级域名有blog.darkray.cn、wx***.darkray.cn(API用途)、www。思路是除去API不动,blog单指向博客,其他包括一级域名全部解析到个人主页上去,且除API,其余全部使用泛域名一张证书,也方便管理。那么流程是首先给泛域名申请证书,之后将证书放在blog上使用。

尝试了LNMP在新建虚拟主机(vhost add)时是不能申请泛域名证书的。

    1. 首先需要参考LNMP.org关于申请Let’s Encrypt泛域名证书的说明,获取你域名DNS服务商的API密钥,并按说明export到环境中。腾讯的是DNSPod+。必须使用lnmp dnsssl [DNS服务商简称如dp]命令先为泛域名申请证书,该命令似乎同时会添加虚拟主机。主域名darkray.cn,其他域名*.darkray.cn。申请完成后nginx配置也应完成,可以自行修改Nginx vhost conf添加301http强制跳转规则。

  1. 之后使用lnmp vhost add添加其他虚拟主机,SSL证书一步选择自行添加证书,证书应填写fullchain.cer路径,密钥为domain.key的路径。设置完成后同样可自行修改conf添加HTTP301跳转HTTPS规则。

All done.

改变WordPress在系统中的文件路径

改变WordPress在系统中的文件路径

改变WordPress目录

配置好Nginx后遇到500错误,Error信息显示

Failed opening required Unknown … include_path=’.:/usr/share/pear:/usr/share/php’

解决方案先放前面吧

我的部分原因是使用了Wordfence,其他插件可能存在其他地方需要修改,请自寻。

  1. 在WordPress目录下:
    • .user.ini中寻找到一处旧路径记录,替换为新的;
    • wordfence-waf.php中寻找到两处旧路径记录,替换为新的;
  2. 登陆MySQL数据库,找到WordPress所属数据库的option表,有一到两处旧域名记录,替换为新的域名

叨叨

因为建设个人主页的想法,原先www域名下的此博客需要让出这个域名,转到现今的
访问域名的更改通过Nginx配置修改主机名便简单完成。但之后弹出500错误。Display_error发现是在某一未知的php文件中require了原有路径的文件。然而可能由于某种缓存机制的原因,该php文件只显示为Unkonwn,并无法知道文件位置。
所以我把全部文件打包压缩了下下来了用WebStorm作为项目打开然后全局搜索原路径名……
然后发现博客显示不正常,跳转链接也有问题;于是想到了去数据库看一看。
命令行mysql难以显示储存的复杂的数据,需要一个客户端界面。
Navicat确实UI好看,也挺好用,主要是UI好看,免费试用15天,自带简中。