MoinMoin是一个python版的wiki,最初由德国人编写,支持标准的所有wiki语法,还有多种插件可供选择,可以通过插件支持tex,默认有ppt展示等等,非常不错,。很多大型wiki都用moinmoin,如ubuntu的wiki[http://wiki.ubuntu.org.cn/%E9%A6%96%E9%A1%B5],国内著名的啄木鸟python网站[http://wiki.woodpecker.org.cn/moin/],所以选他不会错。他有什么特点呢?不使用数据库,你说对了,不使用数据库可以使得升级和”搬家“没有后顾之忧。效率会低吗?不会,他支持百万级的页面没有问题。放心用吧。
安装过程如下:
安装前的说明:
moinmoin有QuickInstallation和Server Installation两种方式。主要区别是:
Quick Installation只是简单的搭建起来没有权限管理等。
Server Installation比较正规了,什么都有。所以建议还是Server Installation吧。
可以使用 Apache + wsgi 来安装,也可以使用 nginx + wsgi来安装。下面分别来叙述。
叙述前先解释一下什么是wsgi?
wsgi:Web Server Gateway Interface
所以对应的服务器下需要对应的mod_wsgi模块插件,例如apache需要的mod_wsgi模块和nginx需要的mod_wsgi是不同的。
1. 安装apache [Install Apache]:
$sudo apt-get install apache2
2. 安装python [Install python, python-dev]:
python 默认ubuntu上已经有了,所以不用费劲了。如果没有,那就安装一下:
$sudo apt-get install python python-dev
3. 安装适合apache的mod_wsgi模块 [Install mod_wsgi for Apache]
$sudo apt-get install libapache2-mod-wsgi
OR install mod_wsgi for Apache with source code
http://code.google.com/p/modwsgi/
./configure --with-apxs=/usr/local/apache/bin/apxs --with-python=/usr/bin/pythonmakemake install
apxs 需要单独安装,是APache eXtenSion tool
$sudo apt-get install apache-dev
既然都用ubuntu了,而且目标是apache对应的wsgi,没有必要自己折腾了,直接装wsgi就行了。想折腾的可以好好折腾。
4. 安装MoinMoin [Install MoinMoin]
a) 从http://moinmo.in/MoinMoinDownload 获取最新的源码包,我下载的时候是1.9.7
b) 解压: $tar -xvf moin-x.x.x.tar.gz
c) 将moin的库和模块安装到python里:
$cd moin-x.x.x
$sudo python setup.py install --force --record=install.log
d) 检查MoinMoin模块是否安装正常:
$python
>>>import MoinMoin;
>>>
如果不报错说明MoinMoin模块安装正常。
e) 配置wiki的服务器文件
创建的文件层次说明:
|------------------------/var/moinsource 存放moin启动的配置文件与mod_wsgi结合时读取
|------------------------/var/moinwiki 存放wiki的数据文件,如页面内容等
$cd /var
$mkdir moinsource moinwiki
$sudo cp -rf /usr/local/share/moin/data moinwiki #将之后的页面数据文件存放在这里
$sudo cp -rf /usr/local/share/moin/underlay moinwiki #将wiki自带的页面文件存放在这里
其中/usr/local/share/moin 的路径根据你安装的python位置来定。找不到的话也没事,可以直接从刚才的安装包里的wiki目录下找到然后拷贝过来。
$cd ../moinsource
$sudo cp -rf /usr/local/share/moin/config .
$sudo cp -rf /usr/local/share/moin/server .
$cp config/wikiconfig.py .
$cp server/moin.wsgi .
1) 修改 moin.wsgi
将 #sys.path.insert(0, 'path/to/wikiconfigdir')解注释,并填写对应的路径,我的是:
sys.path.insert(0, '/var/moinsource')
注意这个是python文件,所以sys之前不要有空格(python以缩进作为代码块的区分)
2) 修改 wikiconfig.py
将 data_dir = os.path.join(instance_dir, 'data', '')
data_underlay_dir = os.path.join(instance_dir, 'underlay', '')
最后的''里填入对应的路径:
data_dir = os.path.join(instance_dir, 'data', '/var/moinwiki/data')
data_underlay_dir = os.path.join(instance_dir, 'underlay', '/var/moinwiki/underlay')
需要超级管理员的话,可以解注释:#superuser = [u"YurName"],然后替换YourName为管理员用户名,在之后启动的wiki的注册页面里用这个用户名进行注册即可。
3)让www-data用户(apache用户)拥有hod住moinwiki文件的权限
$cd /var
$sudo chown -R www-data:www-data moinwiki
$sudo chmod -R ug+rw moinwiki
f ) 配置apache运行moinwiki
如果不想占用默认的80端口的apache虚拟机,可以让apache另外监听其他端口,实现apache多端口配置。如果直接使用80端口在的虚拟机,只更改/etc/apache2/site-enabled/000-default即可。
1)使用默认的80端口所在的虚拟机:
编辑/etc/apache2/site-enabled/000-default
删除之前的配置信息:
DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory>
因为这些信息在使用moinwiki时没有用了。之后添加一行:
WSGIScriptAlias / /var/moinsource/moin.wsgi
即指定出moin.wsgi的具体位置。
2)如果使用多端口配置则按照以下步骤进行:
I) 编辑 /etc/apache2/ports.cnf,在
Listen 80
这一行的下面添加一行要监听的其他端口,如8001:
Listen 8001
II) 编辑/etc/apache2/sites-enabled/000-default添加新的虚拟机信息
<VirtualHost *:8001> ServerAdmin zzgthk@localhost <Directory /> Options FollowSymLinks AllowOverride None </Directory> WSGIScriptAlias / /var/moinsource/moin.wsgi ErrorLog /var/log/apache2/moin_error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/moin_access.log combined </VirtualHost>
g) 测试:
重启apache使配置生效
$sudo /etc/init.d/apache2 restart
浏览器访问:http://127.0.0.1:8001即可看到了。点击左上角【登陆】,在进入的页面里注册刚才是superuser的账号即可,然后登陆之后就是管理员了,管理员可以安装语言包什么的。
==========未整理完的分割线===================================================================
其中/var/www/main.py就是提供wsgi的主程序
当然,一般程序都有静态文件支持,所以,您可能需要对某个目录下的文件跳过处理,如下
Alias /static /var/www/static/
如此即可.最后加上目录设置即可,对于上面的例子,完整的虚拟主机配置如下
ServerAdmin admin@xxx.comDocumentRoot /var/wwwServerName xxx.comServerAlias www.xxx.comWSGIScriptAlias / /var/www/main.py/Alias /static /var/www/static/AddType text/html .pyErrorLog /var/log/httpd/xxx_error.logCustomLog "|/usr/bin/cronolog /var/log/httpd/xxx_access_%Y%m%d.log" custom1Options Indexes FollowSymLinksAllowOverride AllOrder allow,denyAllow from all
这样就配置好了此站点的mod_wsgi支持.
install theme: 2 steps
静态文件css和img放到
/usr/local/lib/python2.6/dist-packages/MoinMoin/web/static/htdocs
and theme.py文件放置位置
/srv/share/moin/data/plugins/theme
小心的设置Python变量
当重新输入而不是剪切和粘贴操作时,应特别小心. 在wikiconfig.py中引用错误会导致失败. 其后的条目也是变量. 还有, 一些功能只有在wikiconfig.py或者farmconfig.py中开启他们对应的选项后才能正常使用.
moin.cgi找到, Moin不运行
如果你不得不将moin代码位置加入系统路径, 请确保指定这个路径是MoinMoin本身的上级, 这样MoinMoin这个词汇在导入时可以找到.
CSS文件不工作
丢失CSS样式是很常见的错误. 你的维基看起来很丑陋, 一点也不像现在这个漂亮的维基. 大多数情况下, 是因为你没有阅读建议而弄错了配置, 或者因为你比我们聪明,而试图自定义这些建议. :-)
解决问题很简单: 确保你的Apache Alias和ScriptAlias不是一样的. 这个Apache设置永远不能工作:
Alias /wiki/ "/prefix/share/moin/htdocs/"
ScriptAlias /wiki/ "/var/www/wiki/moin.cgi"
Alias用于静态文件: css, 图片等等. ScriptAlias用于将moin.cgi从url中隐藏. 你必须使用不同的值! 对于ScriptAlias, 或者Alias, 你可以使用任何值, 但是Alias必须匹配url_prefix的设置. 这是一个可以工作的例子(默认设置):
# Apache config
Alias /wiki/ "/prefix/share/moin/htdocs/"
# Wiki config
url_prefix = '/wiki'
使用宏创建newpage
Home
人员类 项目类 文章类
| | |
| | |
+ + +
人员列表(老师和学生2类) 项目列表 文章类表
| | |
| | |
+ + +
具体人员(模板) 具体项目(模板) 文章模板
年
<a id="userhome" class="nonexistent" title="admin @ Self" href="/admin">admin</a>
|
<a id="userprefs" rel="nofollow" href="/CategoryNews?action=userprefs">settings</a>
|
<a id="logout" rel="nofollow" href="/CategoryNews?action=logout&logout=logout">logout</a>
相关推荐
安装MoinMoin引擎时,需要将压缩包解压后,通过Python的setup.py脚本来进行安装,指定安装路径,并记录安装日志。 安装完成后,MoinMoin的文件结构会包括存放Wiki页面、用户信息的数据目录,存放默认页面的underlay...
windows平台下好用的wiki,集成了latex的moinmoin,安装简易,懒人适用。 3分钟快速安装。
安装MoinMoin通常涉及下载最新版本(如moin-1.5.7),解压后配置设置文件`farmconfig.py`,包括数据库连接、URL路径、主题等。然后使用Python运行wiki服务器,如`python wiki.py`。配置完成后,可以通过Web浏览器...
3. **安装依赖**:根据安装指南安装MoinMoin所需的Python模块和其他依赖项。 4. **配置wiki**:创建并编辑配置文件,指定数据存储位置、主题、语言设置等。 5. **启动wiki服务**:运行MoinMoin的服务器脚本,使其...
最方便的moinmoin wiki,不用安装Python,apache
在本文中,我们将深入探讨moinmoin的核心特性、安装与配置过程,以及如何利用它来构建一个高效的个人维基系统。 1. **核心特性** - **易于使用**:moinmoin 提供了一个直观的网页编辑界面,用户无需编程知识即可...
负载开关一个用于上传 sage 工作表的 moinmoin 操作插件要使用它,您需要一个安装了 sagecell moinmoin 插件的 moinmoin wiki。 只需将其复制到您的插件/操作文件夹中即可。
1. **安装**: 在终端执行`sudo python -m pip install MoinMoin`安装MoinMoin。 2. **验证安装**: 通过命令`python -c "import MoinMoin"`检查是否安装成功。如果没有任何错误信息输出,则表示安装成功。 #### 3. ...
本文假定已经按照官方指引 Quick MoinMoin on CentOS 完成了 apache 和 mod_wsgi 之外的基础安装 安装 Nginx 默认情况下,CentOS 下没有 nginx 的源,需要自己手动添加,访问 ...
ep_moinmoin_export 将当前打击垫内容导出为 MoinMoin Wiki ( ) 格式。 支持的默认格式和附加标签。 基于 乳胶出口 ...安装 npm install ep_moinmoin_export (from your etherpad-lite folder)
在Ubuntu 8.04上安装MoinMoin 1.9.3和Python 2.5.2时,可以按照默认路径安装这两个组件。 要安装MoinMoin桌面版,你需要: 1. 从官方网站下载最新版本的MoinMoin。 2. 解压缩到你选择的安装目录。 3. 进入解压后的...
安装MoinMoin通常包括以下几个步骤: 1. 下载最新版本的MoinMoin源码。 2. 配置Python环境,确保Python及其相关库(如Werkzeug、Pygments)已安装。 3. 解压并运行安装脚本,创建初始配置文件。 4. 配置web服务器,...
安装过程相对简单,只需几步即可启动一个基本的wiki站点。对于更复杂的需求,如集成其他服务或自定义主题,可以通过配置文件和编写Python脚本来实现。 5. **社区与资源** MoinMoin拥有活跃的开发者和用户社区,...
这个版本是moinmoin Wiki软件的1.9.3迭代,提供了一个强大的桌面版解决方案,让用户在本地环境下也能享受到Wiki系统的便利性。 一、moinmoin Wiki概述 moinmoin是一款功能丰富的Wiki系统,由Jan Gerken开发,并且...
trello2textTrello板列表输出到文本现在以适合MoinMoin Wiki的格式输出到控制台有用的链接: Trello API: : Trello API Python库: : 以JSON形式查看完整版面: : 简单的GET即可查看板卡JSON: : cards=open card_...
使用WikiImageMapper,您可以轻松地为MoinMoin Wiki创建图像映射(已安装ImageMap解析器)。 该项目基于JImageMapper。
- **MoinMoin**:一个基于Python的Wiki引擎。 - **pydict**:一个基于Linux的英汉词典应用程序。 - **在线游戏服务器**:许多在线游戏的后端服务器使用Python构建。 ### 二、第一个示例:Hello, World! - **...