从周六晚上开始计划将我原本架在Fenng@Dreamhost主机上的blog转移到自己在Dreamhost的主机上,经过周日,周一2天,基本上所有的DNS已经正确指向了我的新主机,意味着迁移成功结束。
总体上说来迁移Wordpress并不是什么困难的事情,其实昨天晚上就应该迁移结束的,但是由于修改域名解析的延迟问题再加上今天Dreamhost出了一些小问题,所以有些拖延。
总结一下迁移步骤,给其他人做个参考,同时也给自己留个笔记。
1。首先自己用Freemind简单画了一个Plan,整理好自己的思路,这是做任何有风险的工作前必须的事情。当然你们现在看到的这个版本是后来做过修改的,随着迁移工作的进行,这张图也在不断的更改,但是大体上的思路没有变化。
2。按照Plan一步一步进行。首先登陆到shell中,把Wordpress的整个安装目录全部打包。我是直接将打包文件FTP下载到本地然后再FTP上传到新的主机上,如果有支持FXP的FTP客户端就不用如此麻烦,直接两个主机之间传送文件就可以,另外既然有shell,当然也可以直接SCP,速度更快。之所以我下载到本地是因为想保留一个备份。
3。备份完了程序,接下来需要备份数据库,这是最紧要的地方,Dreamhost提供了phpMyAdmin这样的web界面来管理MySQL库,所以备份非常简单。
登录phpMyAdmin -> 选中需要备份的数据库 -> 点击右侧的Export -> 选中数据库中的所有表 -> 勾选”Save as file” -> 选择”gzipped”方式压缩 -> Go,成功执行之后有一份gzip文件会下载到本地。
4。如何保证程序和数据库都是成功备份的,最好的方法就是测试,所以接下来需要建立一个测试站点,Dreamhost允许添加的Domain数量没有限制,所以非常方便测试。添加一个新的domain,添加一个新的mysql库,这些在Panel中都可以完成。然后测试导入刚才备份的数据库。
登录phpMyAdmin -> 选中需要导入的数据库 -> 点击右侧的SQL -> Browse选择刚才下载到本地的备份文件 -> Compression选择”gzipped” -> Go。成功之后,所有的表会在左侧显示出来。
备注:网上经常会看到导出导入MySQL数据库出现乱码的文章,当初我也担心这个,后来实践证明MySQL4.1版本导入到5.0版本并没有出现乱码。
5。由于域名和一些路径可能发生的变化,所以我们要继续修改导入后的数据,通过phpMyAdmin同样可以完成。需要修改的表是wp-options,需要修改的纪录包括:siteurl, fileupload_realpath, fileupload_url,至于修改的内容如果自己设置过Wordpress的话,就不用多说了吧,都是WP后台管理页面Options部分的值。
6。修改完数据库以后,还必须修改Wordpress连接数据库的配置文件,配置文件是wp-config.php,位于WP安装根目录下,打开一看就知道了,无非是数据库名,用户名,密码什么的(密码明文保存还真是不怎么安全),修改成能够连接新建数据库的参数即可。
7。此时已经可以登录新的站点了(当然首先要保证DNS已经解析成功了,可能会有几个小时到十几个小时的延迟),检查各个页面是否正常,我由于启用了用来图形化显示文章标题的Head-Image插件,所以还需要修改这个插件的配置,不具有共通性,不再赘述。
8。如果至此一切正常,表示迁移已经基本上没有问题了。而我的情况比较特殊,由于跟Fenng同时都是用Dreamhost提供的虚拟主机,所以当他还在manage我的blog.dbform.com域名时,我无法把这个域名加入到我的帐号中,会报已经存在,所以只能要Fenng先删除他那边的信息,然后我再重新加入,所以无法保证无缝迁移,如果大家今天无法访问我的blog,那就是因为这个原因。
9。Fenng删除掉他那边的信息之后,还需要等待Dreamhost彻底将这个信息从各个DNS中清除干净,这一步也等了不少时间。然后将blog.dbform.com添加到我的帐号中,再接下来的工作就跟上面测试流程一样了,转移WP程序文件,创建新的MySQL库,导入数据,修改相应配置。然后等待DNS全部更新到我这个新的主机上。
基本上整个过程就是这样了,中间Dreamhost出现了MySQL站点无法访问的错误,又出现了bad_httpd_conf的错误,不过通过跟support的邮件沟通,都算解决了。好在我这个也不是什么要紧站点,瘫个几天没啥事儿。
今天是个好日子~吉祥的事情都能成^_^
猪
太阳哥哥情人节快乐
我的巧克力呢?
又能访问了,好!
呵呵,终于我可以访问了。祝贺!晚上给你发一篇PR BLog 😉
你估计是最晚一个能访问的了,呵呵
这么一迁移,我的feedburner订阅统计掉到个位数了….
我就是想从mysql 4.1转入mysql 5,结果还是有乱码,郁闷