前面跟大家说了,博主的博客不仅改版了同时也搬到了 Vultr 的 VPS 上。实不相瞒,这是我这第一次给博客搬家,过程中多少有点忐忑的,生怕自己碰上了什么坑还不知道。不过现在看来,WordPress 搬家还是挺简单的,下面就给大家分享下我自己的经验,好让还对此有所困惑而不敢随便搬迁博客的朋友,能有所参考,放下心来。
在开始之前,先给大家交代一下,过程都是我自己凭着记忆写的,有些地方的步骤,不只是有我这一种方法,我也会尽量告知大家,如有补充之处,请留言告知。
1.备份
关于备份,其实有很多种方法,比如如果你使用了面板管理工具,那么它很有可能就自带备份网站和数据库的功能,操作很方便,还有使用 WordPress 插件配合一些服务商进行网站的快速备份和迁移的,因为这些都涉及到一些额外的操作,虽然就搬迁过程来说是更轻松了,但是难免会带来一些额外的问题,所以这里就不多加说明了,只是告诉大家还有这种做法,以给大家提供更多的选择。
而我选择的备份手段,可以说是很容易操作,也不要费什么心的,以下便是我的备份操作。
备份数据库
数据库是博客非常重要的一部分,里面保存了你的博文等内容,是必须要备份的。备份的方法我给大家说两种。
1.用 WordPress 插件备份
2.手动进行数据库备份
WordPress 中用来备份数据库的插件有很多,这里就不一一说明了,它们的功能基本都类似。
我选择的是自己手动备份数据库,也就是说用数据库管理程序进行操作。这么做有几点好处,一是备份出来的数据库比较完整,也容易恢复;二是因为搬迁过后也需要对数据库进行操作,所以用数据库管理程序进行备份对后面的恢复操作也能省点心;三是可以对备份的数据库进行更加详细的设置,配合官方的教程不容易出错。
关于数据库的手动备份,首先要说明的是我使用的数据库管理程序是 phpMyAdmin,这个想必大家都有听过。如果你没有用过它,也不要担心,下载一个并解压上传到你网站的某个目录里,然后通过网址+目录的形式即可对它进行访问和数据库管理,不需要额外的设置(举例,解压上传到了网站 test.com 根目录下的 phpMyAdmin 目录,访问网址就是 test.com/phpMyAdmin)。
在 WordPress 的官方教程中,有教怎么进行数据库备份的,大家可以看看:https://codex.wordpress.org/zh-cn:WordPress_备份
但是这个教程里的东西比较旧了,所以我自己摸索了一番,下面是具体的 phpMyAdmin 备份数据库教程,参考了官方教程,有不对之处欢迎大家指出。
1.上传好 phpMyAdmin,并打开相应网址访问(不知道的看前面说的),输入用户名和密码登录
用户名和密码在你最初安装数据库的时候就应该有提供,一般默认的是 Root 用户,密码为你自己设置的或者系统自动生成的,如果你不知道,请搜索下相关的教程如何找回或者重置。
2.登录之后,在页面左侧应该有你自己创建的 WordPress 数据库名称显示(截图名称仅供参考),页面上方应该有导出功能
3.如果你的数据库中含有不相关或者你不想备份的东西,请现在左侧点击你的数据库,再点击“导出”功能,如果没有,那么请直接点击“导出”,然后选择导出方式为“自定义”,如下图:
导出格式:此处根据你自己想使用的来选择,一般为 SQL
如果你是先点击了具体的数据库再选择导出的,那么上图箭头里的内容会显示出来具体的数据库表让你选择哪些导出,如果是选择直接导出,那么上图会显示可以导出的数据库,比如我这里选择的直接导出,显示出来我可以导出的数据库名为 wordpress。
PS:蓝色的为被选中状态,也就是会被导出的。
4.输出设置
这部分不用太在意,保持默认即可。唯一需要主要的是文件的字符集,一般是 utf-8,根据你数据库的不同可能在这里需要更改。
5.格式特定选项,这里一般不需要操作,给图参考下
6.对象创建选项
这部分官方的教程里有说怎么设置,不过因为使用的很旧的版本所以和现在的设置有些出入,下图是我根据官方的教程进行的设置,这里不清楚是不是对,只能告知大家我这么操作之后恢复没遇到问题(如果有了解的请务必告知我一下)。
6.数据库创建选项
以上的完成之后点击“执行”,过一会儿你应该就能下载到你的数据库备份了,格式为 xxx.sql(根据前面的输出设置也可能是压缩包)。
如果你觉得麻烦,也可以用数据库备份插件备份,然后用 phpMyAdmin 导入,但我不确定这样备份的数据库是否和它兼容。
备份网站有关文件
这一步就简单很多了,使用 SSH 或者 FTP 登录我们的 VPS 进行文件管理,找到博客的文件和文件夹直接整个下载保存下来,或者打包好下载也可以,这里看你自己喜欢。由于我这里使用的是命令从旧 VPS 快速转移文件到新 VPS,所以这一步是没有的,这个后面会和大家说,你也可以按我这么做,会很方便。
注:网站的文件,保存路径一般是/home/wwwroot/你的网站域名,请备份好该文件夹下的所有文件。
2.新 VPS 环境搭建
在备份完成之后,正式搬迁之前,你还要先设定好新 VPS 上的环境,好让网站在搬过来以后即可直接使用。
你可能需要做好的地方:
- 整体环境的搭建。如果你使用的面版,请安装好你的面板并将面板里的设置和旧 VPS 上的想对应。如果不是,请安装好网站必备的环境(没有更多的需求请尽量安装一样的环境),如 LNMP,或者 LAMP,这个根据旧 VPS 上的环境选择,具体安装方法这里不作说明,一般官网上会有。
- 安装好相关的扩展。同样根据你原 VPS 上的选择安装,比如你原 VPS 上用了 OPcache,那么最好新 VPS 上也安装好。
- 注意选择数据库的版本和 PHP 的版本,尽量和原 VPS 上的保持一致或者不要版本差距太大。
- 防火墙规则与原 VPS 的保持一致。
- 创建一个网站环境(虚拟主机),这方面教程请看你选择的环境中有关的配置说明
- 设置好网站规则。比如你选择安装的 Nginx,那么请注意配置文件中书写的规则不要和原 VPS 上的太大。如果你没有把握,可以直接复制原 VPS 上的文件,直接覆盖过来。
- 注意 WordPress 配置文件中设置操作数据库的用户和密码,在新搭建好的 VPS 数据库中创建好同样的用户并使用相同的密码,权限设置保持一致。
这部分只能给大家一些提醒,因为涉及的东西比较多,每个人也不都是按照和我一样的设置,所以这里就不细说了,只需要主要和原 VPS 上的尽量保持一致即可。
3.搬迁进行时,恢复备份
如果前面的环境配置都弄好了,那么就可以开始恢复备份了。首先我们从恢复数据库说起。
注意:下面的一些操作环境是 LNMP ,不同的环境操作上可能不太一样,但大体思路差不多。
恢复数据库
在搭建好环境并配置好防火墙以后,此时你的 VPS 应该就可以用 IP 地址进行访问了。在网站有关文件还没迁移过来时,/home/wwwroot/目录下应该有一个默认的 default 文件夹(注:此处为 LNMP 的设置,不同环境可能稍有差别),该文件夹下的文件可以通过 IP 地址进行访问,我们按照原先的方法把 phpMyAdmin 给放到该目录下,比如放到 /home/wwwroot/default/phpMyAdmin 下,然后你就可以通过 IP/phpMyAdmin 打开 phpMyAdmin 了。
1.登录 phpMyAdmin
这部分就不多说了,用你新 VPS 上设置好的数据库用户和密码登录。
2.创建账户
登录后点击“账户”创建一个和原 VPS 上操作 WordPress 数据库相同的账户,如果你不知道这个账户,可以去看你的网站根目录下的 wp-config.php 文件,里面会写有你的数据库操作用户名和密码。
进入后点击“新增用户账户”,会有如下界面出来:
此处不需要太多操作,填写好你前面获得的 WordPress 数据库操作的用户名(User name)和密码即可,后面的用户账户数据库和全局权限都留空,当然你有需求也可以自己选择选上,但请千万明白你这么操作的结果。
PS:如果你不想创建原有的用户和密码,这里可以随你自己喜欢的来,相应的在把网站搬过来以后,你需要改变 wp-config.php 文件里的用户名和密码为新创建的用户名和密码。
3.导入数据库
在计算机里找到你前面保存好的 xxx.sql 文件导入即可,导入设置可以参考下面的:
注意文件的字符集要和你前面导出设置的一致。
后面的设置如下:
格式和 SQL 兼容模式要和前面导出的设置一致,最后一个“不要给零值使用自增”,请根据自己的情况选择,我这里是取消勾选了的(因为该功能好像会导致导入的数据库有问题)。
4.设置新增的账户对 WordPress 数据库的权限
点击“账户”,在下面的账户中选择你前面创建的用来操作 WordPress 账户,点击它后面的“修改权限”。
点击之后注意看这里会多出来一些选项:
点击“数据库”,在新页面里会看到这么个功能:
选择你的 WordPress 数据库,然后在下面的全局权限里勾选“全选”。如下图:
完成之后,点击“执行”,到这里对数据库的恢复操作就完成了。
恢复网站有关文件
如果在这里你用得是前面说的下载保存或者打包保存的方法,那么当你创建好网站环境或者虚拟主机之后,在/home/wwwroot/下应该会有个以你的网站网址或者类似的东西命名的文件夹,直接把你下载下来的东西复制或者解压到这里就搞定了。
如果你想用和我一样的办法,请看下面的操作说明:
首先,用我这种方法是不需要你自己保存网站有关文件的,可以说是一键迁移了~在使用这种方法时,首先你要保证你的两台 VPS 都处于在线运行的状态,且你已经按照我的说明昨做完了前面的所有步骤。
那么下面正式开始!
我们先假设,原网站的数据位于旧 VPS 的/home/wwwroot/old下,而你创建的新环境(虚拟主机),使用的是新 VPS 的/home/wwwroot/new 文件夹。
1.SSH 登录你的旧 VPS,使用如下命令进入/home/wwwroot
cd /home/wwwroot
2.记住你的新 VPS IP 地址和你使用的 SSH 端口,然后在旧 VPS 上继续输入如下命令
tar czf - old | ssh root@IP -p 22 tar xzf - -C /home/wwwroot
解释一下,old 说的是你在 wwwroot 目录下的原网站的数据保存文件夹名字,root@IP 这里需要你填写的是你的新 VPS 登录使用的用户名@新 VPS IP,后面的 22 是默认的 SSH 端口号,如果你改变过,要写成你改了的那个端口号,最后的/home/wwwroot是要把旧 VPS 上的 old 目录复制到新 VPS 上的 /home/wwwroot 目录下,如有需要请自行更改文件夹路径。
3.输完上面的命令后,旧 VPS 会要求提输入新 VPS 的连接密码,输入后回车确认即可。
4.在输完密码确认之后,你的旧 VPS 里的 old 文件夹已经开始被复制到新 VPS 相应的目录下,此时只需要等待完成即可。
5.传输完成后,旧 VPS 应该会恢复到原本的可以输入命令的状态,这时候就可以断开连接了。
6.还记得最开始说的,原网站的数据位于旧 VPS 的/home/wwwroot/old下,而你创建的新环境(虚拟主机),使用的是新 VPS 的/home/wwwroot/new 文件夹这个吗?如果 old 和 new 文件夹的名字是一样的,那么你不需要做什么更改,这个时候已经做完了,如果不是,也只需要把 old 改名为 new 并删除原有的 new 文件夹,或者将 old 里的文件夹和文件转移到 new 文件夹下就可以了。
7.做完这些后,你的网站基本已经迁移完毕了,此时记得检查你的网站规则配置是否存在问题,已经 /home/wwwroot/new 的文件夹权限和所有者等信息是否正常。如不正常,可以再进行更改。
4.迁移完成,后期调试及域名绑定 IP 变更
上面的昨晚之后,基本上你的网站搬迁一事就搞定了,此时先不要着急访问,如果你的新 VPS 和旧 VPS IP 不一样,需要先到你的域名管理商那里,对域名绑定的 IP 进行变更操作,注意这里会有个 TTL 值,也就是变更操作生效的时间。
IP 绑定搞定之后,你就可以像平常一样开网站试试访问和各项功能是否正常了,如不正常,再慢慢来进行调试。
PS:这时候的不正常,大多都是前面第 2 步设置上存在问题所致,注意下防火墙设置和网站的规则设置。
最后恭喜你们成功搬迁博客,如果本文能对你起到帮助那就再好不过了!如果后面我还有时间的话,再给大家说说关于 Linux 防火墙的设置吧!