Movable Type 情结

从我开始使用虚拟主机来搭建 blog 起,我就听说了 WordPress 和 Movable Type 的大名。我先用的是 WordPress,很顺利的装上了。用了大约一年之后,我刚到加拿大没一个月,手贱,试着在另一个域名上安装 Movable Type,结果不大完美,从那时就有 Movable Type 更难的印象。一直到去年,我的虚拟主机出问题了,我换了一家,又尝试安装了一次 Movable Type,结果成功了。奇怪的是,从那以后我又装了几次 Movable Type,一直很顺利。

安装好了 Movable Type 之后,有个问题让我兴奋的心情打了许多折扣,那就是效率。在我当时用的 Dreamhost 主机上,Movable Type 的效率简直可以用“惨不忍睹”来形容了。我当时也上网查了一些文章,结果得到的结论是 perl cgi 的执行效率就是如此,所以 Movable Type 可以说是天生比 WordPress 慢。这让我有种立马回到 WordPress 的感觉,不过我不大甘心就这么放弃了,于是就从那是开始了可以用“自残”形容的 Movable Type 使用历程。

到了去年 12 月,借给我主机的哥们迁移到了 site5,于是我就跟他合租。结果我才知道 Dreamhost 的虚拟主机有多么烂。我在 Dreamhost 上发布整个站点,需要大约 45 分钟,而在 site5 只要 1 分钟多一点。这让我开始接受了 Movable Type 的效率,虽然还是没法和 WordPress 相比,但我已经可以接受了。

从我的网络知识获取渠道上来看,大概是今年初 VPS 开始流行起来了。过去一个人在虚拟主机上装个 blog 程序来写 blog 已经算是比较有技术含量的活了,而现在我看到很多人都开始倒腾起了 VPS。我了解了一下 VPS 的概念,知道了相对于虚拟主机,VPS 有更多的资源,但多数需要使用者有更高的操作技能。我之前就看了很多相关的文章,也比较了几家提供商的方案和价格后,就想找机会试试 VPS。

今年暑假,我和几个同学打算开个站点,看看能不能挣点钱。基于效率上的考虑,我们选择把站点放在 VPS 上。开始的时候我在我的 site5 空间上放了一个 PHP 站,从国内测试的访问速度很不行,换到 VPS 上,国内的同学反应好多了。通过别人的文章推荐和评测,我选择了口碑比较好,价格比较低的 Ramhost。我选择的方案是 256MB 内存的 Micro 方案,机房在堪萨斯城,每月 8.99 美元。经过了大约一天半的实践和研究,算是在上面成功的安装了 Ubuntu 9.10 / Nginx / MySQL / PHP / Memcached / etc.,把站给跑起来了。中间走了一些弯路,不过最后还是弄成了。

Ramhost 有每月 2.99 美元的 80MB 内存的 Nano 方案,我算了算价格后比较心动,再加上之前安装过一次 VPS 了,也有了一些经验。分析一下在上面跑一个私人站点还是可以的,虽然内存很紧张。昨天晚上正式开通了。我没有选择 centos-5-i386-kloxo-hostinabox 那个镜像,尽管别人评价说 Ramhost 的人把它优化的非常小,而且我试了一下果然耗内存很小,但我实在是不喜欢 yum(装好后 yum 还是不能用的)和 kloxo 那种图形化的设定方式。那些选项都不知道在什么地方,之前我也没有经验,被 dns template 之类的东西给搞迷糊了。于是我就装了 debian-5.0-i386,按照这篇文章上讲的优化 Debian 的方法、以及这篇文章讲的优化 MySQL 的方法,把服务器给装好了。之前因为用的 Nginx,从网上找了些资料,说是对 Movable Type 支持不好,我也想尝尝鲜,就装了 Lighttpd。

Lighttpd 确实有 cgi 和 fast-cgi 的支持,不过我看了网上的一些文章,在上面装 Movable Type 似乎特别复杂,复杂到超出了我的兴趣;我自己尝试时数据库那步出了问题;再加上我这几年对 WordPress 也有了一定的改观,所以我最终放弃了安装 Movable Type,而选择了 WordPress。我在 site5 的 WordPress 里试着导入了从 Movable Type 里导出的文章,结果效果很不好。安装了 Markdown 插件之后,段落之间的空行都没了。全篇文章变成了一个大段,太难看了。最后无奈,我只好把过去的页面都放在了 old 目录里了,等着有时间做个转向看看,幸好 Movable Type 是输出静态文件。

我这个最便宜的 VPS 只有 80MB 内存,比较吃紧。我在安装 MySQL 的时候内存飙升到了 127MB。而我的内存加上 Burstable 的才 128MB,结果直接导致机器卡死,安装失败。而且我在刚刚开始使用的时候,看了一篇讲优化的文章,照着上篇删除了一些用户和一些组,导致配置不成功。于是我干脆还原成初始镜像,从头开始。

有了第一次的经历,第二次就快多了。安装 MySQL 的时候我挺紧张,但最后还是出错了,同样是因为内存不够。我按照上面提到的那篇 MySQL 优化的文章,使用了 my-small.cnf 这个配置,在里面添加了 skip-bdb 和 skip-innodb,总算把内存占用量给降下来了。目前 MySQL 一共占用 8MB 左右的内存空间。

