nginx结合moinmoin搭建wiki站点

        我使用webpy框架配合nginx以及uwsgi有一段时间了,觉得这个搭配挺爽,nginx负责后台服务,webpy只负责应用程序,中间用uwsgi桥接。

最近业务上需要使用wiki来管理一些松散的知识,因此找到了moinmoin,现在将搭建方法,及wiki使用方法在此记录以便查看。

       快速上手请参考这里

       moinmoin的官方中文语法目录,这个上面讲了1.9x的语法。这个是完全正确的。其他网上搜索的不一定准确。

国内也有个公司提供了语法,而且baidu,google也基本搜的是这个,但是这个页面上的语法有些是此公司提供给moinmoin使用

的插件,例如showcategory插件,但是此插件只支持到1.8,1.9没有,因此它这个上面的语法也不一定都准确。

关于权限设定,这个博客讲的言简意赅,关于与nginx协作,百度文库有篇文章写的不错,这个篇文章是描述apache2的,但是结合nginx官方wiki

基本整个思路就清晰了。

       桌面版本的运行起来极其简单,直接运行wikiserver.py即可,但是有一个问题,就是只能在本机通过localhost访问。不能通过IP地址访问,哪怕本机

的也不行。因此桌面版的可以作为自己的资料收集或者摸索里面的使用方法使用。部署起来肯定得结合后台服务器。你可以选择nginx或者apache2。我

选择的OS环境是Ubuntu 12.04 server版本,python是2.7和2.6,参考moinmoin2.0计划就知道Pythond的版本支持了。

以下按照上文所说博客梳理一遍

1,安装,

python setup.py install --force --prefix=/usr/local --record=install.log
实际上,--force,--prefix也可以不写。好像也是一样,自动默认安装到/usr/local目录。record的好处是你可以查看Install.log看看安装过程究竟做了些

什么事情。

2,一般会安装到/usr/local/share/moin目录下,在次目录下将自己的wiki建一个新目录,例如mywiki,目的是以后整理资料方便,所有文档都在这个目录下。

将moin目录下的,data,underlay文件夹以及config/wikiconfig.py和server/moin.wsgi拷贝到mywiki目录下

将静态文件拷贝到moin下,原位置在/usr/local/lib/python2.7/dist-packages/MoinMoin/web/static/htdocs,将htdocs拷贝到moin目录下。

我不需要改这些文件的权限,因为我的nginx设置的权限组比较高。

以上文件的作用是

data:用户博客资料

underlay:主题

wikiconfig.py,配置文件,包括权限控制,首页等等,这里面还包含data和underlay资源的搜索路径

moin.uwsgi,nginx执行后台应用程序的桥梁,脚本。

htdocs,wiki框架文件,支撑页面显示布局的。

还需要在moin.wsgi中设置Python脚本wikiconfig.py的搜索路径。即:sys.path.insert(0, '/path/to/wikiconfigdir')

经过以上步骤,moin这边的配置基本搞完。

3,nginx配置

其实nginx关于Moinmoin的wiki页面,已经说的很核心了,但是说的不够清楚,这里贴下我更改后的代码

in moin.wsgi,这个没啥好说的。

 app = make_application(shared=False)


nginx配置文件:

这里面的第一个location是说上文所说的基本网页文件的位置。moin_static196是moinmoin的自身请求路径,看下nginx的accee.log和error.log就知道

第二个location是你所要设定的wiki站点路径,我就设置为根目录,在里面设置好根目录,moin.wsgi脚本目录,uwsgi_pass即可

这里说下uwsg_pass后,可以用127.0.0.1:9000或者一个unix套接字。

 location moin_static196 {
   alias /path/to/MoinMoin/web/static/htdocs;
 }
 
 location / {
   gzip off;
   include uwsgi_params;
   uwsgi_param UWSGI_SCRIPT moin.wsgi;
   uwsgi_param UWSGI_CHDIR /usr/local/share/moin/mywiki;
   uwsgi_modifier1 30;
   uwsgi_pass unix:/path/to/uwsgi.socket;
 }

uwsgi,启动命令 

./uwsgi -s /tmp/uwsg.socket  --wsgi-file /usr/local/share/moin/mywiki/moin.wsgi

以上配置,基本就没有问题。


第二部分:使用方法,主要是权限控制

一、这里主要配置wikiconfig.py

1,设置超级帐号#superuser = [u"YourName", ]

2,设置允许acl权限控制列表,acl_enabled =1 

3,设置acl_rights_before,这个简单的理解就是第一匹配原则,就是说这个里面设置的权限是不会被覆盖的。

包括不会被页面中用acl语句设置所覆盖。

acl_rights_before = u"YourName:read,write,delete,revert,admin"

4,设置默认acl_rights_default,这里配置默认全局权限,包括各种组。

Known表示已注册用户,DevGroup表示开发组,AdminGroup表示管理组,All表示所有匿名用户。

acl_rights_default = u"Known:read  DevGroup:read,write,revert AdminGroup:read,write,revert All:read"

5,设置语言 language_default = 'zh'

5,设置显示第一个页面page_front_page。默认情况下,monimoin开始会显示lanauagesetup页面,这个很讨厌,

你可以设置为page_front_page=u'index。即/index,这个页面你可以理解为首页。

6,设置你想要一直显示的标签页,在navi_bar上自己增加即可,一般建议不超过6个


二、浏览器端配置。

1,浏览器端访问后,如果在一个页面上单独加权限可以这样,在此页面的第一行顶格写。

#acl +yourname:read,write,delete,revert All:read

2,如果对某一个管理组设权限可以这样

#acl DevGroup:read,write,delete,revert All:read

如果不加权限,则啥都不写即可。

3,想给某个用户加到一个组,例如dev1用户加到DevGroup组,因为这个组的权限已经在wikiconfig.py中设置好了,我们只需要建立

DevGroup的页面,在这个页面一定按照这样的格式写。*前后只空一格,不一定要顶格。

 * Dev1
 * Dev2


这样就把这两个用户加到这个组了。如果你是超级用户,在systemadmin页面就可以看各个用户组的情况了。

3.1 ,,当然DevGroup页面也是可以添加权限控制,比如只有这个用户组的人才能有权限看这个页面。

这个就和上面说的方法一样。顶格写

#acl +DevGroup:read,write,delete,revert All:
3.2  ,,管理员用户因为是
acl_rights_before

所以肯定能看到,否则即使设置了超级用户也没有用。

这一点很迷惑人,我此前一直把acl_rights_default 、acl_rights_before,和页面中的#acl权限控制,以及用户组的加入搞混淆了


4,其他:除此之外,类似于页面分类之类的都在浏览器端完成了。这个可以参考前两段给出的参考资料。







  





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值