随著时间飞逝, Six Apart 终于在 2003 年圣诞节前夕释出了 2.65 版的 Movable Type ,这是一份安全性更新,修补了 XML-RPC 服务器以及邮件转发的潜在漏洞;这个版本同时还增加了对 Atom API 的支持,也为此增加了一些没有列在文件中的卷标。
我紧锣密鼓地也赶在 2003 年年底释出了新的安装套件,除了针对新版 Movable Type 进行翻修之外,也加强了预设模版,让它更适合中文使用者的情境;同时,我也加入了一些好用的外挂模块,让使用者能更轻松地建构完善的环境。当然事情远比这还要复杂,随著本书专属站台日益完善,许多原本得到处搜刮的资源现在也都可以直接在 http://mtbook.net/ 取得了。有鉴于这些改变,本书的改版更新可以说是迫不及待,于是我决定补增一份附录,把这些事情好好讲清楚,顺便把原来就没有交代清楚的细节也交代一番。
在第一章里,我们曾经为各位介绍过艺立协的安装套件,现在这个套件的任何更新档都可以在本书专属站台下载页面 http://mtbook.net/download.html 取得;同样的本来提供给要把 Movable Type 装在虚拟主机或非 Windows 系统上的使用者的档案,现在也能在本书专属站台下载页面 http://mtbook.net/download.html 取得。你祇需要如图这样在档名或下载图标上点选,就能够下载或开启档案了。
让我们来看看上头有些甚么值得你注意的东西:
原则上上述这些档案,也多半能在本书附赠的 CD 里,找到还算稳定的堪用版本;因此当你因故无法存取网络时,不妨就用这张 CD 救急吧!
许多使用 Windows 安装档的朋友一直不清楚到底这个安装档会装进些甚么、又该怎么反安装、反安装完又会遗留下些甚么东西。事实上诚如第一章所述,这个安装档除了会帮你安装 Movable Type 外,也会把 parl
及 Apache
装起来;前者是执行 Movable Type 所需的 Perl 执行环境,后者则是网页服务器。如果你需要把这两个组件移除掉的话,到「控制台」的「新增/移除」是没有办法的。你得执行他们各自目录里的反安装程序才行:
parl
的话,请执行 C:\Program Files\OurInternet\Common\parl\Uninstall.exeApache
的话,请执行 C:\Program Files\OurInternet\Common\httpd\Uninstall.exe另外,在安装的时候安装档会试著保留下列这些东西(如果他们出现在安装路径里的话)而不会覆盖:
mt.cfg
db/.
数据库因此你可以放心地从「控制台」的「新增/移除」里移除 Movable Type ,然后再从新版的安装档安装,而毋须担心任何的网志组态、文章会遗失。事实上当你移除 Movable Type 时,(几乎)所有可能有所更动的档案都会被保留下来,这包括了:
C:\Program Files\OurInternet\Movable Type\logs\httpd-access.log
C:\Program Files\OurInternet\Movable Type\logs\httpd-error.log
C:\Program Files\OurInternet\Movable Type\mt\mt.cfg
C:\Program Files\OurInternet\Movable Type\mt\db\*
C:\Program Files\OurInternet\Movable Type\mt\archives.html
C:\Program Files\OurInternet\Movable Type\mt\atom.xml
C:\Program Files\OurInternet\Movable Type\mt\index.rdf
C:\Program Files\OurInternet\Movable Type\mt\index.xml
C:\Program Files\OurInternet\Movable Type\mt\rsd.xml
C:\Program Files\OurInternet\Movable Type\mt\archives\*
所以你祇需要把整个目录另存副本,就可以轻易地备份所有的网志数据。
好消息是,现在 leeym 负责了 FreeBSD 上的中文 Movable Type ports
,所以要把中文化过的 Movable Type 安装到 FreeBSD 上就变得万分简单。你祇需要以 root
登入,然后这么做就可以了:
cd /usr/ports/chinese/MT make clean install
如果你有装了 sudo
,而且你自己的帐号亦属于 sudoer
的话,也可以这么做:
cd /usr/ports/chinese/MT sudo make clean install
我们曾经在第二章介绍过网志组态里的「显示日期用的语言
」选项,当时我们说官方的 Movable Type 并没有中文日期格式可用,不过现在我们自己放进了分别由 mhsin 和 contagious 所提供的中文日期格式,兹整理如下:
变数 | 意义 | 显示日期的语言及效果 | |||
---|---|---|---|---|---|
中文 (zh) | 彻底中文 (zh_all) | 台湾, 中华民国 (tw) | |||
内建 | %a | 一周里的哪一天,以缩写表示 | 无法使用 | 无法使用 | 无法使用 |
%A | 一周里的哪一天,以全称表示 | 星期二 | 星期二 | 星期二 | |
%b | 月份名称的缩写 | 无法使用 | 无法使用 | 12 | |
%B | 完整的月份名称 | 十二月 | 十二月 | 12 | |
%d | 该月的第几天,以两位数字表示;必要的时候在前面补 0 |
30 | 30 | 三十 | |
%e | 该月的第几天,必要的时候在前面补上空白 | 30 | 30 | 30 | |
%H | 时,以 24 时制(军队时制)表示成两位数字,必要的时候在前面补 0 |
03 | 03 | 三 | |
%I | 时,以 12 时制表示成两位数字,必要的时候在前面补 0 |
03 | 03 | 03 | |
%j | 该年的第几天,以三位数字表示,必要的时候在前面补 0 |
364 | 364 | 364 | |
%k | 时,以 24 时制(军队时制)表示成两位数字,必要的时候在前面补上空白 | 3 | 3 | 3 | |
%l | 时,以 12 时制表示成两位数字,必要的时候在前面补上空白 | 3 | 3 | 3 | |
%m | 月份,以两位数字表示,必要的时候在前面补 0 |
12 | 12 | 十二 | |
%M | 分,以两位数字表示,必要的时候在前面补 0 |
00 | 00 | 零 | |
%p | AM 或 PM |
上午 | 上午 | 上午 | |
%S | 秒,以两位数字表示,必要的时候在前面补 0 |
01 | 01 | 一 | |
%x | 按照语言决定的日期格式 | 2003年12月30日 星期二 | 民国九十二年十二月三十日 星期二 | 民国九十二年十二月三十日 | |
%X | 按照语言决定的日期格式 | 上午03时00分 | 上午三时零分 | 上午三点零分 | |
%y | 年份,以两位数字表示,必要的时候在前面补 0 |
03 | 03 | 03 | |
%Y | 年份,以四位数字表示 | 2003 | 2003 | 九十二 | |
额外 | %V | 小写四位数公元年份简读 | 二零零四 | ||
%v | 小写二位数公元年份简读 | 零四 | |||
%U | 大写四位数公元年份简读 | 贰零零肆 | |||
%u | 大写二位数公元年份简读 | 零肆 | |||
%C | 小写民国年份全读 | 九十三 | |||
%c | 大写民国年份全读 | 玖拾参 | |||
%T | 小写公元年份全读 | 二千零四 | |||
%t | 大写公元年份全读 | 贰仟零肆 | |||
%Q | 小写月份全读 | 一 | |||
%q | 大写月份全读 | 壹 | |||
%R | 该月的第几天,小写全读 | 十五 | |||
%r | 该月的第几天,大写全读 | 拾伍 | |||
%F | 时,以 24 时制表示成小写全读 | 十六 | |||
%f | 时,以 12 时制表示成小写全读 | 四 | |||
%G | 时,以 24 时制表示成小写简读 | 一六 | |||
%g | 时,以 12 时制表示成小写简读 | 零四 | |||
%N | 分,小写全读 | 三十二 | |||
%n | 分,小写简读 | 三二 | |||
%O | 秒,小写全读 | 零 | |||
%o | 秒,小写简读 | 零零 |
mt.cfg
指令Movable Type 从 2.66 版起,又多了一个可以加在 mt.cfg
里的指令(选项):
mt.cfg
里加上这一列:ThrottleSeconds 10那么来自同一个 IP 、且发表间隔小于 10 秒的回响,都会被系统驳回。
Movable Type 屡次改版中,并不是所有的模版卷标都会被记载在文件里。有些卷标可能祇在版本更新演进史里提到过,或者是你必须亲自去探索新的预设模版才会发现的。这些新卷标往往是为了满足特定需求、或者让事情更加合理及方便才被做出来的,因此你当然也应该把他们放进你的模版里,然后把原来为了相同目的而装的外挂模块给扔开。以下就让我们来看看这些模版卷标:
mt.cgi
相对于站台网址
的路径。举例来说,如果你的站台网址
是「 http://blog.my-domain.org/
」,而你又在 mt.cfg
里设定了「 CGIPath http://blog.my-domain.org/cgi-bin/
」的话,那么 <$MTCGIRelativeURL$>
的值就会是「 cgi-bin/
」。tag
属性,这个属性的内容可以是任何 Movable Type 变数卷标的名称(但是请不要加上角括号跟钱号);祇有当这个变数卷标的值不是空字符串时, <MTIfNonEmpty> 容器卷标里的内容才会被采用。当然这个卷标也能与 <MTElse>
卷标混用:<ol><MTCategories><li> <MTIfNonEmpty tag="MTCategoryDescription"> 类别描述: <$MTCategoryDescription$> <MTElse> 类别名称: <$MTCategoryLabel$> </MTElse> </MTIfNonEmpty> </li></MTCategories><ol>上列的范例会依序列出所有的类别;如果某个类别设定了类别描述的话,就会显示出类别描述,否则就祇会显示出类别名称而已。
<$MTEntryDate$>
似乎没有任何实质上的差别,但是我们可以推论下一个版本的 Movable Type 会在数据库里增设一个字段,用来存放(无法变更的)文章日期。我们在下一节所要介绍的预设模版,正是用上了这些新增而又没有被放进文件里的模版卷标;所以一方面这些模版会有适用的版本限制,另一方面则是你得先搞懂他们到底有些甚么功用,才能随意修改。
我在本书专属站台上也提供了中文化过的预设模版,这份模版除了把官方预设模版中文化外,又略加调整过,因此即便你选用了中文日期格式、中文类别描述、类别图标、或者启用了允许匿名回响的功能时,一切看起来仍旧相当正确,不会有不知所云的情况。
这份模版可以在 http://mtbook.net/default-templates.html 找到,你可以轻易地选取、复制,然后贴回你自己的网志里。
列出模版
」画面中,按下「索引模版」区段里的「建立新的索引模版」链接(因为在这个升级的例子里,我们没有 Atom 索引模版。如果你祇是要把弄烂的模版还原的话,也可以直接按下编辑该模版的链接)。现在就让我们看看有哪些预设模版:
新的 Movable Type 的 Windows 安装档(以及 mt.diff )会把原本我们在第三章介绍过的超级链接与文字变化按钮给取消掉,改以功能更为强大的 htmlArea 代替之;这是一个所见即所得 (WYSIWYG, What You See Is What You Get) 的 HTML 编辑接口,有各式各样的按钮,帮助你做出字型变化,或插入图片、链接、表格等。
当你进入编辑文章画面时, htmlArea 并不会自动启用;对于进阶使用者或者是不需要繁复变化的使用者来说,这确实是有效率且安全的作法。如果你真的有需要进入这个所见即所得的编辑模式时,请如图用鼠标按一下图案,接著文章编辑区马上就会进入「所见即所得」模式。
在这个模式中,你可以使用下列不同的功能:
纯文字模式
」,再按一次就又会切换回「所见即所得模式
」。请注意,由于尚未被清掉的程序瑕疵,当你完成编辑后请务必再次按下 按钮,切换到纯文字模式后再储存文章,否则你辛苦输入的内容将可能会付之一炬!
「重建档案」是另一个先前没有特别提到的功能,然而有许多使用者不断在询问著「重建档案是甚么意思?」「我甚么时候需要重建档案?」因此我觉得有必要在这里花一点篇幅来说一说。
Movable Type 使用了一份数据库来储存各种你所输入的东西,包括像是网志组态、模版、文章、回响、引用通告等。这些讯息都是先存放到 Movable Type 所使用的数据库里,等到有需要的时候才会从数据库中被倒出来,而成为静态档案的一部份。这个「把数据从数据库中倒出来,制作成静态档案」的过程,就是所谓的「重建档案」。
这么做有甚么好处呢?最大的好处是可以有极大的弹性,相同的信息内容可以很方便的出现在许多地方、或者是藏匿起来不予呈现。另一个相当重要的好处在于效率;随著日积月累,网志里的信息会越来越多,如果每次一有新的东西被加入,系统就要把所有的档案都整理一遍的话,将会花去难以计算的时间跟系统资源。然而如果我们先把数据扔进数据库的话,就祇需要在重建档案时,挑选有相关的信息片段一并重建就行了。这么一来,祇需要花费极少的资源,就能维持站台的更新。
其实还有另一个好处就是安全。因为你的数据是存放在数据库里,而不是袒胸露肚地摊在网页目录中,所以就算有人突破了你的防火墙、毁掉了你的网页静态档案,你依旧能够轻易地全部还原,而不会受到影响。
那么甚么情况下会需要重建档案呢?一般说来,在你做了下列这些事情后,就得重建档案:
CGIPath
、 ExcerptWords
、 NoCDATA
、 PublishCharset
等,都有可能影响到你的静态档案实际内容。上述这些变更完成时,都祇会更新你的数据库,却不会立即反映到网页目录里的静态档案,所以你得自己重建档案才行。至于实际重建档案的技巧,则请参考稍后的段落。
你或许会注意到,当你新增一篇文章时,系统就会自动地帮你套用所有相关的模版来重建可能会受到影响的静态页面。事实上,祇要你在文章编辑画面按下储存
按钮,系统就会这样子来自动重建部分的档案。
这个设计相当地巧妙,也相当地有效。对于常常写新东西的使用者来说,他们毋须把时间花在按下「重建」按钮上,就能够在页面上不断新增文章;对于常常回头修改文章的使用者来说也是如此。无论你正在新增或修改文章,祇要一按下「储存」按钮,系统就会帮你把剩下来的事情做完。另一方面,当有访客留下回响或发出引用通告后,系统也会针对特定的文章如此重建;要不然你的站台页面可不会更新呢!
不仅如此,善用这个机制,我们甚至可以把维护站台所需的重建时间大幅缩短。且看接下来的这个段落。
在这个段落里,我们将条列许多重建档案的原则;越后面的原则越能帮你节省时间和系统资源,所以请仔细读下去吧:
回响清单模版
、回响预览模版
、回响出错模版
、以及引用清单模版
都是当读者点击了特定链接后,才会用于生成动态页面的,所以你根本不需要手动加以重建。而弹出已上传图片模版
套用的时机则祇有发生在上传了图片的时候,所以这个模版所建立出来的静态档案也不是重建档案系统所能干涉的,就算你重建所有档案也没有用。随著网志日益流行,渐渐地有不肖之徒开始到别人的网志上留下回响或引用通告;他们所留下的文字多半言不及义、或与原来的文章没有丝毫瓜葛,他们的目的在于留下生效的超链接,试图拉高自己站台的 Google 评比 (Google Rank) ,顺便看会不会有人误闯贼门。
这种东西我们称做「回响垃圾 (Comment Spam)
」,已成为继垃圾信 (Spam) 后的严重问题。原本的 Movable Type 祇能让你透过禁用 IP 的方式,以抵御来自特定位置的攻击。但是这个方法毕竟过于被动,而且这些混蛋总是有办法换用不同的 IP ;因此 Jay Allen 发展了一套 MT-Blacklist 外挂模块,透过黑名单比对回响内容,主动封杀可疑的回响垃圾。
现在这个外挂模块也成为 Movable Type 的 Windows 安装档内的预设模块了。你祇需要如图在网志主选单里点击「设定黑名单」的链接,就可以予以启用或组态。
虽然现在会预设就帮你把 MT-Blacklist 装好,但是基于兼容性考量,一开始时是不会启用的,你得自己启用才行。别担心,这并不难;请先如图按下「 Configure 」按钮,在第一个选项选择「 Yes 」,然后把画面卷到最下方,把「 Automatic Blacklist Publishing 」的输出档名改成「 ./blacklist.txt 」(否则在 Windows 上会出问题),最后按下「 Save Configuration 」即可。
当然这里还有许多细节可以调校,但是我在此不打算赘述(不然就会变成另一章了),请有兴趣的朋友自己啃线上说明吧!
除了预设把 MT-Blacklist 装好之外,这里还预先附上了一份黑名单,让你能够立即生效。但是你还是应该随时注意有没有更新的黑名单,才能时时抵御最新的垃圾。
你可以订阅 MT-Blacklist 交换所 RSS Feed (http://www.jayallen.org/comment_spam/feeds/blacklist-changes.rdf 或 http://www.jayallen.org/comment_spam/feeds/blacklist-changes.xml) 来监视任何的黑名单更新;最新的黑名单则会发布在 http://www.jayallen.org/comment_spam/blacklist.txt ,你祇需要如图把整个档案的内容复制起来,然后贴进「 Add
」画面中的「 Import blacklist
」字段中,最后按下「 Import entries
」按钮即可。
再次强调,这个外挂模块的功能远比我们在此所介绍的更为强大,不过碍于篇幅,我们就不多加描述了,请有兴趣的朋友自行研究、阅读线上文件。
版权所有 © 2003, 2004 Jedi. 保留部分权利。Modified By Zhu8 | 2009.11.20 | Friday | 22:27:43