由于这半年需要将文档放在共享平台上,所以决定要部署个wiki。选了一天,最终选了MoinMoin,一个基于Python并且完全不使用数据库的wiki engine来搭建。虽然最后并没有很成功的搭好,不过能够看到页面显示出来,已经破高兴的了~~(另外推荐一个TiddlyWiki,完全使用一个html写成的,可以用来作为个人记事本,当然对于用熟vim和emacs写文档的就可能有些多余了)
- 从moin的压缩包里面解压。然后有两种安装方式,一种是moin自带的默认模式,也就是直接使用wikiserver.py就可以启动wiki,这是最方便的方式。第二种是手动的安装,涉及很多文件的移动和配置,还需要有服务器和相应一些插件的配置经验,我也就是在这方面不太熟悉,所以在这里花了很久时间。
- 一下主要记录手动安装的过程。里面可能会提到一些简略的操作,具体可以看moin的installation guide。
- 首先使用setup.py将文件安装到/usr/local/,这样会将2种不同的文件放置在不同地方,一种是wiki具体涉及的页面数据文件,包括图片、CSS、JS等,放在/usr/local/lib/python2.5/site-packages/MoinMoin/里面;另外的是moin相关的配置文件,包括moin内部的配置,服务器到Moin的配置,还有一些备份数据的路径等,配置在/usr/local/share/moin/里面。
- 然后是moin内部的配置,在/usr/local/share/moin/config/wikiconfig.py里面配置,需要将备份数据的路径(data_dir)和帮助页面(underlay_dir)的路径给设置,这里是/usr/local/share/moin/data和/usr/local/share/moin/。同时在wikiconfig.py里面还有sitename的设置,这个是显示在wiki上面的名字。
- 然后配置moin的服务器配置,需要修改/usr/local/share/moin/server/moin.wsgi。需要增加的是sys.path.insert这行,需要增加两个moin存放数据的路径,分别是wiki网站数据目录和wiki的配置文件,在这里是/usr/local/lib/python2.5/site-packages和/usr/local/share/moin/config.
- 然后需要在apache里面设置moin的启动脚本的路径,在/etc/httpd/config/httpd.conf里面增加下面的代码WSGIScriptAlias /wiki /usr/local/share/moin/server/moin.wsgi。这么设置的意思是将wiki/命名域对应到该脚本去,那么当输入www.domain.com/wiki的时候就是打开wiki的网址。我在这里使用的是single wiki的配置,也就是只用moin搭建一个moin的实体。并且我使用的是apache的embeded模式,也就是moin是由apache来负责启动。
- 接下来需要设置将/usr/local/share/moin/这个目录的权限设置成apache的进程的用户权限,使得apache可以读写这个目录里面的东西。这里需要注意 ,如果你的apache是使用apache:apache启动的话,那么就将moin安装的目录(/usr/local/lib/python2.5/site-packages/MoinMoin/和/usr/local/share/moin/)的权限,输入下面的命令来修改(下面以/usr/local/share/moin为例)。
cd /usr/local/share
chown -R apache:apache moin
chmod -R ug+rwX moin
chmod -R o-rwx moin - 接下来这步很重要,因为他会影响到wiki上面的图片的显示。修改/usr/local/share/moin/config/wikiserver.py里面的url_prefix_static = '/wiki' + url_prefix_static。这里的/wiki对应之前apache里面的命名域,这一部使得moin可以找到static数据的位置。注意如果之前命名域里面使用了/的话,这一步可以省略掉。
- 重启apache,然后wiki就会启动了。在浏览器里面输入localhost/wiki就可以看到moinwiki了~~
最后终于可以正常的运行Moin了~~
另外需要注意以下几个地方:
- 如果使用了inline_latex这个parser插件,那么会在从WORD往GUI编辑器里面贴东西的时候发生pluginMissingException这个错误。所以建议还是不要使用这个插件了。有一个text_x_mathtran这个插件比较好用。
- 如果在CentOS上面安装WSGI的话,要注意不能同时安装了mod_python。这样会导致mod_wsgi不能正常的启动。
PS: 选用moinmoin的原因是他是完全不使用数据库,这样省得我去配置。并且还是用python写的,我之后也会学到,所以就选了这个来当学习材料~~
其实在安装Apache上面的应用的时候,要多查看/var/log/httpd/里面的输出,这样比较容易差错。
参考资料: