开始前准备:
在新服务器上安装所需的软件和依赖项
安装nginx,php,mysql服务。
PS:同时确认旧服务器的服务端口是否有修改,如是默认,新服务器无需改动,如修改过端口,新服务器对应的服务也需更改旧服务器一样的端口
1. 备份
在开始迁移之前,确保对当前服务器上的所有重要文件和数据库进行备份。
备份网站文件:
PS:这里做的都是以自身环境为准。我测试的,网站文件都放在html目录中
将 /html
目录下的所有文件复制到一个安全的位置。可以使用 rsync
、scp
或者 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" 来批量替换数据库中的链接。
-
清除浏览器缓存和 WordPress 缓存: 确保清除浏览器缓存以及 WordPress 的缓存,以便加载最新的网站内容和设置。
-
重新启动 Nginx 服务: 重启 Nginx 服务以应用新的虚拟主机配置文件和域名更改。