this site: January 2008 存档
前几天升级到了Movable Type 4.01,这两天正在不断熟悉。Movable Type的不同版本之间的衔接做得还是蛮不错的,升级安装后模板还是原来的,虽然多出了很多新的标记,但是原来的仍然可以使用。
新的MT4模板编辑窗口多了一个突出显示HTML标记的功能,还可以下拉窗口下端改变大小,在编辑模板代码的同时还能自动保存,有的模板还能永久保存备份的副本。但是需要特别注意的是,要特别注意避免移动已经用鼠标选中并高亮显示的内容到其他地方,而编辑过程中会自动保存,所以极易造成代码的混乱。非常不幸,在编辑主存档(Main Index)模板代码的时候,我弄乱了部分代码,结果导致发布的时候总是出现500 Internal Server错误(如下图),
你可能会问为什么我这么肯定出现500 Internal Server错误就是因为模板代码出现了问题,其实最开始我是怀疑服务器是不是出现了问题,因为以前在重新发布模板的时候也出现过类似的错误(具体是不是500 Internal Server就不记得了,反从界面上来看,很象),但是过段时间就会恢复正常。而这次,等了两天后,问题依旧,仔细测试后,我发现只要发布的时候包含Main Index,就会出现错误,而单独发布其他的模板,比如Category Archive、Date Archive则不会出现,而且删除Main Index模板后发布整个网站也成功了。而后我用MT3.34默认的Main Index代码替代现在的Main Index,发布的时候竟然没有出现问题!由此,很明显可以得出结论——造成错误的原因就是因为Main Index 的代码有问题。
期间我还请教了Fish和weilinyou,weilinyou建议让我重装MT,还帮我找到了xdanger遇到同样问题的解决办法。不过因为我不想动我并不熟悉的MySQL数据库,而经过排查,xdanger列出的各种症状在我这里都没有。为了印证我的推论,我干脆放弃了原来的模板,对照本机安装的MT 4.01,把所有模板都改成默认的,做了大部分汉化和一些修过以后,重新发布了整个网站。
MT4默认的模板比MT3要漂亮一些,我选择的两栏样式也还算整洁、干净。就模板来说,MT4和MT3主要有以下不同:
- 首先是模板的类型更为细致,比如,以前Index Templates类别下所有模板都视为Index Templates,MT4则根据每个模板的不同作用用不同的类型一一加以区分,如下图
- 然后是引入了一个新的模板类别—Template Modules。这个和面向对象的编程方式有点类似,把一些需要重复适用的模板单独“封装”起来,其他模板在使用时只需引用即可。但是这样也产生了过多的单独模块,过度细分还极易让一些相似模块给人造成混乱的感觉。如Entry Detail、Entry Metadata、Entry Summary。
- 存档模板(Archive Templates)和以前有较大区别。淡化了原来MT3所用的 Individual Entry Archive 概念,Entry作为一个单独的“实体”存在,在“Entry Listing”里则可以创建不同类型的存档页面(Archive Mapping),如Monthly、Category等。同时还多了一个Page的概念(还没仔细研究怎么使用)。
Six Apart 在去年年中发布了Movable Type 4平台,从Movable Type 4 Beta和Movable Type 4、到MovableType 4.01,再到现在最新的Movable Type 4.1 Beta,期间还发布了开源网站movabletype.org。
根据网站上的介绍,Movable Type 4加入了很多新的功能,界面也更" Web 2.0",很多用MT的Blogger也把Blog都升级到了新的平台,我却只能饱饱眼福,守着现在的Movabl Type 3.34,不敢升级——主要是怕把系统搞崩溃了,之前转换域名的时候就是前车之鉴:因为对MySQL几乎不了解,以为只要在DreamHost主机上把绑定的域名转换为新的域名就可以了,不想域名更换后,数据库也就随之删除了,而之前我没有备份数据库……可惜啊,Feedsky的吕老板的留言也没了。还好先前在本机上保存了模板,主机上日志存档的目录也还在,文章的数量也不多,最后重装了一遍MT,并把存档目录中的所有内容下载到本地,一篇一篇重新发布。
前两天和weilinyou交换链接,在留言的时候我亲身体验了一下新版Movable Type的留言系统支持Openid的好处,心里又开始痒痒,琢磨着是不是该升级一下了。根据这篇文章的介绍,我先试着在本机上安装了Movable Type 4,过程还是比较顺利。和以前的版本一个比较明显的区别就是,配置文件mt-config.cgi首先要从Movable Type的目录中移出来,否则安装的时候会提示配置文件已存在,让你运行mt.cgi直接登陆或者移除当前的配置文件,然后刷新Winzard即安装向导页面(如下图)。
本地安装完毕后,开始在空间上安装,实际上是升级安装,下面是具体步骤:
- 首先备份当前数据库。
- 用Putty登陆到DreamHost空间,进入域名下的根目录。运行wget命令下载最新的Movable Type 4.01版到当前目录:"wget http://www.movabletype.com/download/personal/MT-4.01-en.tar.gz " ,下载完成后,用" tar zxpvf MT-4.01-en.tar.gz "把压缩文件解压到当前目录。
- 目录MT-4.01-en更名为"mt”(如果原来的目录名也为"mt",则先更改其名字,比如改为"mt3.34"),同时把目录下的配置文件mt-config.cgi 删除,安装向导在安装后会自动生产同名的配置文件。这也是Movable Type 4和之前的版本在安装过程中的一个显著区别,MT3在安装时必须首先配置好mt-config.cgi。
- 运行"mt-wizard.cgi",根据向导进行设置(如下图)
向导会首先检测主机是否已经安装所需的Perl模块,
接着进行数据库的配置,
然后设置邮件服务,指定当有新的评论和系统消息时,系统的处理方式,可以选择发送邮件到指定的邮件地址,也可以使用SMTP服务,
设置好以后,会出现配置成功的提示,继续下一步,
接着会出现升级的提示,大意是说已经安装上了新版本的Movable Type,但还要更新数据库,同时你会发现浏览器地址栏的"mt-wizard.cgi"已经变为"mt-upgrade.cgi",
点击"Begin Upgrade",开始升级,出现升级数据库的提示,升级完成后,会出现登陆界面,浏览器地址栏的"mt-upgrade.cgi"变成了"mt.cgi"。
至此,Movable Type 4.01就算升级成功了。
我经历的升级过程并不像上述那样顺利,上面只是给出了一个在正确设置各项参数的情况下的升级过程。实际上,在配置数据库这一步,就出现了问题(如下图),系统总是出现连接错误的提示,说是不允许用户登陆到数据库,还给出了出错位置,我找到了这个文件,用UltraEdit定位到它所提示的234行,代码为"shift->fallback->$meth(@_);",我删除了这一行,保存以后,居然可以进入到下一步(配置邮件服务),
一直到出现配置成功的界面后,点"Continue"后出现的不是"Time to Upgrade",而是创建新帐号的界面,
接着是创建Blog,
但是,完成上面的设置后始终也无法"Finish install",又出现了错误提示,
这一次,删除错误所在行的代码再也不管用了,删除了还会有另外一个不一样的错误提示。
后来仔细想想,本来这个过程应该是一个升级的过程,不同于全新安装,在出现设置数据库这一步时,填写的数据库服务器地址和数据库名、登录名、登陆密码都是现有数据库的,而如果是全新安装的话,数据库就应该填写新建的数据库名称。所以,即使我后来用看似高明的手法把错误提示提到的那行代码删除后能成功进入到下一步,后来还提示配置成功,但是接下来出现设置Movable Type系统帐户和创建Blog的界面就说明这个过程并不是升级安装,而是全新安装。至于为什么最后始终无法完成安装却能通过数据库设置这一关,则很可能是由于设置数据库那一步出错后我更改了文件中的代码,而配置的过程中系统不能正常检测到,到了后来在设置系统帐户和创建Blog后,要完成安装,需要往数据库中写入数据,而前面的数据库设置那一步其实是“没有真正通过的”。
后来我用浏览器登陆到数据库,仔细查看数据库名称、服务器地址,验证用户名和密码,发现果然是数据库名称填写错误造成的,数据库服务器中有两个数据库,一个是"information_schema",另外一个是用户数据库,填写这个用户数据库才能真正通过数据库设置这一步的检测。
PS:我不太懂MySQL,DreamHost上我也没有权限新建数据库,一直都是Fish帮我弄的,出现上面的错误就是因为我填写的是上次转换域名之前时Fish帮我建的那个数据库名,转换域名以后数据库名和以前是不一样的。





