当前位置: 首页 > 工具软件 > MoinMoin > 使用案例 >

moinmoin 安装

欧桐
2023-12-01

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>






 类似资料: