站点centos系统迁移ubuntu系统

🕒 2025-04-20 📁 前后端 👤 laumy 🔥 28 热度

概述

本站点最早使用的是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已经非常强大了,只要把环境信息告知好,基本上所有的问题都能能解决。

发表你的看法

\t