Quickly Install MoinMoin
::-- ZoomQuiet [2006-04-28 13:08:32]
Contents
- Changelog
- 2010-03 增补 1.9.x 的安装,以及使用 Lifhttpd 带 CGI 发布
- 2006-04 创建
理解MoinMoin 运行环境
MoinMoin 宣称是:""" MoinMoin is an advanced, easy to use and extensible WikiEngine with a large community of users.... """ 高级的,易用的,可扩展的,拥有广大社区用户的 维基引擎!
我们一开始关注的只是 易用的 !
MoinMoin的确作到了这种效果—— 仅仅一个moin.cgi 文件就可以发布整个MoinMoin 服务!
可以说,MoinMoin 环境是依托于Python 的强大环境,通过CGI等等通用Web 应用发布形式公开的应用平台。 即,其安排必定是简单易行的!因为一切功能都在Python 环境中,其它无有依赖!
信息
安装帮助 文档一定要先都看一看,了解可能的问题
不过系统的提示信息一定要注意,可以避免很多误解…………以FreeBSD 中使用ports 的默许安装方式的最后提示信息为例
************************************************************ # 提示要进行实例化 Important: You have currently no wiki instance installed. # 给了实例化的命令提示 If you're installing from ports, just run 'make instance' with appriopriate arguments. eg. make MOINTYPE=FCGI MOINDEST=/usr/local/www/wiki instance If you're installing from package, run these commands. ## 详细的进一步运行配置:: # Choose here one script depending on the type of wiki you # want : moin.py (standalone), moin.fcg (FCGI) or moin.cgi. export MOINSCRIPT="moin.cgi" # Defaults should be fine but you may want to modify these. export MOINDIR="/usr/local/share/moin" export MOINDEST="/usr/local/www/wiki" # Set this to your apache user and group. export CGIUSER="www" export CGIGROUP="www" mkdir -p ${MOINDEST}/data mkdir -p ${MOINDEST}/underlay cp -R ${MOINDIR}/data ${MOINDEST} cp -R ${MOINDIR}/underlay ${MOINDEST} chmod -R u+rw,go-ws ${MOINDEST}/data install -m 0555 ${MOINDIR}/config/wikiconfig.py ${MOINDEST} test -z "${MOINSCRIPT}" || \ install -m 0555 ${MOINDIR}/server/${MOINSCRIPT} ${MOINDEST} chown -R ${CGIUSER}:${CGIGROUP} ${MOINDEST} Note: export might not work with your shell, use # setenv VAR 'value' instead ************************************************************ ===> Registering installation for moinmoin-1.5.2
ZQ的安装体验
从MoinMoin 1.2.4 开始,各种版本的MoinMoin 都安装过,除了开始有些困惑,后来理解 了MoinMoin 的安装要点就自在自如了:
url_prefix 是需要和Apache 等等web 服务器配合的
moin.cgi等等服务运行文件要和配置文件wikiconfig.py在一起 当然要是有多维基的发布另有技巧
实际布局
根据理解我就可以自由安排各种目录而不会报错
确认MoinMoin 目录:
默许的在/usr/local/lib/python2.4/site-packages/MoinMoin
当然的为了方便,或是其它原因,可以直接使用链接将MoinMoin 移动到任何地方
- 也为了方便的进行版本切换
- 维基实例目录:
所谓实例就是包含moin.cgi等等服务运行文件的相关目录
我的实例目录中是如下安排的:
+--moin | +--Moin153 从python2.4/site-packages 链接过来的实际MoinMoin | +--Moin135 以前用以链接到python2.4/site-packages 的实际MoinMoin | +--data | +--htdocs 要和Apache 等等配合的样式发布目录 | +--server 实际服务运行文件收集,因为现在MoinMoin 不仅仅只会cgi了 \ \--underlay 1.3.5 版本以后新的系统文章收集目录
实际上/usr/local/share/moin 会有自动初始化的一个实例,目录结构和我定制的非常象;不过,为了避免升级时自动覆盖掉你原来的运行实例,一般要组织到其它专门目录
实际配置
这样一来只要重新设置个别配置文件,新的MoinMoin 就准备好可以运行了
CGI 从 Lighttpd
在1.9.2 安装脚本进行了大修订!
- 在 FreeBSD 中最简单的发布配置
/usr/local/etc/lighttpd.conf
server.modules = ( ... "mod_cgi", # 唯一依赖 ... server.username = "www" server.groupname = "www" ... # 指定 .cgi 是用 python 运行 static-file.exclude-extensions = ( ".php", ".pl", ".fcgi",".cgi" ) cgi.assign = ( ".cgi" => "/usr/local/bin/python" ) # MoinMoin 环境绑定 alias.url = ("/moin_static192" => "/wiki/dm.wps.cn/htdocs/" ) alias.url += ("/moin" => "/wiki/dm.wps.cn/server/moin.cgi" )
部署 MoinMoin 实例,手工整理好目录:
一般直接从 /usr/local/share/moin/ 复制到你喜欢的目录中就好
建议:
path/to/u/维基实例: +-- config # 配置样例目录 +-- data # 维基实体目录 +-- cache # 缓存入口 +-- dict # 搜索字典 |-- intermap.txt # InterWiki 定义文件 +-- pages # 用户文章入口 +-- plugin # 插件入口 `-- user # 用户注册信息 +-- htdocs # 样式和静态文件 +-- server # 运行脚本入口 |-- moin |-- moin.ajp |-- moin.cgi |-- moin.fcgi |-- moin.scgi |-- moin.wsgi |-- moin_wsgi |-- test.wsgi |-- wikiconfig.py # 实例配置文件,从 ../config 复制过来 `-- wikiserverconfig.py `-- underlay # 系统默认文章
配置实例: wikiconfig.py
instance_dir = '/path/2/u/维基实例' .. url_prefix_static = '/moin_static192' # 这就是和Lighttpd 配合的静态文件目录
- 启动Lighttpd ,注意:
Are you nuts ? Don't apply a SUID bit to this binary 错误一般是 /usr/local/sbin/lighttpd 的owner 和配置中不吻合
# chown www /usr/local/sbin/lighttpd 就好
failed: Permission denied /var/log/lighttpd.access.log 明确是权限问题了...
MoinMoin 1.9.2
ThemeMarket/Europython - http://moinmo.in/ThemeMarket/Europython
WSGI 从 Nginx
在1.8 之后都建议使用 WSGI 模式发布!
Nginx 准备
根据:果果的家 » FreeBSD下用ports安装nginx的uwsgi模块
修订 /usr/ports/www/nginx 相关文件
- 将 uwsgi-0.9.4 编译 入 nginx-0.7.64
配置发布
首先Python 要有 flup 支持,在BSD 中:
$ cd /usr/ports/www/py-flup $ sudo make install clean
- 继续探索中...
CGI 在 Apache
Apache的发布配置,以CGI模式:
<VirtualHost ... .... ScriptAlias /moin "/path/to/my/server/moin.cgi" Alias /htdocs "/path/to/my/htdocs/" <Directory "/path/to/my/htdocs"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> ...
对应的wikiconfig.py配置项:
#/path/to/my/server/wikiconfig.py ... data_dir = '/path/to/my/data/' data_underlay_dir = '/path/to/my/underlay/' url_prefix = '/htdocs' #要和Apache中声明的相同
齐活!!MoinMoin 已经安装好了!
运行调试
但是不能说现在可以如意的运行,因为新安装的系统总有这儿那儿的问题,所以简单的协调一下子就成……
利用Python 的 trackback 功能!
#cd /path/to/my/server/ #python ./moin.cgi
看一下子输出,如果是HTML 代码,那未恭喜你!可以重启Apache 发布MoinMoin 了!
- 有错误?!读一下子提示,一般无非是几种情况:
权限不足 不用讲了,是人都会使用 chmod 命令吧?!-)
另外注意,如果 moin.cgi 安装到特殊目录,一定也要相应的进行权限声明,允许CGI 可执行,否则,网络是访问不了的
<Directory "/path/to/my/moin/serv"> Order allow,deny Allow from all </Directory>
配置文件找不到 不是位置不对,就是该死的doc 文件的非常回行符问题
Python环境找不到 看一下子moin.cgi 的头部和你系统环境一致?
至此,应该说基本上绝大多数情况下MoinMoin 已经正确完全的安装/升级完毕了!
除了目录的整理,可以说MoinMoin 的安装,配置只有两个文件,几行文字的定制…………
总结
战略上要轻视MoinMoin 的安装,战术上要重视/小心MoinMoin 的实例目录的安排!其它无它!
WinterSu的安装体验
最最小白的方法,按部就班吧
适合于1.9.3
安装本地的wiki
sudo aptitude update
sudo aptitude upgrade
sudo aptitude install ssh samba smbclient apache2 libapache2-mod-wsgi
tar xvzf moin-1.9.3.tar.gz
cd moin-1.9.3/
sudo python setup.py install --force --prefix /usr/local --record=install.log
cd /usr/local/share/moin/server
cd /usr/local/share/moin
sudo cp server/moin.wsgi .
sudo cp config/wikiconfig.py .
编辑/etc/apache2/httpd.conf,在结尾处加入:
#
# MoinMoin WSGI configuration
#
# you will invoke your moin wiki at the root url, like http://servername/FrontPage:
WSGIScriptAlias / /usr/local/share/moin/moin.wsgi
# create some wsgi daemons - use user/group same as your data_dir: WSGIDaemonProcess moin user=www-data group=www-data processes=5 threads=10 maximum-requests=1000 umask=0007
# use the daemons we defined above to process requests! WSGIProcessGroup moin
编辑/usr/local/share/moin/moin.wsgi,在注释a2)段落的结尾后加入:
sys.path.insert(0, '/usr/local/share/moin') cd /usr/local/share
sudo chown -R www-data:www-data moin
sudo chmod -R ug+rwX moin
sudo chmod -R o-rwx moin
sudo /etc/init.d/apache2 restart
修改/usr/local/share/moin/wikiconfig.py中的管理员为需要的值:
page_front_page = u"FrontPage" #去掉此选项之前的“#”
superuser = [u"WikiAdmin", ]
sudo /etc/init.d/apache2 restart
使用WikiAdmin创建账户并登录系统,并在下面页面中安装帮助页面包:
http://localhost/LanguageSetup?action=language_setup
反馈
呜呼!使用wikiserver.py的体验总是失败的!所有配置都不生效!1.9.3和1.8.8!呜呼!——WinterSu