无停机迁移备份LNMP架构服务

开始前准备:

在新服务器上安装所需的软件和依赖项

安装nginx,php,mysql服务。

PS:同时确认旧服务器的服务端口是否有修改,如是默认,新服务器无需改动,如修改过端口,新服务器对应的服务也需更改旧服务器一样的端口

 1. 备份

在开始迁移之前,确保对当前服务器上的所有重要文件和数据库进行备份。

备份网站文件

PS:这里做的都是以自身环境为准。我测试的,网站文件都放在html目录中

将 /html 目录下的所有文件复制到一个安全的位置。可以使用 rsyncscp 或者 tar 命令来备份文件。我这里使用rsync。

cd /html
tar -czf backup_html.tar.gz /html

备份数据库

使用 mysqldump进行备份所有数据库,还是先备份放在html目录中,到时候一起备份到新服务器

mysqldump -u root -p123456 --all-databases > all_databases_backup.sql

格式说明:
mysqldump -u 用户名 -p密码 --all-databases > all_databases_backup.sql

2. 迁移文件

rsync 传输文件

需要新服务器与旧服务器都有部署rsync服务.

将在html目录中备份的数据库文件和站点目录文件备份移动到backuptest目录中:

mkdir /backuptest
mv all_databases_backup.sql blog_backup.tar.gz /backuptest

将backuptest目录传输到新服务器中:

rsync -avz /backuptest/ rsync_backup@192.168.149.112::backup --password-file=/etc/rsync.password

然后到新服务器中检查:
[root@nginx-web02 backup]# ll
total 100160
-rw-r--r-- 1 rsync rsync   1179449 Mar 28 19:07 all_databases_backup.sql
-rw-r--r-- 1 rsync rsync 101383723 Mar 28 18:57 blog_backup.tar.gz

PS:如果没有rsync服务可以使用SCP

前提是需要知道旧服务器的用户登录密码

scp -r /bakcuptest root@192.168.149.112:/backup

将nginx的虚拟主机配置文件发送到新服务器:

scp:

scp -r /etc/nginx/conf.d/biog.test01.com.conf root@192.168.149.112:/etc/nginx/conf.d/

以上操作已完成了重要数据迁移到新服务器了. 

以下操作都在新服务器中进行

1.解压文件

对备份过来的文件进行解压:

tar -xzf blog_backup.tar.gz /

检查文件是否正常解压完成: 

[root@nginx-web02 html]# ll
total 49508
drwxr-xr-x 6 1111 1111     4096 Mar 28 15:56 blog
-rw-r--r-- 1 root root 50692096 Mar 28 18:56 blog_backup.tar.gz
drwxr-xr-x 2 root root       41 Mar 26 21:25 web01

2.在新服务器上恢复数据库

切换到备份的数据库文件目录中:
cd /backup
还原备份的所有数据库:
mysql -u root -p123456 < all_databases_backup.sql

进入数据库中检查是否还原成功:
mysql -u root -p123456

show databases;

3.配置新服务器

修改Nginx虚拟主机配置文件:

vim biog.test01.com.conf
将server_name blog.test01.com;域名指向要与旧服务器一致

确认之前旧服务器的nginx和php的服务进程用户是什么.新服务器也要进行创建且修改目录的属组和属主

(1)创建与旧服务器一样的进程用户ID: 

useradd -u 1111 test -s /sbin/nologin -M

(2)将Nginx的进程用户和PHP的进程用户修改为test

sed -i '/^user/c user test;' /etc/nginx/nginx.conf
检查:
egrep "^user" /etc/nginx/nginx.conf
nginx -t

修改php服务进程用户
sed -i '/^user/c user = test' /etc/php-fpm.d/www.conf 
sed -i '/^group/c group = test' /etc/php-fpm.d/www.conf
egrep "^user|^group" /etc/php-fpm.d/www.conf

平滑重启服务:
systemctl reload nginx
systemctl reload php-fpm.service

(3)修改文件属主/属组

chown -R test.test /html/blog

(4)创建之前mysql的用户

先进入sql
mysql -u root -p123456

创建之前的blog用户
grant all on blog.* to blog@'locahost' identified by '123456' ;

让数据库生效:
flush privileges;

(5)网页输入域名检查

https://blog.test01.com/wp-login.php
登录之前创建的用户账号和密码 
查看之前发布的文章还在不在 

这边以wordpress为例子,其他的工具要以实际为准.一般登录的文件是: wp-login.php,确保这个文件是在/html/blog目录下

至此部署好的论坛迁移到新服务器完成

PS: 如果站点更换了域名

在WordPress中,修改站点的域名后,确实需要对数据库中存储的相关信息进行更新,以确保站点能够正常工作。单纯修改 Nginx 的虚拟主机配置文件指向新的域名是不够的,因为 WordPress 的链接和资源文件引用通常是存储在数据库中的,并且使用的是原始的域名信息。

更新 WordPress 数据库中的网址: 使用 WordPress 数据库中的 wp_options 表来更新站点的网址。在数据库中执行以下 SQL 命令:

UPDATE wp_options SET option_value = 'http://blog.test02.com' WHERE option_name = 'siteurl';
UPDATE wp_options SET option_value = 'http://blog.test02.com' WHERE option_name = 'home';

这会将 WordPress 中存储的网站地址更新为新的域名。确保将 blog.test02.com 替换为你实际使用的新域名。

更新 WordPress 中的文章和页面链接: 在更新完数据库中的网址后,还需要更新 WordPress 中已发布的文章和页面中的链接,以确保它们指向正确的新域名。你可以使用 WordPress 插件如 "Better Search Replace" 来批量替换数据库中的链接。

 

  1. 清除浏览器缓存和 WordPress 缓存: 确保清除浏览器缓存以及 WordPress 的缓存,以便加载最新的网站内容和设置。

  2. 重新启动 Nginx 服务: 重启 Nginx 服务以应用新的虚拟主机配置文件和域名更改。

  • 13
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ycchenG7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值