1

标签 “MT”

MovableType 的历史编码问题

最近刚刚把网站迁移到新的 VPS,还是放在 DigitalOcean,但是系统已经是全新的 Ubuntu 20.04 LTS。

迁移 Blog 需要把数据库备份,然后导入到新的服务器上的数据库中后才行。

本Blog 用的是 MovableType,从 2004 年开始建立的,当时采用的是 MT 3.11。中间迁移过好多次,每次导出的数据,看上去都是乱码,而且如果用 phpmyadmin 之类的工具查看数据的话,也是乱码。但是导入之后,从 MT 后台看到的还是正确的,可以正常地使用,所以就一直没有怎么去管它。

这次确实出现了导入后, 在 MovableType 后台看到的还是乱码,当然如果直接发布,就会全部是乱码的文字了,不知如何解决。

于是外事不决问 Google,一番搜索之后,找到下面这段,看着很类似我现在的问题。

Movable Type 5 默认使用的编码是 UTF-8,但是数据库连接中却优先使用当前数据库的 DEFAULT CHARSET 设置。如果在建立数据库的时候,DEFAULT CHARSET = utf8 那不会出什么问题,但如果设置是 DEFAULT CHARSET = latin1 就会出现一些问题,不巧的是,很多 MySQL 数据库的默认编码设置就是 latin1。

如果数据库的默认编码是 latin1,Movable Type 仍然会按照 UTF-8 编码保存数据,而数据库则用 latin1 编码保存和识别信息,在 Movable Type 界面中显示数据都是正常的,但是在需要导出或备份数据库的时候就会出现乱码了,比如用 phpMyAdmin 查看这些数据库中表里的记录,发现中文全部是乱码,导出后的文件也是乱码。

如何把这些乱码转换成正确的字呢?可以尝试下面的方法。

如果数据库的名字是 db_name,使用下面的导出命令:

mysqldump -uroot -p --default_character-set=latin1 --skip-set-charset db_name > db.sql

输入密码后产生 db.sql 文件,替换文件中的 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci 为 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci 以及替换 collate latin1_general_ci 为 collate utf8_unicode_ci,之后新建一个数据库,注意设置 DEFAULT CHARSET = utf8,在这个数据库中执行导出的 SQL 就可以将这些"乱码"转换为正常的字了。

实际操作时,我是这样做的。

先用上面的 mysqldump 命令把数据库导出到一个 sql 文件,(这时导出的 sql 文件内容已经没有乱码了。显示中文正常。)然后用 Notepad++ 打开 sql 文件,寻找 DEFAULT CHARSET=latin1 字符串,替换为 DEFAULT CHARSET=utf8

保存之后,现在的 MySQL数据库,新建的数据库默认就是 utb8mb4_general_ci,就直接导入到数据库中就可以了。

MovableType 各个版本的近况

首先,MovableType 6 系列已经升级到最新的 6.3.2,新版本的情况,以及升级步骤,可以参考 此文

这里我想聊聊 MovableType 各个版本的情况,或者说是现状,近况。

最早的 MovableType 1 系列,我都没有赶上用过,其版本从 1.0,五个版本后停留在了1.4,那是 2002年的一月。

然后是 MovableType 2 系列,从2002年到2004年的一月,两年间,发布了从2.0版本到2.661 版本的共 15 个版本。

然后是 MovableType 3 系列,从2004年的五月到2008年年底,最后停留在了 3.38版本。我就是从 MovableType 3.11 开始使用 MovableType 的。那个年代是 Blog 兴起的年代,也是 MovableType的黄金年代。当然也包括下面的4.0系列。

MovableType 4 系列,从2007年八月最初的 4.0版,最后与2013年十二月发布了4.381版本。

MovableType 5 系列,在中间有过一次版本号的重新设定,原先只有两部分,后来变成了三部分,5.01开始,到5.18是最后一版,而5.2子系列是从 5.2.2 开始,最后是 5.2.13。

MovableType 6 系列,是从2013年十月发布 6.0 开始的,2015年四月的 6.0.8 是 6.0.X 的最后一版,6.1.X 的最后一版是2016年的六月发布的 6.1.3 版本。 6.3.x 子系列的也是到2016年的六月的6.2.6版本。目前最新的是 6.3.x 子系列的 6.3.2 版本。

