首先我们得在生产上有一个备份文件,这个备份可以手工去作,也可以使用一些WordPress插件来完成,比如我喜欢用BackUpWordPress这个插件。WordPress备份主要是备份文件和备份数据库。BackUpWordPress插件设置比较简单。且能选择备份文件、数据还是两者一起备份。手工备份的话,无非是将WordPress目录打包以及导出WordPress数据库。导出MySQL数据库一条命令即可:
mysqldump -uusername -ppassword wpdatabasename >backup.sql
麻烦之处在于打包备份WordPress站点文件时要指定排除一些目录,比如日志和临时文件目录时,手工操作比较麻烦。所以还是建议直接使用WordPress备份插件生成的备份包比较简单。
现在我们将一个这样的备份文件导入到本地站点:
一、在测试环境,比如CentOS虚拟机里,用wget或其它ftp工具获得备份文件。
二、建议停止Web服务,比如Nginx可以执行service nginx stop。但MySQL服务不需要停。因为一会儿要用它导入数据。
三、清空测试环境WordPress根目录。
四、将WordPress备份文件解压缩至该根目录。注意目录路径参数一定要正确。例如:BackUpWordPress插件产生的默认是zip压缩包,我们可以用unzip -d /home/wordpress backdata.zip这样一条命令,将zip包内的所有文件,解压缩至虚拟CentOS的 /home/wordpress这个目录下。
五、进入/home/wordpress,执行chown -R user:group *命令。由于生产与测试上Wordpress用户属组可能与本地不同,此命令将所有文件属性权限改为测试环境的用户属组。
六、下来是恢复backup.sql这个数据库备份文件。对于BackUpWordPress插件,它直接将导出的数据库备份文件放在WordPress根目录并一起打包进了zip压缩包。我们只需要将backup.sql恢复入测试环境的MySQL数据库即可。但是恢复前需要将数据中的站点网址改为本地站点地址:
sed -i "s/www.16chun.com/192.168.1.100/g" database.sql
此命令将数据中所有生产网址替换成本地地址192.168.1.100。当然我们也可以用VI来做,用VI打开database.sql,然后在VI的命令模式下,输入:
%s/www.16chun.com/192.168.1.100/g
可以看出,替换规则基本是一样的。
七、下面导入数据就简单了,执行如下命令:
mysql -uusername -ppassword wpdatabasename -e"source database.sql"
database.sql备份文件只要求数据库已存在。在执行database.sql时若测试库中的WordPress表已经存在,则会删除表并重新创建和导入。若后面发现导入测试库的数据都是乱码,且勿惊慌。一般原因是生产与测试字符代码设置不同的缘故,在导入时加上字符集参数一般就可解决问题。
八、启动测试环境web服务。
然后在浏览器中输入本地测试地址,就可以看到生产环境一模一样的复制到了本地。在上面可以随意做任何改动,调试和测试,以后再放心的更新到生产环境。
原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/1778.html