搬家的麻烦

前天下了决心要换一个主机空间,昨天就开始憋不住了。在一家比较有好感的IDC先注册了一个试用空间,装了个wordpress测试了一下功能和带宽,以前win主机不能实现的一些功能它都能支持,速度也比原主机快了N倍,服务态度也很好。马上下了订单,用支付宝付款,很方便就完成了开通,但是之后的搬家却遇到了不少麻烦。

问题1:
空间买下后我就改了原来的域名指定,然后从老主机上把blog目录传了下来。上传到新空间后才想起原来mysql中的数据没有备份,而这时候域名已经指向新主机IP了,用不了原来的blog的WordPress Database Backup,无奈只有重新改域名指定。要知道因为DNS服务器缓存的原因,域名改了后要很久才能生效的,ping了N回还没见有生效后想到了改host文件来强制域名转向。改host文件果然有效,很快我就用WordPress Database Backup备份了wordpress的数据。

问题2:
当我把原mysql的数据导入新主机时,却发现报语法不支持的错误。原来新主机的mysql版本是4.0,不支持create table语句最后charset=utf8的这种语法。因为对mysql不太熟悉,不想去改导出脚本,试着换用phpMyAdmin的导出功能,也有同样问题,查了N久,最后才按照在网上介绍的把导出选项设成mysql4解决问题。

问题3:
看见了熟悉的blog,小喜了一把,很快我就发现不能够发布文章。查了一遍两个数据库的表结构,发现新主机数据中wp_posts表id字段没有auto_increment属性,索引也没有。检查导出脚本,发现的确没有这些内容,再看看原WordPress Database Backup生成的脚本,却是有这些特性的。最后还是通过修改WordPress Database Backup生成的导出,去除了里面关于charset的内容、更改两处列类型搞定。

问题4:
原来的主机是windows的,不用管什么文件权限的问题,现在换了linux的主机就问题多多了。首先发现更改Permlink结构后访问日志会出404,通过修改.htaccess权限解决。
然后是WP-DownloadManager插件不起作用了,国内网站上找不到它的资料,后来还是硬着头皮在E文网站中找到解决办法,把/wp-content/plugins/downloadmanager/downloadmanager.php权限改为777解决。

问题5:
在写文章时,发现用firefox看不到TinyMCE了,用IE却可以,待解决……
(2007.08.30 updated)
这个问题烦了我好久,今天无意中点击FireFox的错误控制台,看到不少这种错误: realTinyMCE is not defined,八成就是它引起了。通过错误关键字果然搜到了结果,网上说修改wp-includes/js/tinymce/tiny_mce_gzip.php文件,将$supportsGzip = true改为$supportsGzip = false可以搞定。我打开该文件,却发现$supportsGzip已经被设置成false了,也参考过realTinyMCE is not defined解决记文中指到的反复修改,仍无效果。最后才发现该文件中还有另一处对supportsGzip的赋值,正好赋的是true,把它改为false,问题解决。

问题6:
试着订阅本站的feed,发现提示“XML解析错误:xml处理指令不在外部实体的开始部分”指向XML声明的第一尖括号“<”。网上搜索说是因为xml第一行为空引起的,跟我的情况相对应。但我按网上说的试着禁用了所有插件,问题依旧存在,最后走曲线,通过feedsky实现了feed,当然还装了个feedsky-ping.1.1插件。