MovableType升级到6.0

SixApart的新版MovableType 6.0和5.2.8都发布了,这里也按次先升级到5.2.8,然后再升级到6.0版。

下载6.0的安装文档,然后解压缩,接着覆盖原来的5.2.8版,在浏览器输入后台网址,可以看到下面的升级提示。
2013-10-21_115839.jpg

点击Begin Upgrade,之后会出现下面的升级过程。

升级到MovableType 5.1

前两天,6A就发布了最新的MovableType 5.1.

昨天晚上就做了升级,现在这里运行的就是最新的版本。

升级的过程没有什麽特别,覆盖更新就可以了。

只是这里要说一说新版本的新特性:

1) 可以用拖放的方式来管理目录和文件夹

2) 内容管理的界面也做了变化。

3) 多blog的标签

更多的内容可以看看这里

升级MovableType到4.31

本次更新只更新了源文件和数据库。
相关的发布通告在这里

接下来应该是期待MovableType 5.0了。

MovableType后台不显示Blog Stats的原因

我有一个以MovableType驱动的Blog,登录后台后有一个非常奇怪的地方,就是不显示Blog Stats。
Blog Stats就是显示在最近一个月,或者2、4个月,发表的文章,留言数目,标签和注册人数。以柱状图表示的。

很奇怪,其它几个Blog后台都有显示,唯独这个没有。

终于在这次更新到MovableType 4.3 之后,登录后台,有显示出错信息,之前是没有任何提示信息,就是没有,也不出错。显示的信息没有截屏,大意就是某几个文件夹没有写的权限。

顺利升级到MovableType 4.3

本次升级没有什么特别要做的地方。
还是下载文件,解压缩,复制覆盖原文件,然后就是登录,提示要升级,登入后就完成升级过程。

2009-07-29_213948.png

然后就是写这篇短文了。

完成,收工。

升级到MovableType4.26

升级没有什么特别的地方,因为是从4.25到4.26,没有添加新特性,主要是修复bugs,以及改进性能。

希望这次的改进可以让Blog的渲染速度提高,资源耗用减少。不要总是出现500内部错误就好。

Movabletype 4.25

如果只是Classic Blog的话,MovableType 4.25 同 4.24看上去一样。

但其实还是有差别的,至少在效率上好很多。
从其Release Notes上可以看到这些同效率有关的修改。

有较少的500错误,以及重建全部页面的时间也较短。

Blog网站搬家之续

昨晚,弄了几个小时,把本Blog,搬到了现在这个二级域名。
接着又把相册也独立了出来,入口还是在我的网站首页,https://www.yinfor.com

目前本Blog使用的是MovableType 4.25,全新安装,选择的是Classic Blog模板类型,然后,是从旧blog的地方通过MovableType 4.24的export功能导出,然后全部导入到新blog。
这个导出导入,倒还支持comments。

导入后的结果就是有不到十篇文章是乱码,连标题和目录都是乱码,后来还是根据其basename,找到原来正确的文章,手工贴过来的。

迁移,转换的过程,得到的一个便利就是把网址变短了。
原来: https://www.yinfor.com/freethinking/archives/2009/03/sample.html
现在: https://journal.yinfor.com/2009/03/sample.html
网址更为简洁了,我喜欢。
然后就是模板采用默认的模板,稍作修改。

系统升级

本Blog也乘着MovableType发布4.2版的东风,于昨天升级了系统,今天进一步改进了设置,换了一个同原先的模板相似的模板,粉色的。

这里对于MovableType 4.2 的重建效率,再次有了认识。
在升级后,重建的时间花了很久都没有好,一直挂在那里。
原先以为是Dreamhost的系统对于资源的限制,后来才发觉是没有打开模板缓存,造成不断的调用数据库,甚至有几次都出现超时错误。

现在我设置为,Widget模板中的,最近帖子,最近留言,和tag cloud都有缓存,重建本Blog,也只用了15分钟,共715篇文章。速度还是不错的。

升级的过程参考这里

MT 4.2 rc版发布了

