由于本人不熟悉Linux和Apache其中遇到了不少问题搜索查阅了一些文档并不尽如人意, 磕磕绊绊终归是搞定了, 做个总结以供参考.
准备工作
下载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会变得更加友好http://wiki.cwowaddon.com/simonw 而不是http://wiki.cwowaddon.com/moin.fcg/simonw 还需要最后一步使得页面输出的Url也成为这样. 打开moin.fcg修改代码
def handle_request(req, env, form): request = RequestFastCGI(req, env, form, properties = {'script_name': '/'}) request.run()
本文参考了MoinMoinWiki本身的安装帮助文档, 和http://wiki.dreamhost.com/index.php/MoinMoin, 其中都有一些毛病, 最终修正后, 结果较为完美.
Ubuntu下MoinMoin安装设置:http://www.linuxdiyf.com/linux/12106.html
在Ubuntu上搭建LAMP服务器+Wiki:http://www.linuxdiyf.com/linux/12107.html