WordPress博客网站的备份与迁移完全攻略(支持域名更换)

网络 Sergio 308℃ 0评论

1. 为什么需要备份和迁移

  1. 我们一开始图便宜,买的渣性能的VPS(Virtual private server),后期需要升级或换主机商;
  2. 新手一般安全技能有限,VPS极有可能遭受到攻击,这种情况下,有可能需要重装系统;
  3. 自己在服务器搞一些不可描述的服务,结果导致服务器被封,需要换个服务器;
  4. 复制自己的网站

2. 本文的重点和特点

  1. 区别于大多数的迁移教程,本文只需要网站目录备份和数据库备份,即可恢复一个wordpress网站
  2. 不使用WordPress的插件,因为插件有可能变化,那这篇教程就失效了。(实际上只用网站目录备份和数据库备份即可恢复网站)
  3. 本文用到了宝塔面板,因为这个面板管理起网站服务非常方便。方便在三个方面:新建网站、新建ftp、管理MySQL数据库。本教程也适用于其他面板或者不用面板的用户。
  4. 本文支持更换域名

3. 迁移的原理

3.1 一个WordPress网站是如何工作的

  1. 在nginx中需要设置域名(以example.com为例)和端口(默认为80,只有开启SSL才会有443),一旦有人访问example.com,浏览器直接找到服务器的网址并指向80端口。
  2. nginx内与域名和端口一并设置的还有网站在服务器上的目录(一般为/www/wwwroot/example.com),以及目录内一些默认的文件如index.php。
  3. index.php是网站的入口,也是网站服务的端口,nginx一旦获知有浏览器访问了80端口,就会在index.php的指引下,提供整个网站的服务。
  4. 只要设置好nginx,重启nginx服务,它就向外界提供网页服务。网页服务的数据是网站目录下所有的文件,用户无需管nginx的内部原理。只要整个目录内文件是完整的,即可发现浏览器访问到了正确的资源。

3.2 迁移的时候哪些地方需要设置/修改

首先需要明确的一点是,一个网站内所有页面的链接,全部是跟域名example.com有关的,里面没有任何的服务器IP的信息。

这也是能将一个网站能快速迁移到其他服务器的基础。引申一下,就好理解,为什么对某些不存在的网站封的是域名而不是服务器IP。

我们假设将网站从oldsite.com迁移到newsite.com,需要以下几步:

  1. 备份老网站的整个目录和数据库,同时应该也有网站的用户、密码和数据库的数据库名字、用户名、密码;
  2. nginx新建网站,域名就是newsite.com,同时新建一个newsite.com的文件夹。这一步用宝塔面板一分钟就能搞定。
  3. 将老网站解压到newsite.com目录下,确保index.php所在的目录直接就是newsite.com下
  4. 用phpMyAdmin等软件修改老板数据库的数据。主要操作:将所有的oldsite.com替换成newsite.com,下文会给出哪些地方需要修改。
  5. 导入MySQL数据库。用宝塔面板可以一步搞定。上一步和这一步可以合起来做,先导入数据库,再用phpMyAdmin修改。
  6. 查看网站目录下wp-config.php文件内,数据库的设置是否正确,如果不正确,可以修改。
  7. 迁移完毕,enjoy it!

3.3 WordPress迁移图文教程(基于宝塔面板)

假设旧网站是sergio07.com,新网站域名为new.sergio07.com

3.3.1 新建网站new.sergio07.com

可以看到网站直接监听80端口

3.3.2 新建数据库new_sergio07_com,并将旧数据库恢复到新数据

3.3.3 查找数据库中的旧域名,更换为新域名

主要有两处需要替换:

  1. wp_options->option values,如果不替换,找不到管理后台。
  2. wp_posts->post_content 和 wp_posts->guid,这里是发表的文章的链接,如不修改找不到指定的文章。

步骤2批量执行语句

UPDATE wp_posts SET post_content = replace(post_content, ‘http://sergio07.com’, ‘http://new.sergio07.com’);

UPDATE wp_posts SET post_content = replace(post_content, ‘https://sergio07.com’, ‘https://new.sergio07.com’);
UPDATE wp_posts SET guid = replace( guid, ‘http://sergio07.com’, ‘http://new.sergio07.com’ );
UPDATE wp_posts SET guid = replace( guid, ‘http://sergio07.com’, ‘http://new.sergio07.com’ );

3.3.4 将旧网站解压到新网站,并修改对应的入口

主要修改两处地方:

  1. wp-config.php,这里存放了数据库的内容,因此要修改
  2. .user.ini,这里指明了网站的位置

3.3.5 至此修改完毕,打开new.sergio07.com即可看到和sergio07.com一模一样的一个网站

转载请注明:Sergio Blog » WordPress博客网站的备份与迁移完全攻略(支持域名更换)

喜欢 (1)
发表我的评论
取消评论
表情

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

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(1)个小伙伴在吐槽
  1. 大佬说的很详细,小白跟着做轻松搞定,网上一堆SB教程什么把数据库网站备份再上传就好了,有的说了改域名也没说后面要改的两个文件
    小老弟2019-07-08 00:51 回复