首页 > 技术随笔, 疑难杂症 > 博客空间迁移三步走

博客空间迁移三步走

技术随笔, 疑难杂症 ,

本以为空间迁移是件至少不会特别麻烦的事情,特别是当两个空间提供商提供的主机配置很相似的情况下。结果昨天一天换了三家免费空间(DNS不断的被我改来改去),都没搞定迁移工作,今天找到了AtbHost,也是一家老牌的空间提供商,据说速度和稳定性都挺不错的,所以决定再试一把。最后在历经很多疑难问题之后总算迁移成功,现在说说我转移博客空间时的一些思考。

博客迁移第一步——选好合适的新空间

这实际上是废话,你要搬家,不先找好地方就把东西搬出来能行吗~但是找新空间的时候需要注意一些事项。

新空间主机的配置最好和原空间的相近

相近的配置能够为你节省不少的精力和麻烦。我昨天找的其中一家免费空间,好不容易注册上了,网站都上传上去了,结果在捣腾数据库的时候发现,新空间的Mysql居然是4.1版本的,而我原先用的主机是最新的5.1。我不知道Mysql对于版本降级支持得怎么样,反正我昨天自己试了很多方法,包括按照Mysql官网说的,把兼容模式调到Mysql40也不行,Google了很多文章,大多数是讲如何平稳从4.0升级到5.0的,降级的说得不多。后来只有放弃此空间。因此相近的配置,如数据库平台及版本,主机平台,PHP版本等等,确实能够省不少心。

尽量选择老牌的国外空间提供商

现在提供空间的有很多,国外的相比国内的成熟,而且说实在,在国内做博客很不自由,要备案,不能随意谈论政治(如果你已经习惯了政府的愚民教育,你可能对时事啥的都不会感兴趣),否则动不动就把你河蟹了,连通知都不通知你一声。而国外很多空间提供商毕竟做了比较久,也比较言论自由一些。老牌的提供商通常意味着可靠的服务。

阅读空间服务说明

空间服务说明很重要,它通常会告诉你,当你注册之后你能够享受到什么样的权益,以及你需要遵循什么样的义务,空间提供商会不会在不通知你的情况下直接关闭你的站点,等等。国外的法律相比国内健全很多,因此国外空间提供商的这种“合同”式的服务说明通常是需要重视的。

博客迁移第二步——数据库迁移

现在大多数平台使用的数据库都是MySql,用PHPWind管理。数据库迁移工作流程实际上比较简单。你需要登陆到你原来的Mysql平台管理界面上,然后选择“导出”,选择导出文件的格式,通常使用gzip可以大大降低传输带宽。

image

然后到新的Mysql平台管理界面上选择“导入(Import)”,上传之前导出的文件即可。

当数据库偏大的时候,迁移工作通常会比较麻烦,经常需要执行多次才能成功。PHPWind提供了“断点续导”(我瞎编的词^^)的功能,导出的sql脚本在执行到快超时的时候会记住当前执行的位置,然后提交事务,然后你再重新上传一次,下一次就会从上一次执行的位置开始执行。但我在试验的时候却出错,提供@timezone为null什么的。因为sql文件太大了,UltraEdit和Notepad2都无法正常查看,所以我没能找到为什么出错的详细原因,猜测是因为分批到的时候,有一个变量被定义在了上一批导入的脚本中,而在下一批导入的脚本中又使用了这个变量。纯属瞎扯,不知道靠不靠谱~

我的数据库导出的sql有5M多,gzip压缩完之后为900多K,但是用gzip导入的时候却经常出错,要么超时,要么分批导的时候提示@timezone为null。后来把gzip中的sql文件解压出来直接导入就没有任何问题了。不知道是什么问题。

还有需要注意的是数据库编码的问题。需要保持原数据库和新数据库表的编码一致,否则有可能会造成查询得到的结果显示乱码的问题。

博客迁移第三步——网站迁移

相比数据库迁移,网站迁移通常就简单多了。只需要把原网站的内容一扒下来,修改数据库等配置,然后FTP上传到新空间即可。等DNS更新完就可以直接看到网站熟悉的面孔了。

通常网站迁移都会相对比较慢,特别是当图片Host在自己空间上的时候。而很多免费空间提供的Ftp地址都是以域名来访问的,如果DNS还没更新,那么你是不能够通过原先的域名去访问FTP的。但是我发现,实际上很多免费空间他们都提供了另外一个入口让你访问FTP或者控制面板等。有一些会在邮件中说明,有一些则没有明说。像AtbHost,邮件写得非常简略,只告诉我可以通过原先的域名加上2082端口来访问控制面板,同时需要修改DNS使之指向atbhost自己的DNS服务器。我压根就不知道怎么访问FTP。后来在论坛上看到别人回的贴才知道,原来可以通过server02.atbhost.net这个地址来访问FTP以及CPanel。所以如果你也遇到这样的情况,可以多上官方的论坛,看看别人的问题及相关回帖中是否有一些有价值的信息被漏掉了。

WordPress迁移到AtbHost遇到的问题

我的Wordpress系统从000webhost迁移到Atbhost之后,连连受挫,先是访问什么页面都会被重定向到500的错误页面(实际上HTTP状态码并不是500)。看了论坛上有人说AtbHost不支持wordpress,访问老是500,我就开始紧张——这次别又浪费时间了,后来看到CPanel中的安装应用程序有wordpress,舒了一口气。后来发现可疑对象htaccess文件。我打开看看,里面的东西全是wp-supercache自动生成的rewrite规则。我把这个文件删了之后访问首页就正常了。

正欲高兴,发现点任何一篇文章都被重定向到404的错误页面(实际上状态码又不是404)。这个症状和我昨天用的另外一家空间遇到的症状一摸一样。我一开始怀疑的是Url中包含UTF-8编码过的中文的缘故。还上论坛发帖询问是否apache服务器的默认字符集不是UTF-8导致Url解析不了什么的。没人搭理我。我只有自己再尝试了。

后来发现,即使那些Url中只包含纯粹的英文字母也会到了404页面。这就说明了并不是UTF-8编码的问题了,而很有可能是Url Rewrite的问题。我登陆了CPanel,却没有找到和Rewrite相关的配置项。后来在wordpress后台(后台不会被重定向到404),每个选项都看了看,发现了可疑对象,就是Permalink Settings,也就是永久链接设置,这个选项是用来设置文章的永久链接Url的格式的。看上去和Url Rewrite很有关系。我尝试着将其修改成其他的永久链接格式之后,发现竟然成功了/(ㄒoㄒ)/~~ 可把我感动的,后来我把格式改成原来的那样(不改回去Google上的结果全都404了),也还是没问题了。我估摸着,应该是当保存永久链接设置之后,Wordpress系统会向服务器写入一些配置性的选项(不是写到网站内的某个文件上),这些选项直接影响到Url Rewrite的成功与否。由于我的博客是直接从另外一个空间拷过来的,因此这些配置自然也就丢失了,Rewrite的规则自然就不对了,因此重新Save一下Wordpress就会将最新的规则写入服务器配置,这样就解决了问题了。

希望上面这些东西对你有帮助~

——Kevin Yang

本博客遵循CC协议2.5,即署名-非商业性使用-相同方式共享
写作很辛苦,转载请注明作者以及原文链接~
如果你喜欢我的文章,你可以订阅我的博客:-D点击订阅我的文章

  1. getbeta
    | #1

    看的不是很明白~~

  1. 暂时没有trackbacks.