之前在MT5 Release Candidate 1出来的时候也写过文章。其实这篇文章也是前几天的事了,只是那时太忙,变在周末整理出来。
我在平时会时不时的去MT的官方网站上看看有没有新产品发布,结果就看到了《Movable Type 5.0 Release Candidate 2这篇文章。本来我没想试用这个版本,因为文章下面的修复错误列表也没有我之前遇到的错误,不过总是抱有一丝侥幸的心理,说不定这次就成了呢。于是我就去ftp下载路径看了看,却发现原来里面已经有了RC3了,就下载下来看看。
我目前有两个域名,所以也不用在我当前的域名下再动什么,放心的在另一个域名目录下面胡搞就可以。MT也支持sqlite数据库,这是我最喜欢的地方之一。我挺不喜欢操纵mysql的,总感觉需要的权限更高,也更麻烦,mysqladmin也慢,而且这个dreamhost也不是我买的,我的帐号只能建数据库却看不到已经存在的,结果目前数据库让我建的有点乱,所以也不太想动。用sqlite正好,只是一个文件而已,不想要的时候删了就了事。
装上了MT后,感觉还是和原先一样。导入文章一切正常,发布的时候依然出现宽字符错误。
不过我觉得,如果把MT5当作一款新的blog发布系统,安装上不管过去的备份,从头开始写,应该是不错的。可惜我之前的文章和留言基本上是无论如何都不能丢的。
我这次又从网上搜索这个错误的提示信息,找到了一个页面,感觉有点解决的思路了。这个页面是一个论坛,一个人用Perl写的程序在调用md5-hex()函数的时候出现了同样的问题,询问解决方案。结果后来他自己发现了解决方法,就是在调用函数之前,先调用一个encode_utf8()函数:
print md5_hex(encode_utf8($str)), "\n";
我于是就想,如果把MT的代码中,调用了md5-hex()地方,都加上encode_utf8(),说不定能解决问题。于是我用grep搜索全部文件,找到了几处地方。不过我在修改的时候,意识到调用这个函数可能还要引入什么库之类的,我也不知道具体是哪个库。自己写程序试验了几次,也没确定下来。后来也没有很充足的时间,又想了几个其它方法,于是就放弃了。
我想的其它方法,其实也是碰运气。比如说我先装一个MT4,导入备份后可以发布,然后我从MT4升级到MT5,说不定就行了,结果在MT5发布的时候失败。还有就是装了MT4后,在MT4中导入备份,然后升级到MT5,再导出。然后全新安装一个MT5,把新的备份文件导入,后来也失败了。然后我就想,查看生成的路径,在出错之前已经有了2009以及下面的从11到05几个目录,说明错误是从生成04目录的时候发生的,也就是引起错误的文章在4月份。通过把4月份的文章的状态分别从“发布”改成“草稿”,不久可以确定是那篇文章导致的问题了吗?找到后好好改改文章中的潜在语法问题,说不定就能解决。结果我把全部4月份的文章的状态改了后(MT竟然不能整月选取文章,远程更改好慢啊),再发布的时候确实多生成了几个目录,但又出现了同样的问题。看来有问题的地方不是一处啊,“阴谋”宣告破产。:( 只有等官方改掉这个问题了。
经过几次试用我也对MT5的website之类的概念有了一些了解了。我一直想用MT来帮我生成首页的,所以也加剧了我想升级MT5的念头。现在用的wiki虽然也不错,但不支持纯HTML代码是最大的问题。对于wiki来说支持纯HTML有安全隐患,但对我来说就很麻烦,不能加贴纸,也不能加统计代码了。所以升级是必要的。但如果升级后统一管理,就不能用子域名了,这是一个相当大的损失,也让我一直犹豫。我现在在尝试把子域名的目录建在主域名目录下面,看看能不能同时访问,不过还要等几个小时才能有结果。
《MT5 Release Candidate 3》有1条评论