MoinMoin服务器架设
MoinMoin是用Python语言写的一个开源WiKi服务器,由德国人开发,基于GNU GPL协议发布。MoinMoin的软件架构很灵活,通过Python能很容易进行功能扩展,现在已开发出大量的Plugins。MoinMoin不使用 后台数据库存放数据,而是以文本的形式存放在服务器目录中。debin Wiki网站使用的WiKi系统就是MoinMoin。Moin是德国北部方言"好"、"早上好"的意 思,MoinMoin是"很好"的意思。
MoinMoin不带Web服务器,需与Web服务器配合才能进行WiKi页面的发布。MoinMoin支持的Web服务器有 Apache+CGI、Apache+FastCgi、Apache+Mod_Python、IIS、TwistedWeb和WebLogic等。下面介 绍一下MoinMoin+TwistedWeb和Apache2+Mod_Python两种方式在Debian系统下的安装过程。
在安装MoinMoin前请安装好Python,最好使用最 新的版本。安装MoinMoin的命令如下:
debian:~# apt-get install python2.4-moinmoin moinmoin-common
安装 软件包时要注意版本问题,2.3的包不能和2.4的包混用。 MoinMoin的 源码被安装到/usr/lib/python2.4/site-packages/MoinMoin目录。/usr/share/moin目录存放 MoinMoin系统的模板,内容大致有以下几类:
/usr /share/moin/data目录存放WiKi Pages,Users,etc。只能被MoinMoin访问。
/usr /share/moin/underlay目录存放默认的WiKi Pages,有多种语言版本的帮助文档、默认页面文档等。只能被MoinMoin访问。
/usr/share/moin /htdocs目录存放网页元素,如图片、主题风格等。可被Web Server访问
/usr/share/moin /server目录存放服务器启动脚本示例。
/usr/share/moin/config目录存放配置文件示例。
通 过拷贝模板目录中的文件,就可生成不同的WiKi实例。MoinMoin的软件升级也很简单,只需用新版的模板文件下覆盖旧文就可以了。
创 建MoinMoin实例
在服务器上创建一个目录用于存放实例,目录名不能是wiki,它已被系统保留使用,一个不错的选择是mywiki。
debian:~# mkdir mywiki<br />
从模板目录拷贝实例所需文件。
debian:~# cp -rf /usr/share/moin/data ~/mywiki<br />debian:~# cp -rf /usr/share/moin/underlay ~/mywiki<br />debian:~# cp /usr/share/moin/config/wikiconfig.py ~/mywiki<br />
设置实例目录权限
Debian中的MoinMoin系统默认使用www-data用户运行WiKi服 务器。所以我们的权限设置是:
debian:~# chown -R www-data.www-data ~/mywiki<br />debian:~# chmod -R ug+rw ~/mywiki<br />debian:~# chmod -R o-rwx ~/mywiki<br />
配置TwistedWeb方式,这里介绍的MoinMoin版本是1.3.1的。
首先,我们要安装好twisted,安装命令如下:
debian:~# apt-get install python2.4-twisted python2.4-twisted-bin<br />
安装完Twisted后,就可以开始配置了。TwistedWeb的MoinMoin配置文件是 mointwisted.py,执行文件是mointwisted,这两个文件我们可从模板目录拷贝到实例目录。如:
debian:~# cp /usr/share/moin/server/mointwisted mointwisted.py ~/mywiki<br />
用vim等文本编辑器打开mointwisted.py配置文件,需修改两个地方,以指向正确的配置文件路径,修改后的内容如下:
"""<br /> twisted.web based wiki server<br /><br /> Run this server with mointwisted script on Linux or Mac OS X, or<br /> mointwisted.cmd on Windows.<br /> <br /> @copyright: 2004-2005 Thomas Waldmann, Oliver Graf, Nir Soffer<br /> @license: GNU GPL, see COPYING for details.<br />"""<br /><br /># System path configuration<br /><br />import sys<br /><br /># Path of the directory where wikiconfig.py is located.<br /># YOU NEED TO CHANGE THIS TO MATCH YOUR SETUP.<br />#sys.path.insert(0, '/etc/moin')<br />sys.path.insert(0,'/root/mywiki') #修改1:指向你的wikiconfig.py文件所在的目录<br /># Path to MoinMoin package, needed if you installed with --prefix=PREFIX<br /># or if you did not use setup.py<br /><br /># Path to the directory where farmconfig is located (if different).<br />#sys.path.insert(0, '/etc/moin') #修改2:注释掉该行内容,从1.5版开始已默认注释该行<br /><br /># Debug mode - show detailed error reports<br />## import os<br />## os.environ['MOIN_DEBUG'] = '1'<br /><br />from MoinMoin.server.twistedmoin import TwistedConfig, makeApp<br /> <br /> <br />class Config(TwistedConfig):<br /> <br /> # Server name<br /> # Used to create .log, .pid and .prof files<br /> name = 'mointwisted'<br /> <br /> # Path to moin shared files (default '/usr/share/moin/wiki/htdocs')<br /> docs = '/usr/share/moin/htdocs'<br /><br /> # The server will run with as this user and group (default 'www-data')<br /> user = 'www-data' <br /> group = 'www-data'<br /><br /> # Port (default 8080)<br /> # To serve privileged port under 1024 you will have to run as root<br /> port = 8080 <br /><br /> # Interfaces (default [''])<br /> # The interfaces the server will listen to. <br /> # [''] - listen to all interfaces defined on the server<br /> # ['red.wikicolors.org', 'blue.wikicolors.org'] - listen to some<br /> # If '' is in the list, other ignored.<br /> interfaces = ['']<br /><br /> # How many threads to use (default 10, max 20)<br /> # The more threads you use, the more memory moin uses. All thread<br /> # use one CPU, and will not run faster, but might be more responsive<br /> # on a very busy server.<br /> threads = 10<br /><br /> # Set logfile name (default commented)<br /> # This is the *Apache compatible* log file, not the twisted-style logfile.<br /> # Leaving this as None will have no Apache compatible log file. Apache<br /> # compatible logfiles are useful because there are quite a few programs<br /> # which analyze them and display statistics.<br /> ## logPath = 'mointwisted.log'<br /><br /> # Memory profile (default commented)<br /> # Useful only if you are a developer or interested in moin memory usage<br /> ## from MoinMoin.util.profile import TwistedProfiler<br /> ## memoryProfile = TwistedProfiler('mointwisted',<br /> ## requestsPerSample=100,<br /> ## collect=0)<br /><br /> # Hotshot profile (default commented)<br /> # Not compatible with threads.<br /> ## hotshotProfile = name + '.prof'<br /><br /><br /># Create the application<br />application = makeApp(Config)<br />
配置MoinMoin Wiki系统
Single Wiki的配置文件是wikiconfig.py,位于实例目录下,它默认已可很好工作。它的内容如下:
# -*- coding: utf-8 -*- #为了在MoinMoin中使用中文,请用utf-8编码<br /># IMPORTANT! This encoding (charset) setting MUST be correct! If you live in a<br /># western country and you don't know that you use utf-8, you probably want to<br /># use iso-8859-1 (or some other iso charset). If you use utf-8 (a Unicode<br /># encoding) you MUST use: coding: utf-8<br /># That setting must match the encoding your editor uses when you modify the<br /># settings below. If it does not, special non-ASCII chars will be wrong.<br /> <br />""" <br /> MoinMoin - Configuration for a single wiki<br /> <br /> If you run a single wiki only, you can omit the farmconfig.py config<br /> file and just use wikiconfig.py - it will be used for every request<br /> we get in that case.<br /> <br /> Note that there are more config options than you'll find in<br /> the version of this file that is installed by default; see<br /> the module MoinMoin.multiconfig for a full list of names and their<br /> default values.<br /> <br /> Also, the URL http://moinmoin.wikiwikiweb.de/HelpOnConfiguration has<br /> a list of config options.<br /> <br /> @copyright: 2000-2005 by Juergen Hermann <jh@web.de><br /> @license: GNU GPL, see COPYING for details.<br />""" <br /> <br />from MoinMoin.multiconfig import DefaultConfig<br /><br /> <br />class Config(DefaultConfig):<br /> <br /> # Wiki identity ----------------------------------------------------<br /> <br /> # Site name, used by default for wiki name-logo [Unicode]<br /> sitename = u'Untitled Wiki' #你的WiKi网站的名称<br /> <br /> # Wiki logo. You can use an image, text or both. [Unicode]<br /> # Example: u'<img src="/wiki/mywiki.png" alt="My Wiki" />My Wiki'<br /> # For no logo or text, use ''<br /> logo_string = sitename #WiKi的logo<br /> <br /> # The interwiki name used in interwiki links<br /> interwikiname = None<br /> <br /> <br /> # Critical setup ---------------------------------------------------<br /><br /> # Misconfiguration here will render your wiki unusable. Check that<br /> # all directories are accessible by the web server or moin server.<br /> <br /> # If you encounter problems, try to set data_dir and data_underlay_dir<br /> # to absolute paths.<br /> <br /> # Where your mutable wiki pages are. You want to make regular<br /> # backups of this directory.<br /> data_dir = './data/'<br /> <br /> # Where read-only system and help page are. You might want to share<br /> # this directory between several wikis. When you update MoinMoin,<br /> # you can safely replace the underlay directory with a new one. This<br /> # directory is part of MoinMoin distribution, you don't have to<br /> # backup it.<br /> data_underlay_dir = './underlay/'<br /><br /> # This must be '/wiki' for twisted and standalone. For CGI, it should<br /> # match your Apache Alias setting.<br /> url_prefix = '/wiki'<br /> <br /> <br /> # Security ----------------------------------------------------------<br /> <br /> # Security critical actions (disabled by default)<br /> # Uncomment to enable options you like.<br /> allowed_actions = ['DeletePage', 'AttachFile', 'RenamePage'] #允许删除、上传和改名操作,操作受ACL约束。<br /><br /> # Enable acl (0 to disable)<br /> acl_enabled = 1 #开启ACL(访问控制列表)功能<br /><br /> # IMPORTANT: grant yourself admin rights! replace YourName with<br /> # your user name. See HelpOnAccessControlLists for more help.<br /> # All acl_rights_xxx options must use unicode [Unicode]<br /> acl_rights_before = u"YourName:read,write,delete,revert,admin" #替换YourName,该用户具有管理员权限。<br /><br /> # Link spam protection for public wikis (Uncomment to enable)<br /> # Needs a reliable internet connection.<br /> #from MoinMoin.util.antispam import SecurityPolicy<br /><br /><br /> # Mail --------------------------------------------------------------<br /><br /> # Configure to enable subscribing to pages (disabled by default)<br /> # or sending forgotten passwords.<br /><br /> # SMTP server, e.g. "mail.provider.com" (empty or None to disable mail)<br /> mail_smarthost = ""<br /><br /> # The return address, e.g "My Wiki <noreply@mywiki.org>"<br /> mail_from = ""<br /><br /> # "user pwd" if you need to use SMTP AUTH<br /> mail_login = ""<br /><br /><br /> # User interface ----------------------------------------------------<br /><br /> # Add your wikis important pages at the end. It is not recommended to<br /> # remove the default links. Leave room for user links - don't use<br /> # more than 6 short items.<br /> # You MUST use Unicode strings here, but you need not use localized<br /> # page names for system and help pages, those will be used automatically<br /> # according to the user selected language. [Unicode]<br /> navi_bar = [ #FrontPage中的导航栏,可根据自已需求增减。<br /> # Will use page_front_page, (default FrontPage)<br /> u'%(page_front_page)s',<br /> u'RecentChanges',<br /> u'FindPage',<br /> u'HelpContents',<br /> ]<br /><br /> # The default theme anonymous or new users get<br /> theme_default = 'modern' #默认的页面风格<br /><br /> # Language options --------------------------------------------------<br /><br /> # See http://moinmoin.wikiwikiweb.de/ConfigMarket for configuration in <br /> # YOUR language that other people contributed.<br /><br /> # The main wiki language, set the direction of the wiki pages<br /> default_lang = 'zh' #默认语言<br /><br /> # You must use Unicode strings here [Unicode] #页面默认正则式,<br /> page_category_regex = u'^Category[A-Z]' #以Category字符串开头的页面是分类页面<br /> page_dict_regex = u'[a-z]Dict
按保存,MoinMoin会把上面的DocBook文档自动转换成HTML文档输出。注意,DocBoo文档的encoding一定要 用utf-8。我是在python2.4环境下做以上测试的,在python2.3中测试不成功,会出现字符编码出错提示。还有一个问题就是不能使用本地 的dtd文件,会提示docbookx.dtd文档不存在错误。好象上面示例使用网上的dtd就没问题,但利用网上dtd时,HTML输出速度慢。从上面 的测试结果来看,在WiKi中自动转换DocBook还不是很实用,一个是速度问题,上面已说过。另一个是编辑器问题,基于Web的编辑界面大简单了,远 远比不上emacs等工具。
有关MoinMoin的使用可参考自带的帮助文档,有很多都是中文版的了,查 询起来很方便的。在MoinMoin的官方网站http://moinmoin.wikiwikiweb.de/上也有最新的教材可参考。有关中文化方面,现在的 MoinMoin已支持I18n,会根据浏览器的设置自动显示多国语言。中文化支持也有很多志愿者在做,教材和帮助很多都是中文的了。如果你想为 MoinMoin的中文化做贡献,请到http://moinmaster.wikiwikiweb.de/注册个帐号,然后把你的帐号放到 MoinPagesEditorGroup页面就可以进行翻译了。
小提示:
#以Dict字符串结束的页面是字典页面任何用户在页面中添加ACL都需要有管理权限(admin)。
wikiconfig.py 配置文档编码需是UTF-8格式的,如果不是UTF-8格式,就不能在该文档中使用中文。我们可用Kwrite编辑器来把它保存成UTF-8格式的。
/usr /lib/python2.3/site-packages/MoinMoin/theme目录存放MoinMoin的各种主题处理脚本,修改这些脚本可 实现界面功能的增减,如取消标题搜索栏等。
/usr/share/moin/htdocs/目录下存放有各种主题的 CSS文档,修改这些文档可实现界面风格的改变,如布局、字体大小和背景颜色等。
删除页面时,页面文件不会从 data/pages目录真正删除,它只是把文件的当前版本号增一,并在edit-log中记录删除日志。要真正删除页面,只能通过shell删除页面所 在的目录。
当用户创建个人页面后,每当用户编辑完任意一个页面,都会生成一个备份,存放在 username/MoinEditorBackup目录下。个人页面是指以用户名命名的WiKi页面。
page_form_regex = u'[a-z]Form按保存,MoinMoin会把上面的DocBook文档自动转换成HTML文档输出。注意,DocBoo文档的encoding一定要 用utf-8。我是在python2.4环境下做以上测试的,在python2.3中测试不成功,会出现字符编码出错提示。还有一个问题就是不能使用本地 的dtd文件,会提示docbookx.dtd文档不存在错误。好象上面示例使用网上的dtd就没问题,但利用网上dtd时,HTML输出速度慢。从上面 的测试结果来看,在WiKi中自动转换DocBook还不是很实用,一个是速度问题,上面已说过。另一个是编辑器问题,基于Web的编辑界面大简单了,远 远比不上emacs等工具。
有关MoinMoin的使用可参考自带的帮助文档,有很多都是中文版的了,查 询起来很方便的。在MoinMoin的官方网站http://moinmoin.wikiwikiweb.de/上也有最新的教材可参考。有关中文化方面,现在的 MoinMoin已支持I18n,会根据浏览器的设置自动显示多国语言。中文化支持也有很多志愿者在做,教材和帮助很多都是中文的了。如果你想为 MoinMoin的中文化做贡献,请到http://moinmaster.wikiwikiweb.de/注册个帐号,然后把你的帐号放到 MoinPagesEditorGroup页面就可以进行翻译了。
小提示:
任何用户在页面中添加ACL都需要有管理权限(admin)。
wikiconfig.py 配置文档编码需是UTF-8格式的,如果不是UTF-8格式,就不能在该文档中使用中文。我们可用Kwrite编辑器来把它保存成UTF-8格式的。
/usr /lib/python2.3/site-packages/MoinMoin/theme目录存放MoinMoin的各种主题处理脚本,修改这些脚本可 实现界面功能的增减,如取消标题搜索栏等。
/usr/share/moin/htdocs/目录下存放有各种主题的 CSS文档,修改这些文档可实现界面风格的改变,如布局、字体大小和背景颜色等。
删除页面时,页面文件不会从 data/pages目录真正删除,它只是把文件的当前版本号增一,并在edit-log中记录删除日志。要真正删除页面,只能通过shell删除页面所 在的目录。
当用户创建个人页面后,每当用户编辑完任意一个页面,都会生成一个备份,存放在 username/MoinEditorBackup目录下。个人页面是指以用户名命名的WiKi页面。
page_group_regex = u'[a-z]Group
按保存,MoinMoin会把上面的DocBook文档自动转换成HTML文档输出。注意,DocBoo文档的encoding一定要 用utf-8。我是在python2.4环境下做以上测试的,在python2.3中测试不成功,会出现字符编码出错提示。还有一个问题就是不能使用本地 的dtd文件,会提示docbookx.dtd文档不存在错误。好象上面示例使用网上的dtd就没问题,但利用网上dtd时,HTML输出速度慢。从上面 的测试结果来看,在WiKi中自动转换DocBook还不是很实用,一个是速度问题,上面已说过。另一个是编辑器问题,基于Web的编辑界面大简单了,远 远比不上emacs等工具。
有关MoinMoin的使用可参考自带的帮助文档,有很多都是中文版的了,查 询起来很方便的。在MoinMoin的官方网站http://moinmoin.wikiwikiweb.de/上也有最新的教材可参考。有关中文化方面,现在的 MoinMoin已支持I18n,会根据浏览器的设置自动显示多国语言。中文化支持也有很多志愿者在做,教材和帮助很多都是中文的了。如果你想为 MoinMoin的中文化做贡献,请到http://moinmaster.wikiwikiweb.de/注册个帐号,然后把你的帐号放到 MoinPagesEditorGroup页面就可以进行翻译了。
小提示:
任何用户在页面中添加ACL都需要有管理权限(admin)。
wikiconfig.py 配置文档编码需是UTF-8格式的,如果不是UTF-8格式,就不能在该文档中使用中文。我们可用Kwrite编辑器来把它保存成UTF-8格式的。
/usr /lib/python2.3/site-packages/MoinMoin/theme目录存放MoinMoin的各种主题处理脚本,修改这些脚本可 实现界面功能的增减,如取消标题搜索栏等。
/usr/share/moin/htdocs/目录下存放有各种主题的 CSS文档,修改这些文档可实现界面风格的改变,如布局、字体大小和背景颜色等。
删除页面时,页面文件不会从 data/pages目录真正删除,它只是把文件的当前版本号增一,并在edit-log中记录删除日志。要真正删除页面,只能通过shell删除页面所 在的目录。
当用户创建个人页面后,每当用户编辑完任意一个页面,都会生成一个备份,存放在 username/MoinEditorBackup目录下。个人页面是指以用户名命名的WiKi页面。
page_template_regex = u'[a-z]Template
按保存,MoinMoin会把上面的DocBook文档自动转换成HTML文档输出。注意,DocBoo文档的encoding一定要 用utf-8。我是在python2.4环境下做以上测试的,在python2.3中测试不成功,会出现字符编码出错提示。还有一个问题就是不能使用本地 的dtd文件,会提示docbookx.dtd文档不存在错误。好象上面示例使用网上的dtd就没问题,但利用网上dtd时,HTML输出速度慢。从上面 的测试结果来看,在WiKi中自动转换DocBook还不是很实用,一个是速度问题,上面已说过。另一个是编辑器问题,基于Web的编辑界面大简单了,远 远比不上emacs等工具。
有关MoinMoin的使用可参考自带的帮助文档,有很多都是中文版的了,查 询起来很方便的。在MoinMoin的官方网站http://moinmoin.wikiwikiweb.de/上也有最新的教材可参考。有关中文化方面,现在的 MoinMoin已支持I18n,会根据浏览器的设置自动显示多国语言。中文化支持也有很多志愿者在做,教材和帮助很多都是中文的了。如果你想为 MoinMoin的中文化做贡献,请到http://moinmaster.wikiwikiweb.de/注册个帐号,然后把你的帐号放到 MoinPagesEditorGroup页面就可以进行翻译了。
小提示:
任何用户在页面中添加ACL都需要有管理权限(admin)。
wikiconfig.py 配置文档编码需是UTF-8格式的,如果不是UTF-8格式,就不能在该文档中使用中文。我们可用Kwrite编辑器来把它保存成UTF-8格式的。
/usr /lib/python2.3/site-packages/MoinMoin/theme目录存放MoinMoin的各种主题处理脚本,修改这些脚本可 实现界面功能的增减,如取消标题搜索栏等。
/usr/share/moin/htdocs/目录下存放有各种主题的 CSS文档,修改这些文档可实现界面风格的改变,如布局、字体大小和背景颜色等。
删除页面时,页面文件不会从 data/pages目录真正删除,它只是把文件的当前版本号增一,并在edit-log中记录删除日志。要真正删除页面,只能通过shell删除页面所 在的目录。
当用户创建个人页面后,每当用户编辑完任意一个页面,都会生成一个备份,存放在 username/MoinEditorBackup目录下。个人页面是指以用户名命名的WiKi页面。
# Content options ---------------------------------------------------
# Show users hostnames in RecentChanges
show_hosts = 1
# Enumerate headlines?
show_section_numbers = 0
# Charts size, require gdchart (Set to None to disable).
chart_options = {'width': 600, 'height': 300}
完整的配置选项可在MoinMoin/multiconfig.py文件找到,wikiconfig.py中的配置就是继承它的。 multiconfig.py文件里的选项是默认配置,不要去修改它。如果我们要修改这些默认配置,可在wikiconfig.py中重新设置它即可。
multiconfig.py 中默认权限配置选项说明
acl_enabled = 1选项配置是否记用ACL,1表示启用,0表示不启用。
acl_rights_default = u"Trusted:read,write,delete,revert Known:read,write,delete,revert All:read,write"选项设置了默认的WiKi页面权限。当WiKi页面没有设置ACL是,就统一采用该设置。
acl_rights_before = u""选项中的权限设置优先级高于WiKi页面中ACL的设置和上面的默认ACL设置。所以一般在该选项中配置我们MoinMoin系统的管理员。该选项 默认在multiconfig.py文件中没有设置。我们要在MoinMoin实例中的wikiconfig.py文件中设置,具体设置请见上同的 wikiconfig.py示例。
acl_rights_after = u""选项中的权限设置优先级低于WiKi页面中ACL的设置和上面的默认ACL设置。
acl_rights_valid = ['read', 'write', 'delete', 'revert', 'admin']选项列出了可以设置权限。
allowed_actions = []选项设置允许的系统定义操作。这些操作有删除页面、页面改名和上传附件等。这些操作的访问权限也会页面的ACL约束。
attachments = None选项设置可通过浏览器直接访问附件。如果要设置该选项,请确保上传到Web服务器上的附件不能被执行。设置方法可参考http://moinmoin.wikiwikiweb.de/HelpOnConfiguration/FileAttachments的 内容。
启动MoinMoin WiKi服务器
debian:~/mywiki# ./mointwisted start<br />
在当前目录会生成一个叫twistd.log的日志文件。如果成功启动,日志文件的内容为:
2005/12/13 11:48 CST [-] Log opened.<br />2005/12/13 11:48 CST [-] twistd 2.0.1 (/usr/bin/python2.4 2.4.2) starting up<br />2005/12/13 11:48 CST [-] reactor class: twisted.internet.selectreactor.SelectReactor<br />2005/12/13 11:48 CST [-] Loading mointwisted.py...<br />2005/12/13 11:48 CST [-] Enabling Multithreading.<br />2005/12/13 11:48 CST [-] Loaded.<br />2005/12/13 11:48 CST [-] MoinMoin.server.twistedmoin.MoinSite starting on 8080<br />2005/12/13 11:48 CST [-] Starting factory <MoinMoin.server.twistedmoin.MoinSite instance at 0xb76004cc><br />2005/12/13 11:48 CST [-] set uid/gid 33/33<br />
MoinMoin成功启动后,在浏览器上打开http://server_name:8080网址即可访问。停止服务器用stop参数 即可。用不带参数的mointwisted命令可以查看命令参数,如:
debian:~/mywiki# ./mointwisted <br />error: nothing to do<br /><br />mointwisted - MoinMoin daemon<br /><br />usage: mointwisted command<br /><br />commands:<br /> start start the server<br /> stop stop the server<br /> restart stop then start the server<br /> kill kill the server<br /><br />@copyright: 2004-2005 Thomas Waldmann, Nir Soffer<br />@license: GNU GPL, see COPYING for details.<br />
Apache2+Mod_Python方式,这里我选用了最新的1.5版的 MoinMoin软件包。
第一步要先 安装Mod_Python模块,要求使用mod_python 3.1.3或以上版本的Mod_Python模块。安装命令如下:
debian:~# apt-get install libapache2-mod-python2.3<br />
下载完软件包后Debian系统会自动进行软件包的配置,回答"Yes"启用Mod_Python模块。这样在/etc /apache2/mods-enabled目录下会创建一个链接到/etc/apache2/mods-available /mod_python.load文件。该文件配置了装载mod_python模块的语句,如:
LoadModule python_module /usr/lib/apache2/modules/mod_python.so<br />
第二步是创建WiKi实例,步骤同上。
第三步是配置wikiconfig.py, 内容如下:
# -*- coding: utf-8 -*- #使用UTF-8编码<br /># IMPORTANT! This encoding (charset) setting MUST be correct! If you live in a<br /># western country and you don't know that you use utf-8, you probably want to<br /># use iso-8859-1 (or some other iso charset). If you use utf-8 (a Unicode<br /># encoding) you MUST use: coding: utf-8<br /># That setting must match the encoding your editor uses when you modify the<br /># settings below. If it does not, special non-ASCII chars will be wrong.<br /><br />"""<br /> MoinMoin - Configuration for a single wiki<br /><br /> If you run a single wiki only, you can omit the farmconfig.py config<br /> file and just use wikiconfig.py - it will be used for every request<br /> we get in that case.<br /><br /> Note that there are more config options than you'll find in<br /> the version of this file that is installed by default; see<br /> the module MoinMoin.multiconfig for a full list of names and their<br /> default values.<br /><br /> Also, the URL http://moinmoin.wikiwikiweb.de/HelpOnConfiguration has<br /> a list of config options.<br /><br /> ** Please do not use this file for a wiki farm. Use the sample file<br /> from the wikifarm directory instead! **<br /><br /> @copyright: 2000-2005 by Juergen Hermann <jh@web.de><br /> @license: GNU GPL, see COPYING for details.<br />"""<br /><br />from MoinMoin.multiconfig import DefaultConfig<br /><br /><br />class Config(DefaultConfig):<br /><br /> # Wiki identity ----------------------------------------------------<br /><br /> # Site name, used by default for wiki name-logo [Unicode]<br /> sitename = u'Untitled Wiki' #你的WiKi网站的名称<br /><br /> # Wiki logo. You can use an image, text or both. [Unicode]<br /> # For no logo or text, use '' - the default is to show the sitename.<br /> # See also url_prefix setting below!<br /> logo_string = u'<img src="/wiki/common/moinmoin.png" alt="MoinMoin Logo" />' #网站Logo<br /><br /> # name of entry page / front page [Unicode], choose one of those:<br /><br /> # a) if most wiki content is in a single language<br /> #page_front_page = u"MyStartingPage"<br /><br /> # b) if wiki content is maintained in many languages<br /> page_front_page = u"FrontPage" #启用首页<br /><br /> # The interwiki name used in interwiki links<br /> #interwikiname = 'UntitledWiki'<br /> # Show the interwiki name (and link it to page_front_page) in the Theme,<br /> # nice for farm setups or when your logo does not show the wiki's name.<br /> #show_interwiki = 1<br /><br /><br /><br /> # Critical setup ---------------------------------------------------<br /><br /> # Misconfiguration here will render your wiki unusable. Check that<br /> # all directories are accessible by the web server or moin server.<br /><br /> # If you encounter problems, try to set data_dir and data_underlay_dir<br /> # to absolute paths.<br /><br /> # Where your mutable wiki pages are. You want to make regular<br /> # backups of this directory.<br /> data_dir = '/root/mywiki/data/' #设置data目录路径,要用绝对路径<br /><br /> # Where read-only system and help page are. You might want to share<br /> # this directory between several wikis. When you update MoinMoin,<br /> # you can safely replace the underlay directory with a new one. This<br /> # directory is part of MoinMoin distribution, you don't have to<br /> # backup it.<br /> data_underlay_dir = '/root/mywiki/underlay/' #设置underlay目录路径,要用绝对路径<br /><br /> # This must be '/wiki' for twisted and standalone. For CGI, it should<br /> # match your Apache Alias setting.<br /> url_prefix = '/wiki' <br /><br /><br /> # Security ----------------------------------------------------------<br /><br /> # This is checked by some rather critical and potentially harmful actions,<br /> # like despam or PackageInstaller action:<br /> superuser = [u"moin_admin", ] #设置超级用户,1.5版新增选项<br /><br /> # IMPORTANT: grant yourself admin rights! replace YourName with<br /> # your user name. See HelpOnAccessControlLists for more help.<br /> # All acl_rights_xxx options must use unicode [Unicode]<br /> #acl_rights_before = u"YourName:read,write,delete,revert,admin" #设置管理权限<br /><br /> # Link spam protection for public wikis (Uncomment to enable)<br /> # Needs a reliable internet connection.<br /> #from MoinMoin.util.antispam import SecurityPolicy<br /><br /><br /> # Mail --------------------------------------------------------------<br /><br /> # Configure to enable subscribing to pages (disabled by default)<br /> # or sending forgotten passwords.<br /><br /> # SMTP server, e.g. "mail.provider.com" (None to disable mail)<br /> mail_smarthost = "smtp.21cn.com" #使用21cn的smtp服务器发送邮件<br /><br /> # The return address, e.g u"Jürgen Wiki <noreply@mywiki.org>" [Unicode]<br /> mail_from = u"yjnet<yjnet@21cn.com>" #发送者<br /><br /> # "user pwd" if you need to use SMTP AUTH<br /> mail_login = "yjnet 123456" #SMTP服务器验证,以"user password"格式填写<br /><br /><br /> # User interface ----------------------------------------------------<br /><br /> # Add your wikis important pages at the end. It is not recommended to<br /> # remove the default links. Leave room for user links - don't use<br /> # more than 6 short items.<br /> # You MUST use Unicode strings here, but you need not use localized<br /> # page names for system and help pages, those will be used automatically<br /> # according to the user selected language. [Unicode]<br /> navi_bar = [ #设置导航栏<br /> # If you want to show your page_front_page here:<br /> u'%(page_front_page)s',<br /> u'RecentChanges',<br /> u'FindPage',<br /> u'HelpContents',<br /> ]<br /><br /> # The default theme anonymous or new users get<br /> theme_default = 'modern' #设置网页主题峁<br /><br /><br /> # Language options --------------------------------------------------<br /><br /> # See http://moinmoin.wikiwikiweb.de/ConfigMarket for configuration in<br /> # YOUR language that other people contributed.<br /><br /> # The main wiki language, set the direction of the wiki pages<br /> language_default = 'zh' #设置默认语言<br /><br /> # You must use Unicode strings here [Unicode]<br /> page_category_regex = u'^Category[A-Z]'<br /> page_dict_regex = u'[a-z]Dict
按保存,MoinMoin会把上面的DocBook文档自动转换成HTML文档输出。注意,DocBoo文档的encoding一定要 用utf-8。我是在python2.4环境下做以上测试的,在python2.3中测试不成功,会出现字符编码出错提示。还有一个问题就是不能使用本地 的dtd文件,会提示docbookx.dtd文档不存在错误。好象上面示例使用网上的dtd就没问题,但利用网上dtd时,HTML输出速度慢。从上面 的测试结果来看,在WiKi中自动转换DocBook还不是很实用,一个是速度问题,上面已说过。另一个是编辑器问题,基于Web的编辑界面大简单了,远 远比不上emacs等工具。
有关MoinMoin的使用可参考自带的帮助文档,有很多都是中文版的了,查 询起来很方便的。在MoinMoin的官方网站http://moinmoin.wikiwikiweb.de/上也有最新的教材可参考。有关中文化方面,现在的 MoinMoin已支持I18n,会根据浏览器的设置自动显示多国语言。中文化支持也有很多志愿者在做,教材和帮助很多都是中文的了。如果你想为 MoinMoin的中文化做贡献,请到http://moinmaster.wikiwikiweb.de/注册个帐号,然后把你的帐号放到 MoinPagesEditorGroup页面就可以进行翻译了。
小提示:
任何用户在页面中添加ACL都需要有管理权限(admin)。
wikiconfig.py 配置文档编码需是UTF-8格式的,如果不是UTF-8格式,就不能在该文档中使用中文。我们可用Kwrite编辑器来把它保存成UTF-8格式的。
/usr /lib/python2.3/site-packages/MoinMoin/theme目录存放MoinMoin的各种主题处理脚本,修改这些脚本可 实现界面功能的增减,如取消标题搜索栏等。
/usr/share/moin/htdocs/目录下存放有各种主题的 CSS文档,修改这些文档可实现界面风格的改变,如布局、字体大小和背景颜色等。
删除页面时,页面文件不会从 data/pages目录真正删除,它只是把文件的当前版本号增一,并在edit-log中记录删除日志。要真正删除页面,只能通过shell删除页面所 在的目录。
当用户创建个人页面后,每当用户编辑完任意一个页面,都会生成一个备份,存放在 username/MoinEditorBackup目录下。个人页面是指以用户名命名的WiKi页面。
page_form_regex = u'[a-z]Form
按保存,MoinMoin会把上面的DocBook文档自动转换成HTML文档输出。注意,DocBoo文档的encoding一定要 用utf-8。我是在python2.4环境下做以上测试的,在python2.3中测试不成功,会出现字符编码出错提示。还有一个问题就是不能使用本地 的dtd文件,会提示docbookx.dtd文档不存在错误。好象上面示例使用网上的dtd就没问题,但利用网上dtd时,HTML输出速度慢。从上面 的测试结果来看,在WiKi中自动转换DocBook还不是很实用,一个是速度问题,上面已说过。另一个是编辑器问题,基于Web的编辑界面大简单了,远 远比不上emacs等工具。
有关MoinMoin的使用可参考自带的帮助文档,有很多都是中文版的了,查 询起来很方便的。在MoinMoin的官方网站http://moinmoin.wikiwikiweb.de/上也有最新的教材可参考。有关中文化方面,现在的 MoinMoin已支持I18n,会根据浏览器的设置自动显示多国语言。中文化支持也有很多志愿者在做,教材和帮助很多都是中文的了。如果你想为 MoinMoin的中文化做贡献,请到http://moinmaster.wikiwikiweb.de/注册个帐号,然后把你的帐号放到 MoinPagesEditorGroup页面就可以进行翻译了。
小提示:
任何用户在页面中添加ACL都需要有管理权限(admin)。
wikiconfig.py 配置文档编码需是UTF-8格式的,如果不是UTF-8格式,就不能在该文档中使用中文。我们可用Kwrite编辑器来把它保存成UTF-8格式的。
/usr /lib/python2.3/site-packages/MoinMoin/theme目录存放MoinMoin的各种主题处理脚本,修改这些脚本可 实现界面功能的增减,如取消标题搜索栏等。
/usr/share/moin/htdocs/目录下存放有各种主题的 CSS文档,修改这些文档可实现界面风格的改变,如布局、字体大小和背景颜色等。
删除页面时,页面文件不会从 data/pages目录真正删除,它只是把文件的当前版本号增一,并在edit-log中记录删除日志。要真正删除页面,只能通过shell删除页面所 在的目录。
当用户创建个人页面后,每当用户编辑完任意一个页面,都会生成一个备份,存放在 username/MoinEditorBackup目录下。个人页面是指以用户名命名的WiKi页面。
page_group_regex = u'[a-z]Group
按保存,MoinMoin会把上面的DocBook文档自动转换成HTML文档输出。注意,DocBoo文档的encoding一定要 用utf-8。我是在python2.4环境下做以上测试的,在python2.3中测试不成功,会出现字符编码出错提示。还有一个问题就是不能使用本地 的dtd文件,会提示docbookx.dtd文档不存在错误。好象上面示例使用网上的dtd就没问题,但利用网上dtd时,HTML输出速度慢。从上面 的测试结果来看,在WiKi中自动转换DocBook还不是很实用,一个是速度问题,上面已说过。另一个是编辑器问题,基于Web的编辑界面大简单了,远 远比不上emacs等工具。
有关MoinMoin的使用可参考自带的帮助文档,有很多都是中文版的了,查 询起来很方便的。在MoinMoin的官方网站http://moinmoin.wikiwikiweb.de/上也有最新的教材可参考。有关中文化方面,现在的 MoinMoin已支持I18n,会根据浏览器的设置自动显示多国语言。中文化支持也有很多志愿者在做,教材和帮助很多都是中文的了。如果你想为 MoinMoin的中文化做贡献,请到http://moinmaster.wikiwikiweb.de/注册个帐号,然后把你的帐号放到 MoinPagesEditorGroup页面就可以进行翻译了。
小提示:
任何用户在页面中添加ACL都需要有管理权限(admin)。
wikiconfig.py 配置文档编码需是UTF-8格式的,如果不是UTF-8格式,就不能在该文档中使用中文。我们可用Kwrite编辑器来把它保存成UTF-8格式的。
/usr /lib/python2.3/site-packages/MoinMoin/theme目录存放MoinMoin的各种主题处理脚本,修改这些脚本可 实现界面功能的增减,如取消标题搜索栏等。
/usr/share/moin/htdocs/目录下存放有各种主题的 CSS文档,修改这些文档可实现界面风格的改变,如布局、字体大小和背景颜色等。
删除页面时,页面文件不会从 data/pages目录真正删除,它只是把文件的当前版本号增一,并在edit-log中记录删除日志。要真正删除页面,只能通过shell删除页面所 在的目录。
当用户创建个人页面后,每当用户编辑完任意一个页面,都会生成一个备份,存放在 username/MoinEditorBackup目录下。个人页面是指以用户名命名的WiKi页面。
page_template_regex = u'[a-z]Template
按保存,MoinMoin会把上面的DocBook文档自动转换成HTML文档输出。注意,DocBoo文档的encoding一定要 用utf-8。我是在python2.4环境下做以上测试的,在python2.3中测试不成功,会出现字符编码出错提示。还有一个问题就是不能使用本地 的dtd文件,会提示docbookx.dtd文档不存在错误。好象上面示例使用网上的dtd就没问题,但利用网上dtd时,HTML输出速度慢。从上面 的测试结果来看,在WiKi中自动转换DocBook还不是很实用,一个是速度问题,上面已说过。另一个是编辑器问题,基于Web的编辑界面大简单了,远 远比不上emacs等工具。
有关MoinMoin的使用可参考自带的帮助文档,有很多都是中文版的了,查 询起来很方便的。在MoinMoin的官方网站http://moinmoin.wikiwikiweb.de/上也有最新的教材可参考。有关中文化方面,现在的 MoinMoin已支持I18n,会根据浏览器的设置自动显示多国语言。中文化支持也有很多志愿者在做,教材和帮助很多都是中文的了。如果你想为 MoinMoin的中文化做贡献,请到http://moinmaster.wikiwikiweb.de/注册个帐号,然后把你的帐号放到 MoinPagesEditorGroup页面就可以进行翻译了。
小提示:
任何用户在页面中添加ACL都需要有管理权限(admin)。
wikiconfig.py 配置文档编码需是UTF-8格式的,如果不是UTF-8格式,就不能在该文档中使用中文。我们可用Kwrite编辑器来把它保存成UTF-8格式的。
/usr /lib/python2.3/site-packages/MoinMoin/theme目录存放MoinMoin的各种主题处理脚本,修改这些脚本可 实现界面功能的增减,如取消标题搜索栏等。
/usr/share/moin/htdocs/目录下存放有各种主题的 CSS文档,修改这些文档可实现界面风格的改变,如布局、字体大小和背景颜色等。
删除页面时,页面文件不会从 data/pages目录真正删除,它只是把文件的当前版本号增一,并在edit-log中记录删除日志。要真正删除页面,只能通过shell删除页面所 在的目录。
当用户创建个人页面后,每当用户编辑完任意一个页面,都会生成一个备份,存放在 username/MoinEditorBackup目录下。个人页面是指以用户名命名的WiKi页面。
# Content options ---------------------------------------------------
# Show users hostnames in RecentChanges
show_hosts = 1
# Enable graphical charts, requires gdchart.
#chart_options = {'width': 600, 'height': 300}
第四步是配置在Apache2中配置Mod_Python,在/etc/apache2/conf目录下创建一个 moin_mop_python.conf的配置文档,内容如下:
Alias /wiki/ "/usr/share/moin/htdocs/" <br /><br /><Location /mywiki><br /> SetHandler python-program<br /># Add the path of your wiki directory<br /> PythonPath "['/root/mywiki/'] + sys.path"<br /> PythonHandler MoinMoin.request::RequestModPy.run<br /></Location><br />
配置完成后,需重启Apache服务器,查询Apache日志可看到服务器的启动状态,Apache的日志存放在/var/log /apache2目录下。成功启动后,访问http://moinserver/mywiki即可打开进入MoinMoin。
最 后,我们还要安装中文语言包。我们先要在MoinMoin中用登录界面创建一个有管理员权限的用户,在该例中就是moin_admin用户。以该用户登录 后再访问http://moinserver/mywiki/SystemPagesSetup网页安装中文语言包。如果你没有管理权限,访问该页面时在 语言包前面是不会显示"安装"按钮的。
从moin1.5.1升级到moin1.5.3的操作很简单,首先备份好/usr /lib/python2.3/site-packages/MoinMoin目录和/usr/share/moin目录。接着删除这两个目录和实例目录 下的underlay目录,安装新版本的moinmoin系统。最后把/usr/share/moin/underlay目录拷贝到实例目录,修改该目录 的访问权限。升级完成要重启服务器。注意,如果你修改了/usr/lib/python2.3/site-packages/MoinMoin目录和 /usr/share/moin目录下文件的内容,升级完成后要重新修改或用旧文件覆盖。
访 问控制列表(ACL)
语法:
#acl [+-]User[,SomeGroup,...]:[right[,right,...]] [[+-]OtherUser:...] [[+-]Trusted:...] [[+-]Known:...] [[+-]All:...] [Default]<br />参数说明:<br />User 用户名<br />SomeGroup 组名<br />Trusted 一个特殊组,包括所有通过HTTP-Basic-authentication验证的用户<br />Known 一个特殊组,包括所有有效用户 (使用 cookie 验证方法)<br />All 一个特殊组,包括所有用户 <br />Default 一个特殊项,使用配置文件中acl_rights_default中的值<br />right 表示权限,可以是 read、write、delete、revert 和 admin的组合,允许为空,表示没有任何权限。<br /><br />权限说明:<br />read 读权限<br />write 编辑权限<br />delete 删除页面和附件的权限<br />revert 有还原旧版本的权限<br />admin 具有管理ACL的权限<br /><br />
ACL放在网页内容的前面,下面一个ACL示例,所有用户有浏览权限,moin_admin用户具有所有权限:
#acl moin_admin:read,write,delete,revert,admin All:read<br /><br />这是网页正文。<br />MoinMoin ACL示例。<br />...<br />
MoinMoin按ACL设置的顺序匹配用户,一旦匹配就不会搜索后面的配置。如上例,当我以moin_admin用户登录后访问该网 页,它匹配了第一个用户名,则MoinMoin的ACL执行过程就停止,不会去再去匹配后面的ACL。所以我们在设置ACL时,应按用户、特殊组、普通 组、Known、All的顺序设置。
在MoinMoin中,组是用网页来维护的,在配置文件中的page_group_regex = u'[a-z]Group
按保存,MoinMoin会把上面的DocBook文档自动转换成HTML文档输出。注意,DocBoo文档的encoding一定要 用utf-8。我是在python2.4环境下做以上测试的,在python2.3中测试不成功,会出现字符编码出错提示。还有一个问题就是不能使用本地 的dtd文件,会提示docbookx.dtd文档不存在错误。好象上面示例使用网上的dtd就没问题,但利用网上dtd时,HTML输出速度慢。从上面 的测试结果来看,在WiKi中自动转换DocBook还不是很实用,一个是速度问题,上面已说过。另一个是编辑器问题,基于Web的编辑界面大简单了,远 远比不上emacs等工具。
有关MoinMoin的使用可参考自带的帮助文档,有很多都是中文版的了,查 询起来很方便的。在MoinMoin的官方网站http://moinmoin.wikiwikiweb.de/上也有最新的教材可参考。有关中文化方面,现在的 MoinMoin已支持I18n,会根据浏览器的设置自动显示多国语言。中文化支持也有很多志愿者在做,教材和帮助很多都是中文的了。如果你想为 MoinMoin的中文化做贡献,请到http://moinmaster.wikiwikiweb.de/注册个帐号,然后把你的帐号放到 MoinPagesEditorGroup页面就可以进行翻译了。
小提示:
任何用户在页面中添加ACL都需要有管理权限(admin)。
wikiconfig.py 配置文档编码需是UTF-8格式的,如果不是UTF-8格式,就不能在该文档中使用中文。我们可用Kwrite编辑器来把它保存成UTF-8格式的。
/usr /lib/python2.3/site-packages/MoinMoin/theme目录存放MoinMoin的各种主题处理脚本,修改这些脚本可 实现界面功能的增减,如取消标题搜索栏等。
/usr/share/moin/htdocs/目录下存放有各种主题的 CSS文档,修改这些文档可实现界面风格的改变,如布局、字体大小和背景颜色等。
删除页面时,页面文件不会从 data/pages目录真正删除,它只是把文件的当前版本号增一,并在edit-log中记录删除日志。要真正删除页面,只能通过shell删除页面所 在的目录。
当用户创建个人页面后,每当用户编辑完任意一个页面,都会生成一个备份,存放在 username/MoinEditorBackup目录下。个人页面是指以用户名命名的WiKi页面。
#acl moin_admin:read,write,delete,revert,admin All:read<br /> *test1<br /> *test2<br /> *test3<br />... <br />
在ACL设置中,MoinMoin引入"+"号和"-"号,改变ACL的配置规则,使ACL配置更灵活。当用户请求一个具有"+" 或"-"号的ACL的页面时,只在用户名和权限同时匹配时才动作,"+"表示授予权限用户权限,"-"号表示禁止用户的权限,并停止ACL匹配。如果用户 名和权限有一个不匹配,则继续搜索下一个ACL项。下面有一个示例:
#acl SomeUser:read,write SomeGroup:read,write,admin All:read<br />可以写成:<br />#acl -SomeUser:admin SomeGroup:read,write,admin All:read<br />或<br />#acl +All:read -SomeUser:admin SomeGroup:read,write,admin<br />
使用Apache basic auth进行用户验证
MoinMoin的用户信息存放在 instance/data/user目录下,每个用户都有一个类似1137395855.97.12542的文件,里面记录着用户名、密码和显示样式等 信息,MoinMion利用这些信息来进行用户验证和权限的控制。MoinMoin默认是使用Cookis来验证用户的,从1.3版开始,我们也可使用基 于HTTP的用户验证,也就是说可以使用其它的用户数据库,如LDAP。不论使用Cookis还是HTTP方式,user目录下一定要存在一个与之对应的 用户文件。因为MoinMoin只会使用该用户文件中的信息进行权限控制,所以在MoinMoin的配置文件中有一个user_autocreate参 数,当把该选项设置为真时,当第一次用Apache basic auth方式登录MoinMion时,系统会自动在user目录下创建一个用户文件,该用户文件里不保存用户密码,只保存用户名和个人定制配置信息。采用 HTTP验证方式,要修改两个文件,一个是wikiconfig.py,一个是moin_mod_python.conf。
wikiconfig.py 文件中修改的内容如下:
...<br />from MoinMoin.auth import http<br />...<br />class Config(DefaultConfig):<br />...<br /> user_autocreate=1<br /> auth=[http]<br />...<br />
修改后的moin_mod_python.conf:
Alias /wiki/ "/usr/share/moin/htdocs/"<br /><br /><Location /portal><br /> AuthType Basic<br /> AuthName "Portal"<br /> AuthUserFile "/etc/apache2/moinmoin.passwd"<br /> Require valid-user<br /> SetHandler python-program<br /># Add the path of your wiki directory<br /> PythonPath "['/data/moin/portal/'] + sys.path"<br /> PythonHandler MoinMoin.request::RequestModPy.run<br /></Location><br />
moinmoin.passwd用户文件可用htpasswd2文件创建。需重启Apache服务器使配置生效。
使 用Apache+LDAP进行用户验证
原理同上,只是验证数据我们存放在LDAP目录数据库。我使用OpenLDAP做为LDAP服务器。 因为Apache+LDAP方式也是通过MoinMoin的HTTP验证模块进行的,所以wikiconfig.py的配置同上面的是一样的。这里的关健 是要配置好Apache与LDAP服务器的连接。Apache需安装有mod_ldap.so和auth_ldap.so模块,如果已安装,可在/usr /lib/apache2/modules目录下查询到。在Debian中这两个模块默认是不启动的,可在/etc/apache2/mods- enable目录下创建一个auth_ldap.load链接来启动它,如:
debian:/etc/apache2/mods-enabled# ln -s /etc/apache2/mods-available/auth_ldap.load auth_ldap.load<br />
auth_ldap.load文件会装载mod_ldap.so和auth_ldap.so这两个模块。下面配置 moin_mod_python.conf,修改后的内容如下:
Alias /wiki/ "/usr/share/moin/htdocs/"<br />#LDAP连接Cache参数<br />LDAPSharedCacheSize 200000<br />LDAPCacheEntries 1024<br />LDAPCacheTTL 600<br />LDAPOpCacheEntries 1024<br />LDAPOpCacheTTL 600<br /><br /><Location /portal><br /> AuthType Basic #验证类型<br /> AuthName "Portal" #验证名,显示在验证栏<br /> AuthLDAPEnabled on #启用LDAP验证<br /> AuthLDAPBindDN cn=admin,dc=com #连接LDAP服务器的用户<br /> AuthLDAPBindPassword '1' #连接LDAP服务器的用户密码<br /> AuthLDAPURL ldap://127.0.0.1/dc=user,dc=company,dc=com?uid? #连接URL<br /> AuthLDAPAuthoritative on #只允许LDAP验证方式<br /> Require valid-user<br /> SetHandler python-program<br /># Add the path of your wiki directory<br /> PythonPath "['/data/moin/portal/'] + sys.path"<br /> PythonHandler MoinMoin.request::RequestModPy.run<br /></Location><br />
mod_ldap模块提供了一个监控LDAP认证连接Cache信息的功能,在配置文件中增加以下标签即可。
<Location /cache-info><br />SetHandler ldap-status<br /></Location><br />~
重启Apache服务器使配置生效。现在我们就可以通过LDAP服务器中的用户连接MoinMion了。访问 http://moinserver/cache-info即可显示LDAP认证连接Cache信息。
如果你的系统中安 装了4suite这个XML处理软件包,MoinMoin可在线解析XML文档。
MoinMoin会根据页面正文第一行是否 以
debian:/usr/share/xml/docbook/stylesheet# chown -R www-data.www-data nwalsh <br />
修改完成后,重启MoinMoin服务器。创建一个DocBook格式的文档,如:
#format docbook<br /><?xml version="1.0" encoding="utf-8"?><br /><!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"<br /> "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"<br /> ><br /><book><br /> <chapter><br /> <title>test</title><br /> <para>test</para><br /> </chapter><br /></book><br />
按保存,MoinMoin会把上面的DocBook文档自动转换成HTML文档输出。注意,DocBoo文档的encoding一定要 用utf-8。我是在python2.4环境下做以上测试的,在python2.3中测试不成功,会出现字符编码出错提示。还有一个问题就是不能使用本地 的dtd文件,会提示docbookx.dtd文档不存在错误。好象上面示例使用网上的dtd就没问题,但利用网上dtd时,HTML输出速度慢。从上面 的测试结果来看,在WiKi中自动转换DocBook还不是很实用,一个是速度问题,上面已说过。另一个是编辑器问题,基于Web的编辑界面大简单了,远 远比不上emacs等工具。
有关MoinMoin的使用可参考自带的帮助文档,有很多都是中文版的了,查 询起来很方便的。在MoinMoin的官方网站http://moinmoin.wikiwikiweb.de/上也有最新的教材可参考。有关中文化方面,现在的 MoinMoin已支持I18n,会根据浏览器的设置自动显示多国语言。中文化支持也有很多志愿者在做,教材和帮助很多都是中文的了。如果你想为 MoinMoin的中文化做贡献,请到http://moinmaster.wikiwikiweb.de/注册个帐号,然后把你的帐号放到 MoinPagesEditorGroup页面就可以进行翻译了。
小提示:
任何用户在页面中添加ACL都需要有管理权限(admin)。
wikiconfig.py 配置文档编码需是UTF-8格式的,如果不是UTF-8格式,就不能在该文档中使用中文。我们可用Kwrite编辑器来把它保存成UTF-8格式的。
/usr /lib/python2.3/site-packages/MoinMoin/theme目录存放MoinMoin的各种主题处理脚本,修改这些脚本可 实现界面功能的增减,如取消标题搜索栏等。
/usr/share/moin/htdocs/目录下存放有各种主题的 CSS文档,修改这些文档可实现界面风格的改变,如布局、字体大小和背景颜色等。
删除页面时,页面文件不会从 data/pages目录真正删除,它只是把文件的当前版本号增一,并在edit-log中记录删除日志。要真正删除页面,只能通过shell删除页面所 在的目录。
当用户创建个人页面后,每当用户编辑完任意一个页面,都会生成一个备份,存放在 username/MoinEditorBackup目录下。个人页面是指以用户名命名的WiKi页面。
![](http://img.zemanta.com/pixy.gif?x-id=77111b2d-0c01-8ef1-a0fd-0be084bfc888)