站点centos系统迁移ubuntu系统
概述
本站点最早使用的是centos系统,但是该系统官方不再更新维护了,随最近将服务器的系统更换为ubuntu系统,先记录站点的迁移过程。
迁移要点
由于本站点主要是基于php+nginx+wordpress框架设计。备份的原理是php、nginx、wordpress软件属于工具是可以在新的系统上新安装,但是wordpress相关的配置如主题、数据库、插件等属于数据是需要进行复制迁移的,因此备份的关键核心就是打包wordpress+mysql数据库。
- wordpress:wordpress组件包括插件、主题等。
- 数据库:wordpress所需要的数据库。
上面两个主要就是站点的关键数据了,需要原封迁移到新的服务器上去。其他次要点依情况选择:
- nginx配置:一般只需要把ssl的证书保留就行,不过也可以在云平台上重新下载。保守就是把/etc/nginx都打包一份。
- 版本:注意记录一下php、nginx的版本,以免出现版本不匹配。
迁移方式
迁移的方式有两种方式,一种是使用wordpress插件的方式,另外就是完全手动复制的方式。下面先总结一下这两种方式关键的路径:
使用wordpress插件方式
该方式主要使用wordpress插件WPvivid Backup插件,该插件可以直接备份wordpress+数据库。核心思路是:
- 备份wordpress+数据库:在WPvivid Backup后台做一次最新的备份。
- 备份nginx(可选):/etc/nginx压缩打包,可以只保留证书也行。
- 存储:将备份文件存储到本地或云端。
- 迁移:在服务器重置安装新的系统,然后将备份文件复制到新的服务器上。
- 安装:搭建一个新的php、nginx、wordpress环境。包括配置nginx和创建wordpress新的数据库链接等。
- 恢复:在新的wordpress站点上安装WPviviBackup插件,扫描备份文件进行还原。
- 配置:重新配置nginx支持https等。
使用手动方式
该方式不使用插件,手动进行会稍微多一些步骤。核心思路如下:
- 备份wordpress:将wordpress进行压缩打包。
- 备份数据库:使用mysqldump备份数据库。
- 备份nginx(可选):/etc/nginx压缩打包,可以只保留证书也行。
- 存储:将备份的文件存储到本地或云端。
- 迁移:服务器重置系统后,将备份文件复制到新服务器上。
- 按装:按照php、nginx。
- 恢复:将wordpress解压到nginx的主页目录下,恢复mysql数据库。
- 配置:重新配置nginx支持https等。
插件方式
备份
步骤1:备份wordpress与数据库
在插件WPvivid Backup后台备份wordpress+数据库到本地,然后通过ftp或scp拷贝到本地电脑。
步骤2:备份nginx的证书
在服务器/etc/nginx目录下,把cert证书压缩同理通过ftp或scp拷贝到本地电脑。这个证书路径可能不一样,根据自己实际情况。
重装
用插件做好数据迁移到本地备份后,即可销毁服务器上的系统重新安装了,怎么安装选择系统这里就不阐述了,本文重装的是ubuntu系统,系统启动后进行如下步骤按照软件。
步骤1:按照基本的软件
首先,确保软件包列表是最新的,这样可以避免安装过时的软件版本。
sudo apt update
如果你想升级已安装的软件到最新版本,使用:sudo apt upgrade
安装 Nginx:sudo apt install nginx
检查 Nginx 服务状态:sudo systemctl status nginx
启动Nginx:sudo systemctl start nginx
安装 MySQL:sudo apt install mysql-server
启动MySQL: sudo systemctl start mysql
安装 PHP 和相关的扩展:sudo apt install php-fpm php-mysql php-cli php-curl php-mbstring php-xml php-zip php-gd
安装其他如curl 或 git:sudo apt install curl git
按照wordpress:
wget https://wordpress.org/latest.tar.gz
tar -xzvf latest.tar.gz
mv wordpress /var/www/html/
步骤2:配置wordpress的数据库
先创建一个数据库。
mysql -u root -p
CREATE DATABASE wordpress_db;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
创建一个mysql的数据库,用于给wordpress创建一个数据库。
- wordpress_db:数据库的名称。
- wpuser: 访问数据库的用户名。
- your_password:访问数据需要的密码。
接着修改wordpress的配置可以访问数据库。
cd /var/www/html/wordpress/
cp wp-config-sample.php wp-config.php
vim wp-config.php
更新刚设置的数据库名
define('DB_NAME', 'wordpress_db');
define('DB_USER', 'wpuser');
define('DB_PASSWORD', 'your_password');
define( 'DB_HOST', 'localhost' );
步骤3:配置nginx
先做个备份
cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default_backup
vim /etc/nginx/sites-available/default
server {
listen 80;
server_name laumy.tech www.laumy.tech;
root /var/www/html/wordpress;
index index.php index.html index.htm index.nginx-debian.html;
location / {
try_files uriuri/ /index.php?args;
}
location ~ .php {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME document_rootfastcgi_script_name;
include fastcgi_params;
}
location ~ /.ht {
deny all;
}
}
server {
listen 443 ssl;
server_name laumy.tech www.laumy.tech;
ssl_certificate /etc/nginx/cert/www.laumy.tech.pem;
ssl_certificate_key /etc/nginx/cert/www.laumy.tech.key;
root /var/www/html/wordpress;
index index.php index.html index.htm index.nginx-debian.html;
location / {
try_files uriuri/ /index.php?args;
}
location ~ .php {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME document_rootfastcgi_script_name;
include fastcgi_params;
}
location ~ /.ht {
deny all;
}
}
一个是配置http的监听端口,另外一个是配置https的监听端口。
- server_name: 表示监听的网站,填自己的域名。
- root /var/www/html/wordpress: 指定了网站寻址的路径,这里是wordpress存放的路径。
- ssl_certificate**: 这个指定的是https的证书路径,只有443这个端口才需要填。
配置好后执行:
sudo nginx -t && sudo systemctl reload nginx
修改wordpress配置强制支持https,vim /var/www/html/wordpress/wp-config.php,加上下面两行。
define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);
步骤4:登录配置wordpress
没什么问题的话,登录自己的域名就可以进入到wordpress界面设置用户名和密码进入到后台了。
注意记得把后台的站点地址用https的方式,不然http和https混合访问的问题。
恢复
按照前面的步骤,顺利进入到wordpress后台之后,到这里就简单了。只需要按照插件WPvivid Backup进行还原即可。
步骤1:将备份文件拷贝到插件指定目录
默认一般是在/var/www/html/wordpress/wp-content/wpvividbackups
步骤:还原
在插件界面扫描到备份文件,进行还原。等还原完成,到此就大功告成了。
手动方式
手动跟插件的方式这里只列出差异点,就不再过多赘述了。
备份
对wordpress整个文件夹进行压缩,其次对mysql数据库进行备份。
mysqldump -u root -p your_database_name > wordpress-db-backup.sql
your_database_name 是你的数据库名称,要是忘记了就去wordpress/wp-config.php看看DB_NAME,密码亦是如此如下。
define('DB_NAME', 'wordpress_db');
define('DB_USER', 'wpuser');
define('DB_PASSWORD', 'your_password');
接着把wordpress压缩包、sql、nginx的证书拷贝到本地或云端。
恢复
将wordpress解压到/var/www/html/下。然后对数据库进行恢复,这里重点补充一下。
首先是要在mysql里面创建一个新的数据库。
mysql -u root -p
CREATE DATABASE wordpress_db;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'laumy'@'localhost';
FLUSH PRIVILEGES;
exit
注意这里的wordpress_db、wpuser、your_password分别为数据库名称、用户名、密码。可以跟你wordpress里面wp-config.php的一样,这样到时候就不用改了。
接入导入新的数据库。
mysql -uwpuser -pyour_password wordpress_db < wordpress-db-backup.sql
这样数据库就导入完成了。
总结一下,无论是那种方式的备份,最关键的就是将wordpress和数据库能够迁移复制过去就行。而php、nginx正常按照新的就行。而nginx网站的配置,主要就是注意将wordpress要解压位置设置好,以及读写权限要配置好。其次就是配置/etc/nginx/sites-available/default指定好网站的root路径(即wordpress路径)和证书的路径即可完成。
最后要是要是过程中遇到问题可以询问ai,当下ai已经非常强大了,只要把环境信息告知好,基本上所有的问题都能能解决。