MoinMoin Wiki 在Linux Apache下的安装

由于本人不熟悉Linux和Apache其中遇到了不少问题Google查阅了一些文档并不尽如人意, 磕磕绊绊终归是搞定了, 做个总结以供参考. 一些细节问题请先查看我的上一篇Blog MoinMoin Wiki 在IIS下的安装与升级 .

准备工作

下载Python和最新版的MoinMoin Wiki, 本文示例中的环境:

主目录: /home/simonw

Web目录: /home/simonw /wiki.cwowaddon.com

Python版本2.5

Wiki版本为1.5.7

Wiki解压安装文件目录: /home/simonw /moin-1.5.7

Wiki安装目录: /home/simonw /MoinMoin

Wiki实例目录: /home/simonw /MoinMoin/simonwwiki

再废话几句, Dreamhost上默认安装了Python2.3, 在wiki安装时会有几个警告, 所以我自己安装了Python2.5,过程很简单.

安装Wiki

tar xzf moin-1.5.7.tar.gz cd moin-1.5.7 python setup.py --quiet install --prefix=/home/simonw/MoinMoin --record=install.log

少许安装完毕后会在/home/simonw /MoinMoin目录下生成这几个子目录lib(主运行程序), share(Wiki实例的模板), bin三个子目录.

创建Wiki实例

将wiki实例置于/home/simonw /MoinMoin/simonwwiki而非Web目录下可以使数据更加安全, 也不用在设置其他的权限. 创建过程主要就是从share目录中拷贝data, underlay目录, 配置文件wikiconfig.py, moin.fcg(入口调用文件, 此处使用了FastCGI模式, 所以用了这个文件) 到wiki实例目录中. 同样可以依据此方式创建多个wiki实例.

将/home/simonw /MoinMoin/share/moin/htdocs目录映射到web目录, 这不是必须的, 你完全可以拷贝到web目录, 但这里存放的是css等skin文件因此共享比较合适.

cd /home/simonw/wiki.cwowaddon.com mdir wiki ln -s /home/simonw/MoinMoin/share/moin/htdocs wiki

打开moin.fcg在顶部添加下面的引用路径, 以便代码能够找到.

#!/home/simonw/bin/python/bin/python # -*- coding: iso-8859-1 -*-import sys sys.path.insert(0, '/home/simonw/lib/lib/python2.5') sys.path.insert(0, '/home/simonw/MoinMoin/lib/python2.5/site-packages') sys.path.insert(0, '/home/simonw/MoinMoin/simonwwiki')

配置wikiconfig.py

data_dir ='/home/simonw/MoinMoin/simonwwiki/data/' data_underlay_dir ='/home/simonw/MoinMoin/simonwwiki/underlay/' url_prefix ='/wiki/htdocs'

配置Apache

打开站点的FastCGI模式, 将比CGI方式快出5倍以上, 把moin.fcg拷贝到/home/simonw/wiki.cwowaddon.com, 并设置为可执行.

chmod +x moin.fcg

建立.htaccess文件, 配置web目录.

options +FollowSymLinks options -Indexes DirectoryIndex moin.fcg ReWriteEngine on RewriteRule ^img/ - [L] RewriteRule ^wiki/htdocs/ - [L] RewriteBase / RewriteRule ^moin\.fcg - [L] RewriteRule ^(.*)$ moin.fcg/$1[L]

上面Url rewrite很关键, Url会变得更加友好 而不是 还需要最后一步使得页面输出的Url也成为这样. 打开moin.fcg修改代码

def handle_request(req, env, form): request = RequestFastCGI(req, env, form, properties = {'script_name': '/'}) request.run()

本文参考了MoinMoinWiki本身的安装帮助文档, 和, 其中都有一些毛病, 最终修正后, 结果较为完美.

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/e841c7dd49a654a49a2d1e4dd77eca24.html