知道MT4.2 rc版发布后,就马上在我的MT测试平台上试了一下,升级非常简单,同之前我介绍的升级程序没有什么两样,都是直接SSH上主机,然后wget文件包,解压,复制覆盖原文件,然后用Firefox登录,提示升级,接着升级。

据说有非常好的性能,不过就我们这样的条件还真测试不了,也验证不了。

重建整个Blog的过程感觉没有快多少,不过在最后的一个页面有显示重建的时间。
其他部分从界面上来看同4.1没有差别。
mt42publish.gif

最后我们来看在升级过程中MT的升级程序都做了些什么。

MovableType 占用CPU太多的问题

上个星期,收到Dreamhost的Email,他说我MovableTyp Blog所占用web服务器的CPU资源很高,超过200,不知道这是一个什么参数。
造成最大负载的两个文件,分别是
mt-comments.cgi
mt-search.cgi

当然他已经修改了该文件名,用户都已经访问不了了。

因为我使用的MT已经是最新的版本,不存在版本太旧的问题,那样我就只能修改着两个文件名,并且在mt-config.cgi中相关的参数,然后重建了所有有关的Blogs。

为了观察CPU负载的情况,按照Dreamhost的说明,我激活了resources的报告。
Users > Manage Users > Edit , 在CPU Reporting的地方打勾,24小时候,就可以看到报告了。该报告是统计在此帐号下所有网站所占用的资源。
要查看的话,就是在浏览器输入https://www.yoursite.com/stats/resources/
用该帐号下任意网站的网址就可以。当然有password保护,这些查看的帐号设置,需要点击,Status > Site Statistics > yoursite.com ,选择# Users w/Access部分,就可以赋予一个查看权限的帐号。

MovableType下防Trackback Spam的方法

目前我用的Blog系统是MovableType 4.01,相当强悍的一个系统,可是也免不了Spam的攻击。
一般Spam有两种,一个是留言Spam,一个是Trackback Spam。留言好办,通过图像验证文字来识别是否机器人还是活人,绝大部分都可以杜绝。而TrackBack 则比较麻烦,每天每分钟都有很多TrackBack过来。

那么系统内置的防Spam机制是怎样的呢?让我们来看看。

其Plugin系统中有一套SpamLookup的Plugins,一共三个。
分别是:
SpamLookup - Lookups 2.11,主要是针对IP地址进行检查,通过对几个数据库内IP地址的核对,来发现有问题的Trackback发送地址。在设置中可以设置IP黑名单服务器,域名黑名单服务器,还可以设置白名单。
SpamLookup - Link 2.11,主要是针对留言而来的,如果留言中有超过指定数目(比如三个)的链接,则认为有问题。
SpamLookup - Keyword Filter 2.1,主要是针对关键词进行比对,我们可以指定一些关键词,如果出现在Trackback中,就认为是Spam。

通常我设置这些Plugin都是在系统级别设置的,因为一个MovableType系统可以管理几个Blog,所以呢,Trackback扫描时会全部扫描的,在系统级别设置可以更为有效。

这里呢我把很常见的一些英文Spam关键词列出来,方便以后设置。
cialis
viagra
tramadol
ambien
amoxicillin
ultram
valium
ephedra
drug
oxycodone
ephedrine
xanax

MT4添加独立页面的问题

今天在修改一个Blog的时候,想添加一个独立页面,就是MovableType 4.0 中的pages。

当我添加完这个页面之后,选择发布,返回的结果也是发布成功,可是在目录中就是找不到这个文件。

太奇怪了。
整整花了我20多分钟,才找到问题的根源。

先说说我走的弯路好了。
1)怀疑是权限问题,可是其它文件都可以生成啊!
2)怀疑是mt-config.cgi的设置文件,没有结果。
3)怀疑是Blog Setting中的设置有误,看了一遍,没有问题。

花了10分钟在Google上,也没有答案。

最后才知道是,模板文件没有做好mapping。
就是说pages模板文件,没有Archive Mapping到page去。
修改之后,再次发布,就没有问题了。

那么怎么会发生这种Archive Mapping没有设置的情况呢?就是因为我的Blog,MT4是从MT3.35升级而来,原来模板Mapping到归档文件,而修改模板时,没有把这个pages模板修改好,所以就发生了这种事情。

