搬迁背景
CentOS Linux将在其生命周期结束后停止维护,也就是说我迟早得把服务器系统更换,晚换不如早换。而且我也想试试LNMPA的架构如何。LNMPA架构:使用Nginx作为前端服务,能够更快更及时地处理静态页面、js、图片等,当客户端请求访问动态页面时由Nginx反向代理给Apache处理,Apache处理完再交予Nginx返回给客户端。
记一次CentOS WordPress站点迁移到Ubuntu VPS的过程。eluyee.com网站原先是使用LNMP一键安装包安装Apache、MySQL、PHP等程序,搭建运行在腾讯云香港 CentOS Linux 轻量应用服务器上的,在2021年8月24日,搬迁到新的Ubuntu服务器上。新的1核2G内存服务器采用LNMPA架构,与旧服务器系统、架构均有区别,站点搬迁有可能出错。因此我考虑在不暂停网站服务的前提下,尝试先将整站数据迁到新VPS上,用子域名恢复站点后再换回主域名。
VPS迁移搬家之前的工作
- 如果可以,禁用旧VPS上的所有插件
- 迁移前清除旧服务器上的缓存文件、停用缓存插件,或卸载
- 旧服务器不要立即停止使用,因为搜索引擎,可能还会去老服务器爬取数据
新VPS的IP域名解析,先用子域名过渡,没问题了再换回主域名。
WordPress 整站文件备份
lnmp stop cd /home/wwwroot tar -zcf eluyee.com-2021-08-23.tar.gz eluyee.com mv eluyee.com-2021-08-23.tar.gz /home/备份文件夹
数据库备份
cd /home/备份文件夹 mysqldump -uroot -p 对应WP数据库 > elxxx-2021-08-23.sql
WordPress 迁移搬家
假设新VPS的IP为9.9.9.9,SSH端口为22,则打开备份目录,选择需要的文件备份和数据库备份上传
cd /home/备份文件夹 ls scp -P 22 eluyee.com-2021-08-23.tar.gz root@9.9.9.9:/home/backup scp -P 22 eluyee.com-2021-08-23.sql root@9.9.9.9:/home/backup
新VPS导入整站与数据库
新VPS上安装LNMPA环境、OPcache与imageMagick后,
导入整站文件与数据库
cp /home/backup/eluyee.com-2021-08-23.tar.gz /home/wwwroot cd /home/wwwroot tar -zxf eluyee.com-2021-08-23.tar.gz rm -rf eluyee.com-2021-08-23.tar.gz
搬家后解压的文件可能存在权限的问题,建议赋予网站根目录文件的可写权限
chmod -R 755 /home/wwwroot && chown -R www /home/wwwroot
导入数据库之前,添加一次虚拟主机,创建与旧VPS相同的数据库名和密码,暂时不添加SSL(如果域名解析已生效,这里也可以添加SSL了)。
lnmp vhost add
导入数据库,以 ep_xsrukp 为例
cd /home/backup ls mysql -uroot -p ep_xsrukp < elxxx-2021-08-23.sql
检查是否有问题
正式搬家之前最好用子域名过渡,因此需要做下面工作
- 登录PhpMyAdmin
- 选择对应数据库ep_xsrukp
- 选择数据表wp_options
- 修改siteurl和home值为对应域名
- 修改网站主目录下 .htaccess 文件的域名跳转为对应子域名,或删除相应跳转代码
- 登录WordPress后台设置,常规选择里再保存更改一次
- 新域名解析生效后,删除原来的虚拟主机,重新添加虚拟主机与SSL
- lnmp restart 重启lnmpa
- 检查是否有其他问题
- 我检查到kk Star Ratings这个插件中,Greeting text里的点赞符号变成?了,需要修改回来
主域名解析回新VPS
- 没有其他问题则可为主域名解析IP,将后台的WP地址、站点地址转为主域名,解析生效后,重新添加虚拟主机与SSL
- 在后台先启用缓存插件如WP Fastest Cache、WP-Optimize等,清除一遍它们生成的缓存,最后再启用Redis Object Cache,这时再安装上Redis拓展,在设置里开启Redis
- 重启一遍LNMPA,迁移搬家工作顺利完成!
我都用的宝塔面板一键迁移搬家的。
那个确实方便一些,但是自己玩玩更有意思。