安装MoinMoin服务器
http://www.ringkee.com
8.12. 安装MoinMoin服务器
MoinMoin是用Python语言写的一个开源WiKi服务器。它基于GNU GPL协议,使用简便、功能强大,通过Python很容易进行功能扩展。MoinMoin不使用后台数据库存放数据,而是以文本的形式存放在服务器中。 debin Wiki网站使用的WiKi系统就是MoinMoin。
MoinMoin 不带Web服务器,需与Web服务器配合才能进行WiKi页面的发布。MoinMoin支持的Web服务器有Apache+CGI、Apache+ FastCgi、Apache+Mod_Python、IIS、TwistedWeb和WebLogic等。下面介绍一下MoinMoin+ TwistedWeb在Debian系统下的安装过程。
*
在安装MoinMoin前请安装好Python,最好使用最新的版本。安装MoinMoin的命令如下:
debian:~# apt-get install python2.4-moinmoin moinmoin-common python2.4-twisted python2.4-twisted-bin
[Note]
安装软件包时要注意版本问题,2.3的包不能和2.4的包混用。
MoinMoin的源码被安装到/usr/lib/python2.4/site-packages/MoinMoin目录。/usr/share /moin目录存放MoinM
oin系统的模板,内容大致有以下几类:
o
/usr/share/moin/data目录存放WiKi Pages,Users,etc。只能被MoinMoin访问。
o
/usr/share/moin/underlay目录存放WiKi Pages。只能被MoinMoin访问。
o
/usr/share/moin/htdocs目录存放网页元素,如图片、主题风格等。可被Web Server访问
o
/usr/share/moin/server目录存放服务器启动脚本示例。
o
/usr/share/moin/config目录存放配置文件示例。
通过拷贝模板目录中的文件,就可生成不同的WiKi实例。MoinMoin的软件升级也很简单,只需用新版的模板文件下覆盖旧文就可以了。
*
创建MoinMoin实例
在服务器上创建一个目录用于存放实例,目录名不能是wiki,它已被系统保留使用,一个不错的选择是mywiki。
debian:~# mkdir mywiki
从模板目录拷贝实例所需文件。
debian:~# cp -rf /usr/share/moin/data ~/mywiki
debian:~# cp -rf /usr/share/moin/underlay ~/mywiki
debian:~# cp /usr/share/moin/config/wikiconfig.py ~/mywiki
debian:~# cp /usr/share/moin/server/mointwisted mointwisted.py ~/mywiki
*
设置实例目录权限
Debian中的MoinMoin系统默认使用www-data用户运行WiKi服务器。所以我们的权限设置是:
debian:~# chown -R www-data.www-data ~/mywiki
debian:~# chmod -R ug+rw ~/mywiki
debian:~# chmod -R o-rwx ~/mywiki
*
配置TwistedWeb
TwistedWeb的MoinMoin配置文件是mointwisted.py,在上面我们已从模板目录拷贝到实例目录。用vim等文本编辑器打开,需 修改两个地方,以指向正确的配置文件路径,修改后的内容如下:
"""
twisted.web based wiki server
Run this server with mointwisted script on Linux or Mac OS X, or
mointwisted.cmd on Windows.
@copyright: 2004-2005 Thomas Waldmann, Oliver Graf, Nir Soffer
@license: GNU GPL, see COPYING for details.
"""
# System path configuration
import sys
# Path of the directory where wikiconfig.py is located.
# YOU NEED TO CHANGE THIS TO MATCH YOUR SETUP.
#sys.path.insert(0, '/etc/moin')
sys.path.insert(0,'/root/mywiki') #修改1:指向你的wikiconfig.py文件所在的目录
# Path to MoinMoin package, needed if you installed with --prefix=PREFIX
# or if you did not use setup.py
# Path to the directory where farmconfig is located (if different).
#sys.path.insert(0, '/etc/moin') #修改2:注释掉该行内容
# Debug mode - show detailed error reports
## import os
## os.environ['MOIN_DEBUG'] = '1'
from MoinMoin.server.twistedmoin import TwistedConfig, makeApp
class Config(TwistedConfig):
# Server name
# Used to create .log, .pid and .prof files
name = 'mointwisted'
# Path to moin shared files (default '/usr/share/moin/wiki/htdocs')
docs = '/usr/share/moin/htdocs'
# The server will run with as this user and group (default 'www-data')
user = 'www-data'
group = 'www-data'
# Port (default 8080)
# To serve privileged port under 1024 you will have to run as root
port = 8080
# Interfaces (default [''])
# The interfaces the server will listen to.
# [''] - listen to all interfaces defined on the server
# ['red.wikicolors.org', 'blue.wikicolors.org'] - listen to some
# If '' is in the list, other ignored.
interfaces = ['']
# How many threads to use (default 10, max 20)
# The more threads you use, the more memory moin uses. All thread
# use one CPU, and will not run faster, but might be more responsive
# on a very busy server.
threads = 10
# Set logfile name (default commented)
# This is the *Apache compatible* log file, not the twisted-style logfile.
# Leaving this as None will have no Apache compatible log file. Apache
# compatible logfiles are useful because there are quite a few programs
# which analyze them and display statistics.
## logPath = 'mointwisted.log'
# Memory profile (default commented)
# Useful only if you are a developer or interested in moin memory usage
## from MoinMoin.util.profile import TwistedProfiler
## memoryProfile = TwistedProfiler('mointwisted',
## requestsPerSample=100,
## collect=0)
# Hotshot profile (default commented)
# Not compatible with threads.
## hotshotProfile = name + '.prof'
# Create the application
application = makeApp(Config)
*
配置MoinMoin Wiki系统
Single Wiki的配置文件是wikiconfig.py,位于实例目录下,它默认已可很好工作。它的内容如下:
# -*- coding: iso-8859-1 -*-
# IMPORTANT! This encoding (charset) setting MUST be correct! If you live in a
# western country and you don't know that you use utf-8, you probably want to
# use iso-8859-1 (or some other iso charset). If you use utf-8 (a Unicode
# encoding) you MUST use: coding: utf-8
# That setting must match the encoding your editor uses when you modify the
# settings below. If it does not, special non-ASCII chars will be wrong.
"""
MoinMoin - Configuration for a single wiki
If you run a single wiki only, you can omit the farmconfig.py config
file and just use wikiconfig.py - it will be used for every request
we get in that case.
Note that there are more config options than you'll find in
the version of this file that is installed by default; see
the module MoinMoin.multiconfig for a full list of names and their
default values.
Also, the URL http://moinmoin.wikiwikiweb.de/HelpOnConfiguration has
a list of config options.
@copyright: 2000-2005 by Juergen Hermann <jh@web.de>
@license: GNU GPL, see COPYING for details.
"""
from MoinMoin.multiconfig import DefaultConfig
class Config(DefaultConfig):
# Wiki identity ----------------------------------------------------
# Site name, used by default for wiki name-logo [Unicode]
sitename = u'Untitled Wiki'
# Wiki logo. You can use an image, text or both. [Unicode]
# Example: u'<img src="/wiki/mywiki.png" alt="My Wiki">My Wiki'
# For no logo or text, use ''
logo_string = sitename
# The interwiki name used in interwiki links
interwikiname = None
# Critical setup ---------------------------------------------------
# Misconfiguration here will render your wiki unusable. Check that
# all directories are accessible by the web server or moin server.
# If you encounter problems, try to set data_dir and data_underlay_dir
# to absolute paths.
# Where your mutable wiki pages are. You want to make regular
# backups of this directory.
data_dir = './data/'
# Where read-only system and help page are. You might want to share
# this directory between several wikis. When you update MoinMoin,
# you can safely replace the underlay directory with a new one. This
# directory is part of MoinMoin distribution, you don't have to
# backup it.
data_underlay_dir = './underlay/'
# This must be '/wiki' for twisted and standalone. For CGI, it should
# match your Apache Alias setting.
url_prefix = '/wiki'
# Security ----------------------------------------------------------
# Security critical actions (disabled by default)
# Uncomment to enable options you like.
#allowed_actions = ['DeletePage', 'AttachFile', 'RenamePage']
# Enable acl (0 to disable)
acl_enabled = 1
# IMPORTANT: grant yourself admin rights! replace YourName with
# your user name. See HelpOnAccessControlLists for more help.
# All acl_rights_xxx options must use unicode [Unicode]
#acl_rights_before = u"YourName:read,write,delete,revert,admin"
# Link spam protection for public wikis (Uncomment to enable)
# Needs a reliable internet connection.
#from MoinMoin.util.antispam import SecurityPolicy
# Mail --------------------------------------------------------------
# Configure to enable subscribing to pages (disabled by default)
# or sending forgotten passwords.
# SMTP server, e.g. "mail.provider.com" (empty or None to disable mail)
mail_smarthost = ""
# The return address, e.g "My Wiki <noreply@mywiki.org>"
mail_from = ""
# "user pwd" if you need to use SMTP AUTH
mail_login = ""
# User interface ----------------------------------------------------
# Add your wikis important pages at the end. It is not recommended to
# remove the default links. Leave room for user links - don't use
# more than 6 short items.
# You MUST use Unicode strings here, but you need not use localized
# page names for system and help pages, those will be used automatically
# according to the user selected language. [Unicode]
navi_bar = [
# Will use page_front_page, (default FrontPage)
u'%(page_front_page)s',
u'RecentChanges',
u'FindPage',
u'HelpContents',
]
# The default theme anonymous or new users get
theme_default = 'modern'
# Language options --------------------------------------------------
# See http://moinmoin.wikiwikiweb.de/ConfigMarket for configuration in
# YOUR language that other people contributed.
# The main wiki language, set the direction of the wiki pages
default_lang = 'en'
# You must use Unicode strings here [Unicode]
page_category_regex = u'^Category[A-Z]'
page_dict_regex = u'[a-z]Dict$'
page_form_regex = u'[a-z]Form$'
page_group_regex = u'[a-z]Group$'
page_template_regex = u'[a-z]Template$'
# 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 WiKi服务器
debian:~/mywiki# ./mointwisted start
在当前目录会生成一个叫twistd.log的日志文件。如果成功启动,日志文件的内容为:
2005/12/13 11:48 CST [-] Log opened.
2005/12/13 11:48 CST [-] twistd 2.0.1 (/usr/bin/python2.4 2.4.2) starting up
2005/12/13 11:48 CST [-] reactor class: twisted.internet.selectreactor.SelectReactor
2005/12/13 11:48 CST [-] Loading mointwisted.py...
2005/12/13 11:48 CST [-] Enabling Multithreading.
2005/12/13 11:48 CST [-] Loaded.
2005/12/13 11:48 CST [-] MoinMoin.server.twistedmoin.MoinSite starting on 8080
2005/12/13 11:48 CST [-] Starting factory <MoinMoin.server.twistedmoin.MoinSite instance at 0xb76004cc>
2005/12/13 11:48 CST [-] set uid/gid 33/33
MoinMoin成功启动后,在浏览器上打开http://server_name:8080网址即可访问。停止服务器用stop参数即可。用不带参数的 mointwisted命令可以查看命令参数,如:
debian:~/mywiki# ./mointwisted
error: nothing to do
mointwisted - MoinMoin daemon
usage: mointwisted command
commands:
start start the server
stop stop the server
restart stop then start the server
kill kill the server
@copyright: 2004-2005 Thomas Waldmann, Nir Soffer
@license: GNU GPL, see COPYING for details.
转自肥肥世家 8.12. 安装MoinMoin服务器
MoinMoin是用Python语言写的一个开源WiKi服务器。它基于GNU GPL协议,使用简便、功能强大,通过Python很容易进行功能扩展。MoinMoin不使用后台数据库存放数据,而是以文本的形式存放在服务器中。 debin Wiki网站使用的WiKi系统就是MoinMoin。
MoinMoin 不带Web服务器,需与Web服务器配合才能进行WiKi页面的发布。MoinMoin支持的Web服务器有Apache+CGI、Apache+ FastCgi、Apache+Mod_Python、IIS、TwistedWeb和WebLogic等。下面介绍一下MoinMoin+ TwistedWeb在Debian系统下的安装过程。
*
在安装MoinMoin前请安装好Python,最好使用最新的版本。安装MoinMoin的命令如下:
debian:~# apt-get install python2.4-moinmoin moinmoin-common python2.4-twisted python2.4-twisted-bin
[Note]
安装软件包时要注意版本问题,2.3的包不能和2.4的包混用。
MoinMoin的源码被安装到/usr/lib/python2.4/site-packages/MoinMoin目录。/usr/share /moin目录存放MoinM
oin系统的模板,内容大致有以下几类:
o
/usr/share/moin/data目录存放WiKi Pages,Users,etc。只能被MoinMoin访问。
o
/usr/share/moin/underlay目录存放WiKi Pages。只能被MoinMoin访问。
o
/usr/share/moin/htdocs目录存放网页元素,如图片、主题风格等。可被Web Server访问
o
/usr/share/moin/server目录存放服务器启动脚本示例。
o
/usr/share/moin/config目录存放配置文件示例。
通过拷贝模板目录中的文件,就可生成不同的WiKi实例。MoinMoin的软件升级也很简单,只需用新版的模板文件下覆盖旧文就可以了。
*
创建MoinMoin实例
在服务器上创建一个目录用于存放实例,目录名不能是wiki,它已被系统保留使用,一个不错的选择是mywiki。
debian:~# mkdir mywiki
从模板目录拷贝实例所需文件。
debian:~# cp -rf /usr/share/moin/data ~/mywiki
debian:~# cp -rf /usr/share/moin/underlay ~/mywiki
debian:~# cp /usr/share/moin/config/wikiconfig.py ~/mywiki
debian:~# cp /usr/share/moin/server/mointwisted mointwisted.py ~/mywiki
*
设置实例目录权限
Debian中的MoinMoin系统默认使用www-data用户运行WiKi服务器。所以我们的权限设置是:
debian:~# chown -R www-data.www-data ~/mywiki
debian:~# chmod -R ug+rw ~/mywiki
debian:~# chmod -R o-rwx ~/mywiki
*
配置TwistedWeb
TwistedWeb的MoinMoin配置文件是mointwisted.py,在上面我们已从模板目录拷贝到实例目录。用vim等文本编辑器打开,需 修改两个地方,以指向正确的配置文件路径,修改后的内容如下:
"""
twisted.web based wiki server
Run this server with mointwisted script on Linux or Mac OS X, or
mointwisted.cmd on Windows.
@copyright: 2004-2005 Thomas Waldmann, Oliver Graf, Nir Soffer
@license: GNU GPL, see COPYING for details.
"""
# System path configuration
import sys
# Path of the directory where wikiconfig.py is located.
# YOU NEED TO CHANGE THIS TO MATCH YOUR SETUP.
#sys.path.insert(0, '/etc/moin')
sys.path.insert(0,'/root/mywiki') #修改1:指向你的wikiconfig.py文件所在的目录
# Path to MoinMoin package, needed if you installed with --prefix=PREFIX
# or if you did not use setup.py
# Path to the directory where farmconfig is located (if different).
#sys.path.insert(0, '/etc/moin') #修改2:注释掉该行内容
# Debug mode - show detailed error reports
## import os
## os.environ['MOIN_DEBUG'] = '1'
from MoinMoin.server.twistedmoin import TwistedConfig, makeApp
class Config(TwistedConfig):
# Server name
# Used to create .log, .pid and .prof files
name = 'mointwisted'
# Path to moin shared files (default '/usr/share/moin/wiki/htdocs')
docs = '/usr/share/moin/htdocs'
# The server will run with as this user and group (default 'www-data')
user = 'www-data'
group = 'www-data'
# Port (default 8080)
# To serve privileged port under 1024 you will have to run as root
port = 8080
# Interfaces (default [''])
# The interfaces the server will listen to.
# [''] - listen to all interfaces defined on the server
# ['red.wikicolors.org', 'blue.wikicolors.org'] - listen to some
# If '' is in the list, other ignored.
interfaces = ['']
# How many threads to use (default 10, max 20)
# The more threads you use, the more memory moin uses. All thread
# use one CPU, and will not run faster, but might be more responsive
# on a very busy server.
threads = 10
# Set logfile name (default commented)
# This is the *Apache compatible* log file, not the twisted-style logfile.
# Leaving this as None will have no Apache compatible log file. Apache
# compatible logfiles are useful because there are quite a few programs
# which analyze them and display statistics.
## logPath = 'mointwisted.log'
# Memory profile (default commented)
# Useful only if you are a developer or interested in moin memory usage
## from MoinMoin.util.profile import TwistedProfiler
## memoryProfile = TwistedProfiler('mointwisted',
## requestsPerSample=100,
## collect=0)
# Hotshot profile (default commented)
# Not compatible with threads.
## hotshotProfile = name + '.prof'
# Create the application
application = makeApp(Config)
*
配置MoinMoin Wiki系统
Single Wiki的配置文件是wikiconfig.py,位于实例目录下,它默认已可很好工作。它的内容如下:
# -*- coding: iso-8859-1 -*-
# IMPORTANT! This encoding (charset) setting MUST be correct! If you live in a
# western country and you don't know that you use utf-8, you probably want to
# use iso-8859-1 (or some other iso charset). If you use utf-8 (a Unicode
# encoding) you MUST use: coding: utf-8
# That setting must match the encoding your editor uses when you modify the
# settings below. If it does not, special non-ASCII chars will be wrong.
"""
MoinMoin - Configuration for a single wiki
If you run a single wiki only, you can omit the farmconfig.py config
file and just use wikiconfig.py - it will be used for every request
we get in that case.
Note that there are more config options than you'll find in
the version of this file that is installed by default; see
the module MoinMoin.multiconfig for a full list of names and their
default values.
Also, the URL http://moinmoin.wikiwikiweb.de/HelpOnConfiguration has
a list of config options.
@copyright: 2000-2005 by Juergen Hermann <jh@web.de>
@license: GNU GPL, see COPYING for details.
"""
from MoinMoin.multiconfig import DefaultConfig
class Config(DefaultConfig):
# Wiki identity ----------------------------------------------------
# Site name, used by default for wiki name-logo [Unicode]
sitename = u'Untitled Wiki'
# Wiki logo. You can use an image, text or both. [Unicode]
# Example: u'<img src="/wiki/mywiki.png" alt="My Wiki">My Wiki'
# For no logo or text, use ''
logo_string = sitename
# The interwiki name used in interwiki links
interwikiname = None
# Critical setup ---------------------------------------------------
# Misconfiguration here will render your wiki unusable. Check that
# all directories are accessible by the web server or moin server.
# If you encounter problems, try to set data_dir and data_underlay_dir
# to absolute paths.
# Where your mutable wiki pages are. You want to make regular
# backups of this directory.
data_dir = './data/'
# Where read-only system and help page are. You might want to share
# this directory between several wikis. When you update MoinMoin,
# you can safely replace the underlay directory with a new one. This
# directory is part of MoinMoin distribution, you don't have to
# backup it.
data_underlay_dir = './underlay/'
# This must be '/wiki' for twisted and standalone. For CGI, it should
# match your Apache Alias setting.
url_prefix = '/wiki'
# Security ----------------------------------------------------------
# Security critical actions (disabled by default)
# Uncomment to enable options you like.
#allowed_actions = ['DeletePage', 'AttachFile', 'RenamePage']
# Enable acl (0 to disable)
acl_enabled = 1
# IMPORTANT: grant yourself admin rights! replace YourName with
# your user name. See HelpOnAccessControlLists for more help.
# All acl_rights_xxx options must use unicode [Unicode]
#acl_rights_before = u"YourName:read,write,delete,revert,admin"
# Link spam protection for public wikis (Uncomment to enable)
# Needs a reliable internet connection.
#from MoinMoin.util.antispam import SecurityPolicy
# Mail --------------------------------------------------------------
# Configure to enable subscribing to pages (disabled by default)
# or sending forgotten passwords.
# SMTP server, e.g. "mail.provider.com" (empty or None to disable mail)
mail_smarthost = ""
# The return address, e.g "My Wiki <noreply@mywiki.org>"
mail_from = ""
# "user pwd" if you need to use SMTP AUTH
mail_login = ""
# User interface ----------------------------------------------------
# Add your wikis important pages at the end. It is not recommended to
# remove the default links. Leave room for user links - don't use
# more than 6 short items.
# You MUST use Unicode strings here, but you need not use localized
# page names for system and help pages, those will be used automatically
# according to the user selected language. [Unicode]
navi_bar = [
# Will use page_front_page, (default FrontPage)
u'%(page_front_page)s',
u'RecentChanges',
u'FindPage',
u'HelpContents',
]
# The default theme anonymous or new users get
theme_default = 'modern'
# Language options --------------------------------------------------
# See http://moinmoin.wikiwikiweb.de/ConfigMarket for configuration in
# YOUR language that other people contributed.
# The main wiki language, set the direction of the wiki pages
default_lang = 'en'
# You must use Unicode strings here [Unicode]
page_category_regex = u'^Category[A-Z]'
page_dict_regex = u'[a-z]Dict$'
page_form_regex = u'[a-z]Form$'
page_group_regex = u'[a-z]Group$'
page_template_regex = u'[a-z]Template$'
# 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 WiKi服务器
debian:~/mywiki# ./mointwisted start
在当前目录会生成一个叫twistd.log的日志文件。如果成功启动,日志文件的内容为:
2005/12/13 11:48 CST [-] Log opened.
2005/12/13 11:48 CST [-] twistd 2.0.1 (/usr/bin/python2.4 2.4.2) starting up
2005/12/13 11:48 CST [-] reactor class: twisted.internet.selectreactor.SelectReactor
2005/12/13 11:48 CST [-] Loading mointwisted.py...
2005/12/13 11:48 CST [-] Enabling Multithreading.
2005/12/13 11:48 CST [-] Loaded.
2005/12/13 11:48 CST [-] MoinMoin.server.twistedmoin.MoinSite starting on 8080
2005/12/13 11:48 CST [-] Starting factory <MoinMoin.server.twistedmoin.MoinSite instance at 0xb76004cc>
2005/12/13 11:48 CST [-] set uid/gid 33/33
MoinMoin成功启动后,在浏览器上打开http://server_name:8080网址即可访问。停止服务器用stop参数即可。用不带参数的 mointwisted命令可以查看命令参数,如:
debian:~/mywiki# ./mointwisted
error: nothing to do
mointwisted - MoinMoin daemon
usage: mointwisted command
commands:
start start the server
stop stop the server
restart stop then start the server
kill kill the server
@copyright: 2004-2005 Thomas Waldmann, Nir Soffer
@license: GNU GPL, see COPYING for details.
![](http://img.zemanta.com/pixy.gif?x-id=3d9fa65b-3b3f-8a82-bc75-f2c9602af259)