终于开始使用 MoinMoin

今天我终于把自己的 wiki 系统换成了 MoinMoin。

我对 MoinMoin 算是觊觎已久了,我的 blog 上关于 MoinMoin 最早的一篇文章是两年前的《还是建了一个 wiki》,那也是我在自己的网站上搭建 wiki 的开始。本来我用 wiki 是像用它来管理我的网页,因为这样可以在浏览器里用方便的结构化文本来生成页面,而不用我麻烦的手写 HTML,当时我试用了几个 wiki 程序都不符合我的要求。主要原因是 wiki 的内容限制有些死板,我不想把我的首页弄得像一个 wiki,我想让它像一个网页。而那些 wiki 程序都以安全为由把用户可以输入的内容限制的死死的,令我非常不爽。后来我放弃了用 wiki 来管理整个网站的想法,转而建立一个单独的 wiki,于是我在当时用的 Site5 共享空间上用 MediaWiki 搭建了一个 wiki。当时我已经想用 MoinMoin 了,可惜用共享空间来搭建 MoinMoin 太麻烦,我最后放弃了。

到了 2010 年的 10 月,我自己开始试用了 VPS,当时也尝试过安装 MoinMoin,不过失败了。虽然现在看来我觉得安装 MoinMoin 不难,但对我来说有些事情是必须要经历过一次才能理解的,在这之前我没有成功的在远程主机上安装成功过 MoinMoin。

2011 年 7 月 2 日我第一次在自己的 VPS 成功安装了 MoinMoin,用 Nginx + FastCGI 来运行,感觉不错。不过由于中文文件名等原因,我到了第二天就放弃了

今年年初我第一次给自己买了 512M 内存的 VPS,有很大的资源可以让我稍微挥霍一下,不用严格计算内存的用量了。本着学习的想法,我在这个 VPS 上装上了 Apache 服务器。在稍微熟悉了一下 Apache 的配置之后,我尝试着在上面跑 MoinMoin。MoinMoin 的文档上说用 WSGI 来运行 MoinMoin 是推荐的方法,但我就是没办法让 MoinMoin 在 Apache + mod_wsgi 模式下正常运行,于是我的尝试又一次失败了。那时我把 wiki 程序换成了 DokuWiki,用起来感觉很不错,当时我基本上都决定了之后就一直用 DokuWiki 下去了,结果命运弄人,偏偏我这时候瞎猫碰上死耗子一般的成功把 MoinMoin 在 Apache + mod_wsgi 模式下给跑起来了。

我今年初在买 VPS 的时候,因为 Ramhost 的 512M OpenVZ VPS 断货,于是我就买了 KVM 的。后来我又找到了 YardVPS 的更廉价的 512M Xen VPS,于是我最终把我的网站放到了 Xen 上。而 KVM 在这一个月内就被我用作了实验的机器。在把可以安装的操作系统装了个遍后,空余下来的我又尝试了一次安装 MoinMoin。这次我按照这篇文章中的讲解做了一遍,结果就成功了。对比这次和我之前的安装方法,我发现很大一部分原因是我中间少了给 moin.wsgi 文件添加查找路径那一步,还有就是我对 WSGIScriptAlias 要放在什么位置有困惑,这次上我试验了一下就给成了。

我是在实验用的 KVM 主机上安装的 MoinMoin,但要不要用它来替换我正在使用的 DokuWiki,我还拿不准。我稍微的在实验用的主机上用 MoinMoin 添加了几篇文章看了看,发现 MoinMoin 和 DokuWiki 的 wiki 语法在有些方面正好相反,需要转换一下;后台文字界面的编辑器没有乱七八糟的多余功能,其它方面的差距并不是特别明显。相比较而言,DokuWiki 更加方便一些,功能都被配置到了最好,安装上去后几乎不用改什么地方就可以很好的使用,而 MoinMoin 的配置性更高一些,看了一下帮助文档,我也学到了很多东西。

我之后打算把实验用的 MoinMoin 给搬到我的工作主机上来,先放在不同的目录下,同时运行,在转移数据的同时也好做对比。不过这时,发生了一个小意外。

我原本的 DokuWiki 是放在 /public_html/wiki 下面的,为了把 wiki 这个名字让给 MoinMoin,我在 ssh 里执行了 mv wiki doku 命令,之后进去 doku 目录找我过去的页面,发现我原先的页面都不见了。大惊之下我仔细检查,发现我原先在安装 DokuWiki 的时候就在 /public_html/doku 下面安装过一个 DokuWiki 来做实验,确定它运行正常之后才在 wiki 下面重新装了一个新的 DokuWiki。而原先的目录没有删除,结果这次出了问题。

我当时脑子不清晰,觉得这有些出乎我的意料,因为我印象里是如果 mv 命令的目标目录已经存在的话,是会覆盖目标目录的,结果这次却是把原始目录给丢掉了。虽然很不解,但我并没有太过担心,因为网页在 Google 上还有缓存,我可以用搜索出过去被缓存的页面,再从上面把内容转移到新的 wiki 中去,虽然有些私有页面和孤立页面没有被缓存很可惜,但我的损失并不大。这也让我下定决心转移到 MoinMoin 上来——因为 DokuWiki 已经被我给弄丢了。结果当我慢悠悠的转移了一个页面之后,再从 Google 搜索里打开其它的页面缓存的时候,我发现那些缓存竟然失效了。看来是在我编辑那个页面的时候,Google 访问了我的主机,发现原先的页面不存在了,于是就把缓存设定成失效了。我抱着试一试的心情去 web.archive.org 看了下,它根本没有收录我的 wiki,我这时才真的急了。

之后我发现我在换到 DokuWiki 之前用的 MediaWiki 还在,我没有删除它,只是给它变了个域名,而里面还有一些早期版本的文章。这让我心情稍微平复了一点,我毕竟没有失去一切,虽然在这一个月内我往 wiki 里添加了很多内容,这些内容的丢失还是让我心疼的想砸电脑来泄愤。话虽如此,这毕竟是我自己的所作所为,也怨不得别人,我也只好接受现实,默默的把文章从 MediaWiki 往 MoinMoin 上转。结果在转移的途中,我竟然看到了 /public_html/doku/wiki/ 这个目录,进去一看这不就是我之前的 DokuWiki 吗,原来我之前的数据还没有丢。静下心来回想了一下,我在执行 mv 命令的时候,目标目录 doku 已经存在了,结果不就是把原始目录给移动到 doku 下面吗。想到这里,我不禁想抽自己一耳光,惩罚自己犯下了如此低级的错误,白惊慌了一场。

之后就好说了,我把过去的数据下载下来,自己一篇一篇的添加进了 MoinMoin 中。文章不算太多,我手动修改添加也没有费多少功夫。当然,在做这些的同时我也学到了不少东西。比如说过去我以为 MoinMoin 没有最近更改这项功能,结果发现这是需要在 RecentChanges 页面下面添加一个 macro 才能搬到的,虽然我很奇怪为什么 MoinMoin 不直接把这个 macro 加到 RecentChanges 里去,不过这样也是 MoinMoin 定制性高的一种体现,毕竟易用性与定制性算是零和博弈的关系。

从两年前到现在,我的主机上的 wiki 系统终于演化到了我的目标 MoinMoin,让我有了一种两年的长跑结束了的感觉。当然,我对于 MoinMoin 的接触才刚刚开始,我已经发现 MoinMoin 有很多我不了解的地方,看来我在将来又可以学到新东西了。

《终于开始使用 MoinMoin》有6条评论

发表评论

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