我还是不习惯用命令行里操纵 MySQL(SQLite 就没事,奇怪),于是安装了 phpMyAdmin。这次安装的经历比我在上一个 VPS 上在 Ubuntu 10.04 上安装的经历要好的多。上次我装完了之后,配置了半天,才把它配好。而这次因为我用的是 Lighttpd,这就方便多了。安装程序直接做好了安装文件,用 lighty-enable-mod phpmyadmin 来启用相关的模块,就可以在浏览器里面访问了。

第一次使用 Lighttpd,感觉和 Nginx 有一些不同,当中走过一些弯路,最后的结果还算不错。不过我在安装 WordPress 的时候,提示我说 WordPress 不能写 wp-config.php 文件,我查了半天权限也没看出是哪出了问题,只好按要求手动把内容复制到文件里。WordPress 可以自动升级插件、安装扩展功能,这点挺好,但需要 FTP 才行。我本来不想装 FTP 的,但因为这个,就只好装了 vsftpd。弄好了按照配置文件里的注释自己改了改,发现竟然比上次要简单、顺利。不知道是因为我已经有了经验的原因,还是 Ubuntu 和 Debian 之间的不同导致的。

安装完成之后,我现在的内存使用量大概是 55~60MB。占用最大的是 php-cgi,我在 Lighttpd 的 FastCGI 的设定里,把进程数调整为 2,这样除了一个 5.6MB 的主进程外,还有两个副进程。这两个进程经常占用内存上 16MB,让我挺头疼,所以只好限制了进程的数量。目前我的配置文件里,max-procs 我设置为 1,PHP_FCGI_CHILDREN 我设置为 2,PHP_FCGI_MAX_REQUESTS 我暂时设定为 1000。目前用着还可以,内存用到 55MB,作为个人的站点是足够了。如果将来不再弄点别的,我看看要不要再多开一个进程。或者等将来研究研究 WP Super Cache 看看能不能降低一下内存占用。

我在 GoDaddy 注册的这个域名。之前有修改 DNS 的经历,那几次都要花上大约 12 个小时才能生效。结果这次我修改到 Ramhost 的 DNS 时,我看到提示说“给我们几分钟来让设置生效”。我当时没反应过来,但过了不到半小时,我刷新浏览器,发现域名已经指向了 Ramhost 的主机了。这让我感觉很讶异,之前还没有一次这么快过呢。不知道是 GoDaddy 提升了效率,还是仅仅是个例。这也给我带来了一点小麻烦,我本来打算的是先在 GoDaddy 里面修改了 DNS,然后在等待 DNS 生效这段时间内,正好打包旧的数据。结果让我有些猝不及防,我还没开始打包呢,域名就变了。后来我发现 site5 可以通过 “IP 地址/~用户名”的方式来访问,总算是解决了问题。

这次选择了 WordPress,除了我不想再耗费精力的安装 Movable Type 外,也是我比较长期考虑的结果。

这一段时间以来,我一直使用 Movable Type,确实感觉到了一些问题。首先就是资源少,没有 theme 这个问题实在是 Movable Type 用户的心病。社区不活跃、开发也不频繁,我之前因为 Movbale Type 5 里面的 Markdown 插件在国际字符下有问题导致不能发布 Markdown 格式书写的文章的问题,提交过多次报告,等待了很多次的更新,都没有解决问题。后来还是我从一个人的 blog 上看到了解决方案。我把解决方法做成 patch 提交后,也没有什么消息。按理说这么简单的修正应该看到了马上就放进下一次更新里的。难道是 6A 的开发很紧张吗?几次更新我还真没看出什么明显改进来。

相反,WordPress 在这几年里发展很活跃,更新也很明显(这种更新可不像 Movable Type 从 4 到 5 那样)。而且它的插件也确实可以用“浩如烟海”来形容(刚刚居然忘了提 Movable Type 的插件,我从开始使用 Movable Type 到现在,从来没有安装过系统自带的之外的插件,而且还禁用过一些自带的插件)。之前我也说了,现在的插件可以自动更新。设定好了 FTP 帐号后,基本上就杜绝了手工操作 wp-content 目录的麻烦。这写都是 WordPress 进步的标志。还有就是 Movable Type 总是说静态页面的好处,但无论我怎么设定,Movable Type 就是没有需要动态访问数据库的 WordPress 快,或许和磁盘 IO 有关系?反正用了 WordPress 享受到的是更快的速度,何乐而不为呢?

但这样一来我过去的文章就没法导入 WordPress 了。我目前把就的页面都放在了 old 目录下面,等有时间再做转向吧。

从此,我暂时和 Movable Type 说“再见”。虽然不再用它了,但也算是有感情的。希望这次“再见”不会是“永别”吧。

9 thoughts on “Movable Type 情结

  1. 不知道您现在的这个blog是不是在ramhost的nano上运行起来的?我最近也打算买个ramhost nano试试,您这篇文章给我提供了不少帮助!

    1. 是的,nano基本上够用了。我不喜欢kloxo,于是就装的是Debian,其它的系统就有些内存不足的麻烦了。

      不过可惜的是最近ramhost似乎没货……

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据