实战:如何备份虚拟主机上的Wordpress数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实战:如何备份虚拟主机上的Wordpress数据相关的知识,希望对你有一定的参考价值。

一,数据库备份的技巧。最原始的数据库备份方法是登录wordpress后台,通过备份菜单来备份数据库。不过这种方式很麻烦,每次都得登录。同时,这种备份方式还存在着安全隐患——blogger经常会忘记备份。一旦虚拟主机出现任何问题,很可能数据库就丢失了。新版本的WordPress Database Backup已经支持自动备份功能,只需要登录wordpress后台,找到管理菜单,选择backup,就可以设定自动备份了,同时把备份的数据库发送到你的邮箱里面。自动备份比手动备份要安全和可靠的多。另外,如果是手动备份的话,最好的方法是更新文章后立刻备份。二,FTP备份技巧。1,不必把FTP上面所有的内容都备份,只需要备份themes,plugins,uploads三个文件夹以及你自己新建的文件夹。2,在本地建立一个和FTP里面一摸一样的文件目录结构。上传文件前先把文件复制到本地的对应文件夹里面再上传。这样就不用每次都先上传再下载了,要知道本地的速度可是比FTP快了N倍啊。3,themes 文件夹的内容不用每次都重新全部备份,只需把你修改的那个文件下载覆盖就行了。4,plugins 文件夹也没必要每次都全部重覆盖,只需要把你修改的那个插件下载覆盖就行了。5,uploads文件夹里面的内容,在上传前先保存到本地相应文件夹里面。6,任何文件,修改前记得备份,修好后也要记得立刻备份。其他备份方法对于文件备份,如果用FTP备份,有较多的手工操作,所以稍显麻烦,我们还可以选择用个软件将服务器上数据同步到本地,下面推荐几款命令行工具。Unix、Linux下面有个rsync用来做数据同步很方便, Windows下面有款cwRsync也可以达到同样效果。由于是命令行,所以需要写个bat批处理:@ECHO OFF ECHO ::开始备份服务器上面的文件到本地目录 rsync -ravP --links --hard-links --times --delete --exclude='excludePath/*' --exclude='download/*'user@your.com'/home/user/path1/home/USER/path2 /home/USER/path3' ./site ECHO ::数据备份结束 @ECHO ON PAUSEexclude可以多个,用来过滤那些不需要同步的目录或文件。USER@YOUR.COM则是登录虚拟主机的地址和用户名,后面的path1、path2、path3等,则是你想要同步的文件夹,会在你的本机目录里面按照服务器的结构同步,也就是后面的“./site”。具体其它的参数还可以参考其帮助文档。虽然这种方法也算是个手工的操作,点击批处理命令之后还需要输入服务器密码,但相比较而言毕竟文件不像数据库那样变化频繁,也算是较为简单的一种备份方法。 参考技术A 1、可以使用phpmyadmin手动备份
2、可以使用wordpress插件(数据库备份类的)备份,如果用插件,就百度搜索“wordpress数据库备份插件”

实战案例:编译安装基于 FastCGI 模式LAMP架构多虚拟主机WEB应用(WordPress 和Discuz)

编译安装基于 FastCGI 模式LAMP架构多虚拟主机WEB应用(WordPress 和Discuz)

1. 目标

实践目标:FastCGI模式(PHP-FPM基于TCP9000和UDS两种模式)LAMP架构的实现。

用独立的MySQL服务器存放博客和论坛的数据,并在另一台CentOS 7.9环境下编译安装基于FastCGI模式的PHP,并部署Apache多虚拟主机的WordPress和Discuz的网站。

2. 架构图及环境准备

实战案例:编译安装基于

# 两台服务器
1 Apache(httpd)+PHP (FastCGI模式):
Httpd-PHP
CentOS 7.9
IP: 192.168.250.47/24
10.3.28-MariaDB

2 Mariadb 服务器:
MariaDB
CentOS 8.4
IP: 192.168.250.48/24
10.3.28-MariaDB

# 软件包及版本: https://mariadb.com/downloads/
mariadb-10.4.22-linux-x86_64.tar.gz 二进制格式
mariadb-10.4.24-linux-x86_64.tar.gz

# mariadb-10.7.3-linux-systemd-x86_64.tar.gz 没搞清楚中间systemd 是什么意思
https://dlm.mariadb.com/browse/mariadb_server/192/1288/bintar-linux-systemd-x86_64/

