• 本站压缩包统一解压密码:crowsong.xyz
  • 请善用右上角的搜索功能和下方的标签功能
  • 文章存在时效性,请注意发布时间与最后修改时间

WordPress如何进行备份与如何进行主机迁移

WordPress 水之笔记 5年前 (2018-08-12) 最后修改:3年前 (2020-04-22) 230次浏览 0个评论
  • 1、对文件进行备份
  • 2、对数据库进行备份
  • 3、将 WordPress 迁移到其它主机
  • 4、参考资料

本身觉得迁移主机这个事情距离自己应该是很远的事情,结果没想到自己建站才 10 多天就要迁移了。在参考了别的大佬的文章之后自己也成功的将自己的站点从 Vultr 迁移到了 Linode 的主机上面去了,固写下这篇文章。
在参考本文章进行备份时,请注意替换自己的站点域名和自己设置的数据库的名字。


1、对文件进行备份
为了方便备份,我们可以建立一个文件夹存放备份的数据,在哪里都可以。

mkdir /home/backup

先将整个站点压缩到我们新建的文件夹下(以本博客crowsong.xyz为例,同时为了方便管理,笔者添加了备份日期)。

cd /home/wwwroot
tar -zcf crowsong.xyz-20180811.tar.gz crowsong.xyz
mv crowsong.xyz-20180811.tar.gz /home/backup/

至此文件备份结束。


2、对数据库进行备份
首先进入到我们专门用来备份的文件夹中。

cd /home/backup

之后我们可以通过使用lnmp database list这条命令来查看数据库列表,同时需要输入数据库 root 账号的密码。

lnmp database list

当我们查看好之后我们可以将相应的数据库备份出来,以crowdata为例。

mysqldump -uroot -p crowdata > crowdata-20180811.sql

请务必注意这里导出时使用的符号>与导入时使用的符号与之相反,不要搞错了。
至此数据库备份完毕,你可以通过 ftp 的方式将备份的内容下载下来,进行保存。


3、将 WordPress 迁移到其它主机
这里主要讲的是转移到不同服务商的 VPS 上,因为相同服务商的 VPS 大多都有快照备份的方式,迁移起来非常的方便。
首先我们要做一下准备工作,如果你仅仅像笔者一样只是想换个主机而已的话,其实迁移起来非常的简单。
首先你需要搭建一个与之前主机相同的环境,可以使用 lnmp 直接搭建,这里笔者直接使用 lnmp1.5 直接再次搭建了一个相同的环境。
紧接着使用lnmp vhost add命令添加一个与之前主机相同的站点,需要注意的是域名需要与之前的相同,数据库的名称密码等也需要与之前的相同。如果你的上一个站点使用了免费 SSL 证书提供商 Letsencrypt 的证书,这里你也需要添加上去。
添加完之后我们开始将之前备份的文件与数据库文件全部上传上去,你可以选择使用 ftp 的方式上传,你也可以使用 ssh 的方式在两个 VPS 之间传送,这样速度会更快一些。
还是以笔者的站点crowsong.xyz和数据库crowdata为例,假设我们新的 VPS 的 IP 是8.8.8.8,SSH 的端口是2333,则我们需要在原主机上这个输入命令:

cd /home/backup
scp -P 2333 crowsong.xyz-20180811.tar.gz [email protected]:/home/backup
scp -P 2333 crowdata-20180811.sql [email protected]:/home/backup

之后需要输入新的 VPS 的密码。
需要注意的是-P是大写的。
如果你在传输的时候收到了WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!这样的提示,你需要输入vi ~/.ssh/known_hosts将与你新的 VPS IP 相关的内容删掉即可。

传输成功后我们回到新的 VPS 上面,将传输过来的文件内容解压并替换掉之前我们使用 lnmp 创建的那个。

cp /home/backup/crowsong.xyz-20180811.tar.gz /home/wwwroot
cd /home/wwwroot
tar -zxf crowsong.xyz-20180811.tar.gz
rm -rf crowsong.xyz-20180811.tar.gz

同时迁移之后我们需要重新赋予网站根目录文件的可写权限。

chmod -R 755 /home/wwwroot/crowsong.xyz
chown -R www /home/wwwroot/crowsong.xyz

有可能会出现以下提示

chmod: 更改"/home/wwwroot/crowsong.xyz/.user.ini" 的权限: 不允许的操作

这个时候我们需要先使用chattr -i命令将该文件解锁后,再次赋予权限。

chattr -i /home/wwwroot/crowsong.xyz/.user.ini

之后,我们导入数据库,仍以crowdata为例:

cd /home/backup
mysql -uroot -p crowdata < crowdata-20180811.sql

请务必注意这里导入时使用的符号<导出时使用的符号与之相反,不要搞错了。
如果忘记了数据库的名字可以先尝试使用 mysql 命令来查看一下所有的数据库。
首先登入到 mysql 当中。

mysql -h localhost -u 用戶名 -p 密码

登入成功时会提示欢迎语且输入前缀变为mysql>
之后使用命令显示所有的数据库,注意结尾必须有分号。

show databases;

如果环境相同,则至此导入工作结束。

但是如果你使用 HTTPS 的话,你还需要重新设定 301 强制跳转,因为这个不在备份的文件之内。
笔者这里使用的是 Nginx,若你使用的是 Apache 的话,请自行谷歌或者百度。
进入/usr/local/nginx/conf/vhost中,里面有一个以自己域名命名的配置文件,笔者的为crowsong.xyz.conf,编辑该文件。

vim /usr/local/nginx/conf/vhost/crowsong.xyz.conf

在 80 端口 server 处添加,如下图

if ($scheme = http ) {
return 301 https://$host$request_uri;
}


之后重启 Nginx 即可。


参考资料:

本文章笔记版本地址http://ccdd6ec5.wiz03.com/share/s/3cTmX51TMQ-b2QTact03UPg82VjkPe1KkkjJ2U_Zzz00z9-z


水之笔记 , 版权所有丨如未注明 , 均为原创丨转载请注明出自 水之笔记的博客 crowsong.xyz
小站不易,若您觉得文章对您有所帮助,您可以在网页右上方使用支付宝赞助下小站或者扫描下支付宝红包。
喜欢 (1)
发表我的评论
取消评论

表情 加粗 删除线 居中 斜体

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址