这个网站,正是本站。这是我第二次写这篇文章,第一次写没有搬家成功,数据丢失了。
因为各服务商的虚拟主机业务,建站的门槛变得很低,我就是一个贴着这道门槛蹭进来的人。然而建站的门槛低了,在门内前进的坡度却大了,中低性能的虚拟主机难以支撑网站服务,搬家到服务器是无奈之举,这时候陡增的门槛让搬家变得不那么容易。
我将以我当时的门外汉视角叙述这次搬家的全过程。“历程”只作为这篇文章的骨架,这篇文章的内容将侧重于搬家的过程中应该注意的问题,以及这次搬家的经历给我带来的对网站未来运营的思考。
一、选购服务器
就目前的形势来讲,国内首推的服务器供应商是阿里云,而我的网站服务全都在百度云,要想转到阿里云就涉及到重新备案的问题,非常麻烦,还要保证虚拟主机正常运行,增加了一份成本。无奈之下,我选择先留在百度云。恰逢618大促,各服务商的促销力度都很大,我选择了如下这款,对于运行活悦来说性能绰绰有余。

如果我并不每年按时续费,而是重新优惠购买,并按照这篇文章的流程进行网站迁移,也许就能实现一定程度的薅羊毛。除此之外,我已经有了在阿里云购买新域名的打算。如果在今年的运行中,我在阿里云完成了备案,那么明年的这个时候,就可以把网站偷偷迁移到阿里云,薅马哥的羊毛。
二、创建网站运行环境
我是按照下图这本书完成这个步骤的。

这是一本又不好又好的书,它不好在内容选择不佳,对重要内容解说得不够充分,废话章节过多;它好在它是我们唯一能够参考的保姆级WordPress建站书。
但凡你对建站有一定的概念,你从这本书的第11章看起就OK了,通过本章第二节的学习,就可以使用Oneinstack安装LAEMP网站运行环境。
此书对远程控制系统的描述不清楚,缺少ssh的开启方法,我会在这里补充。
首先,要确保CentOS系统安装了openssh-server
yum list installed | grep openssh-server
如果输出表示没有安装openssh-server,我们就通过输入以下命令进行安装
yum install openssh-server
开始sshd服务即可
sudo service sshd start
三、给我们的WordPress网站搬家
要更改主域名的解析了,我有些激动,这三年多我还从没改过。

接下来,参考《零基础学WordPress》的第18章内容,搭建虚拟主机(提示:一定要开启SSL,不然网站使用体验会很差)并创建FTP账号。这章编排得很不错,从本地开发环境,再到线上开发环境,非常顺畅。不过,我们现在的需求已经和书中有了偏差,我们并不是要开发新站,而是要给旧站搬家。
先在旧虚拟主机中导出网页文件,上传到新服务器的网站目录里。然后导出数据库,再导入到新数据库里,这两步是姐妹关系,很好理解。如果域名改变的话,还要对数据库进行修改,请查看文章底部的链接,在此不进行赘述。
别忘了打开新网站目录,找到wp-config.php,修改如下内容
define(‘DB_NAME’, ‘wp3′);//这里输入新数据库名称
define(‘DB_USER’, ‘root’);//这里输入数据库用户名
define(‘DB_PASSWORD’, ’123′);//这里是输入数据库密码
define(‘DB_HOST’, ‘localhost’);//这里是数据库服务器,一般都是localhost
至此,网站可以访问,但是文章不能正常显示。登陆WordPress后台,找到设置-永久链接,不修改任何东西,直接点击保存,这是一个重建.htaccess的过程。完成以上,网站搬家成功完成。
四、设置快照与镜像
本身到这里工作就接近尾声了,只需要部署SSL证书即可。可是我在这个环节上遇到了大问题,所以添加设置快照与镜像这一步,在《零基础学WordPress》的第12章第2小节。说白了就是备份,避免出现难以挽回的错误后只能重头开始。我在第三步完成后创建了快照,还增加了如下的快照策略。

高密度创建快照,使得备份足够新,三天的删除时间,给网站修理留下反应空间,为什么不永久保留?因为这个业务收费了?
如此,我们才敢放开手做一些事情,没有后顾之忧。
注意:每次载入自己的镜象,需要重新开启MySQL服务,否则无法登陆数据库,报错:mysqli_real_connect(): (HY000/2002): Connection refused
在终端启动一下即可。
sudo service mysqld start
五、SSL证书部署
这是搬家过程中最令人作呕的事情,如果不是折腾这个,也许这篇文章两天之前就发布了。
百度云,阿里云都有他们的SSL证书部署教程,网上也有很多,但我们不要采用任何一种。记不记得搭建虚拟主机的时候,终端给我们输出了证书路径。我们只要拿自己的证书去替换就可以了。

我们搭建的环境是LAEMP,既有Apache又有Nginx,应该安装哪种证书呢?

在网上只有LAMP和LEMP的部署教程,大家都是Apache就部署Apache证书,Nginx就部署Nginx的证书。我发布工单问百度云的工程师,他们告诉我只要部署Apache的证书就可以了,然后我就进入了无限的镜像充载循环之中。百度工程师说的也许没错,但我们的确要部署Nginx的证书,谁叫我们用的Oneinstack安装工具呢?实际上,这一点在输出的路径中就有暗示,证书存放在Nginx的目录中,理应部署Nginx的证书吧。
参考文献: [1]老王经销商.《零基础学WordPress》[M].清华大学出版社:北京,2019:1. [2]dh2580.虚拟机下CentOS7开启SSH连接[EB/OL].https://blog.csdn.net/trackle400/article/details/52755571,2016-10-08 12:27:58. [3]一个豌豆.网站设计:WordPress网站搬家简要教程(修改)[EB/OL].https://zhuanlan.zhihu.com/p/69726021,2019-06-19. [4]根子的数据库.mysqli_real_connect(): (HY000/2002): Connection refused 小知识点[EB/OL].https://blog.csdn.net/genziisme/article/details/99942298,2019-08-21 10:29:21. [5]苏 demo.oneinstack apache 开启ssl证书配置简记分享[EB/OL].https://www.libaocai.com/6984.html,2019-11-23.
2 条评论
Reason · 2024年8月20日 下午8:45
本文仅供参考,些处理可能并非最优。让我们共同学习,共同进步!
Reason · 2021年6月18日 上午12:33
奥利给!