httpd-2.4.52.tar.bz2
apr-1.7.0.tar.bz2
apr-util-1.6.1.tar.bz2
php-7.4.28.tar.xz

wordpress-5.9.1-zh_CN.zip
Discuz_X3.4_SC_UTF8_20220131.zip

https://mariadb.com/downloads/
https://mariadb.org/
https://www.php.net/downloads
https://httpd.apache.org/download.cgi
https://cn.wordpress.org/download/
https://www.dismall.com/thread-73-1-1.html

3. Maria数据库服务器

基本任务:在独立的数据库服务器(IP192.168.250.48)上用最新稳定版本mariadb-10.7.3-linux-systemd-x86_64.tar.gz,二进制安装10.7.3数据库,并创建 discuz和 wordpress两个数据库,做好授权给论坛和博客通过TCP端口连接调用。

3.1. 主机环境及安装包准备

官网下载地址:https://mariadb.org/download/

# 修改主机名  退出再登录 确保前缀变成新主机名
[root@CentOS84 ]#hostnamectl set-hostname MarriaDB-IP48

# 时钟同步
[root@MarriaDB-IP48 ]#systemctl enable --now chronyd.service
[root@MarriaDB-IP48 ]#

# 查看主机监听的端口,确保没有软件安装冲突
[root@MarriaDB-IP48 ]#cd /data/
[root@MarriaDB-IP48 ]#wget https://tw1.mirror.blendbyte.net/mariadb/mariadb-10.7.3/bintar-linux-systemd-x86_64/mariadb-10.7.3-linux-systemd-x86_64.tar.gz

3.2. MariaDB的安装和配置

# 查询是否有mysql账号,没有就创建
[root@MarriaDB-IP48 ]#getent passwd mysql

# 创建数据库账号 mysql 组 mysql 非主机登录
[root@MarriaDB-IP48 ]#useradd -r -s /sbin/nologin mysql

# 解压最新的mariadb安装包
[root@MarriaDB-IP48 ]#tar xvf mariadb-10.7.3-linux-systemd-x86_64.tar.gz -C /usr/local > /dev/nul

[root@MarriaDB-IP48 ]#ll /usr/local
drwxrwxr-x 11 summer summer 245 Feb 12 07:47 mariadb-10.7.3-linux-systemd-x86_64
[root@MarriaDB-IP48 ]#

# 进入目录并创建软链接
[root@MarriaDB-IP48 ]#cd /usr/local
[root@MarriaDB-IP48 ]#ln -sv mariadb-10.7.3-linux-systemd-x86_64 mysql
mysql -> mariadb-10.7.3-linux-systemd-x86_64

# 查看mysql目录下的文件权属,并修改
[root@MarriaDB-IP48 ]#cd mysql
[root@MarriaDB-IP48 ]#ll
total 164
drwxr-xr-x 2 summer summer 4096 Jan 19 01:31 bin
-rw-r--r-- 1 summer summer 17987 Feb 11 04:33 COPYING
-rw-r--r-- 1 summer summer 2093 Feb 11 04:33 CREDITS
drwxrwxr-x 3 summer summer 19 Feb 11 05:11 include
-rw-r--r-- 1 summer summer 8782 Feb 11 04:33 INSTALL-BINARY
drwxr-xr-x 5 summer summer 293 Jan 19 01:31 lib
drwxrwxr-x 5 summer summer 42 Feb 11 05:12 man
drwxrwxr-x 9 summer summer 4096 Feb 11 05:12 mysql-test
-rw-r--r-- 1 summer summer 2697 Feb 11 04:33 README.md
-rw-r--r-- 1 summer summer 19520 Feb 11 04:33 README-wsrep
drwxrwxr-x 2 summer summer 56 Feb 11 05:12 scripts
drwxrwxr-x 31 summer summer 4096 Feb 11 05:12 share
drwxrwxr-x 4 summer summer 4096 Feb 11 05:12 sql-bench
drwxrwxr-x 4 summer summer 180 Feb 11 05:12 support-files
-rw-r--r-- 1 summer summer 86263 Feb 11 04:33 THIRDPARTY

[root@MarriaDB-IP48 ]#chown -R root.root ./*
#上面的命令等同于 chown -R root:root /usr/local/mysql/