我相信Sixapart也有责任,在没有做好Archive Mapping的情况下,直接发布有关的页面,应该给予一个发布错误信息,而不是告诉用户,发布已经成功了。

MovableType 4.0 默认模板的两个小修改

这些天把Blog程序升级到MovableType 4.0之后,就在不断的修改模板。昨天在测试W3C的HTML标准时,发现一个问题。
就是MovableType 4.0的默认模板的一个问题。
单篇文章归档中有个留言表单,其中有两个属性,name 和 ID,根据W3C的说法,这是相同的,需要保持一致。

NAME and ID are the old and the new name for the same attribute. If both are defined, they should be equal.

而在MT4.0的默认模板中是不同的,name="comments_form" id="comments-form"。
修改如下:
Design > Templates >
在右侧可以选择Template Modules
接着选择 Comment Form
在第十五行,找到上面的代码,修改为 name="comments-form" id="comments-form"
重建单篇归档后就可以了。

第二个问题,不是错误,而是看着不舒服,对用户不好。MovableType 4.0的Atom模板中默认的是文章不断行,那么在输出后,用户看到的就是一长串文字,没有段落,没有分行。
修改的方法如下:
Design > Templates >
接着选择Atom模板
在第三十,三十一行的地方,可以看到这样两行代码,
<$MTEntryBody encode_xml="1" convert_breaks="0"$>
<$MTEntryMore encode_xml="1" convert_breaks="0"$>

那么只要把convert_breaks="0" 这部分删掉,重建这个atom.xml文件就好了。
这样在Google Reader里看到的也不会有问题了。

小心自己的Blog被误认为是Spam

今天看到Aviva写的当博客被Akismet判为spam,觉得此事可大可小,如果很少在其他的Blog留言的话,当然没有关系,如果经常留言,而你的Blog被放入akismet的sapm数据库,那就非常的麻烦,所有使用Wordpress并且开启akismet机制的Blogger,都会把你的留言给自动去掉。

Aviva的行动的确不错,同akismet联系,沟通后获得解决。

网址在https://www.akismet.com

Wordpress的防spam机制貌似还是简单了一点,过度的依靠akismet的数据库。
而MovableType,则不同,会根据多个参数,进行综合判断,比如留言中的链接数量,之前有没有在
本blog发表过留言,还有在spam数据库中的记录等等来综合打分。而且还可以通过调整总分,来设定判断的严格程度。

MovableType 4 期待中

今天一早,就看到了这个消息,在官方Blog上有了说明

里面有很多新的特性,我想最让人感到高兴的就是,整个MT变成开源的了。
还有就是上传文件的管理,独立页面的生成,以及支持OpenID。

我想最好玩的一件事情,就是马上下载Beta版,建一个新Blog,看看MT4会给我们带来什么。

服务器重建

在服务器坏掉的这一天,的确是忙得很,要找一台新的机器,重建服务器的整个环境,包括,Windows 2003,PHP4,Activeperl,MySQL,Imail,MovableType, 等软件,要设置DNS服务器,IIS服务器,FTP服务器等服务器软件,还要把原先备份的前一个星期的数据恢复回去,最后还找了个软件把原来硬盘里的最新的文件找出来,恢复了最新的几篇文章。

其实原先的那台服务器

服务器:Intel Celeron - A 400Mhz, 256M内存,40G硬盘,一块S3 Trio3D的显卡,不接显示器,通过上面一台电脑远程控制,24小时开机,作服务器用,包括WEB, EMIAL, FTP。装2003SERVER。
早就有更新换代的想法,只是一直懒于动手,觉得好用就拖着,直到崩溃的一天。
还好我一直有做备份的习惯,每周一次的备份是我日常的工作之一。
现在看来还要做好服务器的安装日志工作,就是记下安装一台全新的服务器的过程,以及所需的软件版本等数据,以作备忘。

在安装的过程中还是有些东西忘了原先的做法,摸索了一下,现在记下来。
1)在安装Awstats的过程中,要记得给与IUSR_machinename这个用户在IIS日志文件目录的读取权限,否则会出现找不到资料的错误。
2)Awstats的GeoIP_City_Maxmind 这个plugin的运用需要用到Geo::IP这个perl包,记得安装。

关于作者
搜索
归档

Online Tools

Code Convertor