# 权属修改的确认
[root@MarriaDB-IP48 ]#ll
total 164
drwxr-xr-x 2 root root 4096 Jan 19 01:31 bin
-rw-r--r-- 1 root root 17987 Feb 11 04:33 COPYING
-rw-r--r-- 1 root root 2093 Feb 11 04:33 CREDITS
drwxrwxr-x 3 root root 19 Feb 11 05:11 include
-rw-r--r-- 1 root root 8782 Feb 11 04:33 INSTALL-BINARY
drwxr-xr-x 5 root root 293 Jan 19 01:31 lib
drwxrwxr-x 5 root root 42 Feb 11 05:12 man
drwxrwxr-x 9 root root 4096 Feb 11 05:12 mysql-test
-rw-r--r-- 1 root root 2697 Feb 11 04:33 README.md
-rw-r--r-- 1 root root 19520 Feb 11 04:33 README-wsrep
drwxrwxr-x 2 root root 56 Feb 11 05:12 scripts
drwxrwxr-x 31 root root 4096 Feb 11 05:12 share
drwxrwxr-x 4 root root 4096 Feb 11 05:12 sql-bench
drwxrwxr-x 4 root root 180 Feb 11 05:12 support-files
-rw-r--r-- 1 root root 86263 Feb 11 04:33 THIRDPARTY

# 创建数据库存放数据的目录,并授权mysql.mysql
[root@MarriaDB-IP48 ]#mkdir /data/mysql -p
[root@MarriaDB-IP48 ]#chown -R mysql.mysql /data/mysql

# 创建数据库配置文件目录,并编写配置文件 说明:本例的my.cnf属于极小化配置,需要根据生产需要做细化配置
[root@MarriaDB-IP48 ]#mkdir /etc/mysql

[root@MarriaDB-IP48 ]#vim /etc/mysql/my.cnf
[root@MarriaDB-IP48 ]#cat /etc/mysql/my.cnf
[mysqld]
server-id=1
log-bin
datadir=/data/mysql
socket=/data/mysql/mysql.sock
skip_name_resolve = on

log-error=/data/mysql/mysql.log
pid-file=/data/mysql/mysql.pid

[client]
port=3306
socket=/data/mysql/mysql.sock
[root@MarriaDB-IP48 ]#

## 进入数据库程序文件目录,安装依赖包,初始化安装数据库
[root@MarriaDB-IP48 ]#cd /usr/local/mysql
# 安装依赖包
[root@MarriaDB-IP48 ]#yum -y install libaio
# 初始化安装数据库
[root@MarriaDB-IP48 ]#./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
Installing MariaDB/MySQL system tables in /data/mysql ...
OK
...............

# 准备数据库的服务文件
[root@MarriaDB-IP48 ]#cp support-files/systemd/mariadb.service /usr/lib/systemd/system
[root@MarriaDB-IP48 ]#ll
drwxrwxr-x 4 root root 180 Feb 11 05:12 support-files

# 个性化数据库,定义专用的日志等目录,并授权
[root@MarriaDB-IP48 ]#mkdir /var/log/mariadb
[root@MarriaDB-IP48 ]#mkdir /var/run/mariadb

[root@MarriaDB-IP48 ]#chown mysql:mysql /var/log/mariadb
[root@MarriaDB-IP48 ]#chown mysql:mysql /var/run/mariadb

# 设置PATH变量并使之立刻生效
[root@MarriaDB-IP48 ]#echo PATH=/usr/local/mysql/bin:$PATH > /etc/profile.d/mysql.sh
[root@MarriaDB-IP48 ]#. /etc/profile.d/mysql.sh

# 启动服务,并设定为开机自动启动
[root@MarriaDB-IP48 ]#systemctl enable --now mariadb
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.

3.3. 验证数据库

# 查看监听
[root@MarriaDB-IP48 ]#ss -tln
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process

LISTEN 0 80 0.0.0.0:3306 0.0.0.0:*
LISTEN 0 80 [::]:3306 [::]:*

# 进入数据库
[root@MarriaDB-IP48 ]#mysql
Welcome to the MariaDB monitor. Commands end with ; or \\g.
Your MariaDB connection id is 4
Server version: 10.7.3-MariaDB-log MariaDB Server #此行看到数据库版本信息

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type help; or \\h for help. Type \\c to clear the current input statement.

# 查看库
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| test |
+----如何把本地WordPress网站迁移到虚拟主机

如何将 wordpress 备份文件从共享主机传输到 VPS (bluehost)?

如何从谷歌云平台下载 WordPress 文件

我想在本地主机 xampp 上恢复 wordpress 站点备份

实战案例:编译安装基于 FastCGI 模式LAMP架构多虚拟主机WEB应用(WordPress 和Discuz)

跟我学CMD实战系列之二 ——数据压缩备份