MoinMoin Wiki

Ansprechpartner

k3t
Mathias

1. Installation

Das Paket python-moinmoin wird installiert. Damit ist das Wiki über das CGI-Skript /usr/share/moin/server/moin.cgi grundsätzlich lauffähig. Um es schneller zu machen, ersetzen wir später CGI durch WSGI und installieren dazu das Paket libapache2-mod-wsgi. Die Details sind in der Apache-Konfiguration beschrieben.

Weitere Installationsschritte verlaufen wie in der Installationsanleitung /usr/share/doc/python-moinmoin/README.Debian.gz beschrieben:

Bitte beachten:

Nach dem erstmaligen Erstellen des Suchindexes müssen alle Eigentümer und Gruppen korrigiert werden:

  • chown -R www-data:www-data /var/lib/lug-in-wiki

2. Konfiguration von MoinMoin

Die Konfiguration des Wikis findet hauptsächlich in der Datei /etc/moin/mywiki.py statt. Die Konfiguration der Protokollierung erfolgt dagegen separat in der Datei /etc/moin/logging.conf.

Bitte beachten:

Die Voreinstellungen für die Variablen in der Datei /etc/moin/mywiki.py werden in HelpOnConfiguration beschrieben. Allerdings sind dies nicht unbedingt die tatsächlich verwendeten Werte! In der Debian Paketierung von MoinMoin wird nämlich standardmäßig farmconfig verwendet. Damit werden die voreingestellten Werte eventuell zuerst in der Datei /etc/moin/farmconfig.py und danach in der Datei /etc/moin/moin.py gegebenenfalls erneut überschrieben.

Man muss also immer an allen drei Stellen nachsehen.

Die Einstellungen im Einzelnen:

2.1. Allgemeines

2.2. Aussehen des Wikis

2.3. Benutzer, Gruppen und Berechtigungen

Bitte beachten:

Für (auch externe) Arbeits- und Projektgruppen können weitere Benutzergruppen angelegt werden. Die Mitglieder einer solchen Gruppe werden lediglich in die WikiUserGroup eingetragen. Standardmäßige Schreibrechte erhält dieser Personenkreis nicht. Die WikiEditorGroup ist tabu!

2.4. E-Mail-Benachrichtigungen

Details siehe HelpOnNotification und EmailSupport.

2.5. Xapian

Details siehe HelpOnXapian.

2.6. Sonstiges

2.7. Protokollierung von MoinMoin

2.7.1. Allgemeines

An der eigentlichen Protokollierung von MoinMoin wird tatsächlich gar nichts geändert. Das bedeutet, Apache übernimmt alle Meldungen vom MoinMoin-CGI- bzw. -WSGI-Skript und schreibt sie in die jeweiligen Protokolldateien. Allerdings verursacht diese Standardvorgabe bei jedem Zugriff aufs Wiki unnötige zusätzliche Meldungen:

[DDD MMM DD HH:MM:SS YYYY] [error] YYYY-MM-DD HH:MM:SS,SSS WARNING MoinMoin.log:139 using logging configuration read from built-in fallback in MoinMoin.log module!
[DDD MMM DD HH:MM:SS YYYY] [error] YYYY-MM-DD HH:MM:SS,SSS INFO MoinMoin.config.multiconfig:93 using farm config: /etc/moin/farmconfig.py
[DDD MMM DD HH:MM:SS YYYY] [error] YYYY-MM-DD HH:MM:SS,SSS INFO MoinMoin.config.multiconfig:127 using wiki config: /etc/moin/mywiki.py

Verantwortlich dafür ist /usr/share/pyshared/MoinMoin/log.py. Um die zusätzlichen Meldungen zu vermeiden, erstellen wir, wie ebenfalls in dieser Datei beschrieben, eine zusätzliche Konfigurationsdatei /etc/moin/logging.conf, und legen dort fest, dass wir tatsächlich die Voreinstellung verwenden wollen. (Alternativ könnte man auch das CGI- bzw. WSGI-Skript ändern. Dies wollen wir aber vermeiden!)

Das CGI-Skript /usr/share/moin/server/moin.cgi bzw. das WSGI-Skript /usr/share/moin/server/moin.wsgi erfahren von der Konfigurationsdatei über die Umgebungsvariable MOINLOGGINGCONF und erzeugen die obigen unnötigen Meldungen nicht mehr. Bitte beachten: Zumindest für WSGI kann dazu nicht die Apache-Anweisung SetEnv verwendet werden!

2.7.2. Debugging

Meldungen von MoinMoin werden an Apache weitergereicht, wobei allerdings das Level der Meldung verloren geht. Was dies bedeutet, sieht man am Beispiel im vorigen Abschnitt:

  1. MoinMoin erzeugt eine Warnung (WARNING) und zwei Informationsmeldungen (INFO).

  2. Apache erhält diese Meldungen über stderr und stuft sie alle einheitlich als Fehlermeldungen ein ([error]).

Während der zweite Schritt nicht zu ändern ist, kann die Gesprächigkeit von MoinMoin feiner eingestellt werden. Dafür gibt es in aufsteigender Reihenfolge die Level DEBUG, INFO, WARNING, ERROR und CRITICAL. Voreingestellt ist INFO, was aber zuviel ist. Für den sinnvollen Produktivbetrieb genügt WARNING.

2.8. Zusammenfassung

2.8.1. /etc/moin/logging.conf

# /etc/moin/logging.conf
#
# This file originates from the file "stderr" provided by Thomas Waldmann on
# http://hg.moinmo.in/moin/1.9/file/tip/wiki/config/logging
# It is used by /usr/share/pyshared/MoinMoin/log.py.  Also see
# https://moinmo.in/HowTo/BeginnersLinux

[DEFAULT]
# Default loglevel, to adjust verbosity: DEBUG, INFO, WARNING, ERROR, CRITICAL
#loglevel=INFO
loglevel=WARNING

[loggers]
keys=root

[handlers]
keys=stderr

[formatters]
keys=stderr

[logger_root]
handlers=stderr
level=%(loglevel)s

[handler_stderr]
args=(sys.stderr, )
class=StreamHandler
formatter=stderr
level=NOTSET

[formatter_stderr]
class=logging.Formatter
datefmt=
format=%(asctime)s %(levelname)s %(name)s:%(lineno)d %(message)s

2.8.2. /etc/moin/mywiki.py

# -*- coding: utf-8 -*-
# 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.

"""
This is a sample config for a wiki that is part of a wiki farm and uses
farmconfig for common stuff. Here we define what has to be different from
the farm's common settings.
"""

# we import the FarmConfig class for common defaults of our wikis:
from farmconfig import FarmConfig

# now we subclass that config (inherit from it) and change what's different:
class Config(FarmConfig):

    sitename = u'LUG-IN Wiki'
    page_front_page = u'Hauptseite'

    data_dir = u'/var/lib/lug-in-wiki/data'
    data_underlay_dir = u'/var/lib/lug-in-wiki/underlay'

    interwikiname = u''
    shared_intermap = u'/etc/moin/intermap.txt'
    show_interwiki = False

    logo_string = u'<img src="/static/logo-lug-in.png" alt="LUG-IN Logo">'
    navi_bar = [u'%(page_front_page)s', u'RecentChanges', u'FindPage', u'HelpContents']
    show_hosts = False
    show_timings = True
    theme_default = u'modernized'

    superuser = [u'k3t',u'sabine',u'jackhammer',u'Mathias']
    acl_rights_before = u'k3t:read,write,delete,revert,admin WikiAdminGroup:read,write,delete,revert,admin'
    acl_rights_default = u'WikiEditorGroup:read,write,revert All:read'
    #acl_rights_after = u''
    acl_hierarchic = True

    user_checkbox_defaults = {
        'edit_on_doubleclick': 0,
        'mailto_author': 0,
        'remember_last_visit': 0,
        'remember_me': 1,
        'show_comments': 1,
        'show_fancy_diff': 1,
        'show_nonexist_qm': 1,
        'show_page_trail': 1,
        'show_toolbar': 1,
        'show_topbottom': 0,
        'wikiname_add_spaces': 1,
        }

    mail_from = u'LUG-IN Wiki <noreply@lug-in.wtf.ag>'
    mail_sendmail = u'/usr/sbin/sendmail -t -i -r admin@...'

    xapian_search = True
    xapian_index_history = True
    xapian_stemming = True

    url_prefix_action = 'action'

    textchas = {
        'de' : {
            u'Wie viele Woerter hat dieser Satz?': ur'(6|sechs)',
        },
        'en' : {
            u'How many words does this sentence have?': ur'(7|seven)',
        }
    }
    textchas_disabled_group = u'WikiUserGroup'

3. Konfiguration des Apache-Webservers

Die aktuelle Konfiguration von MoinMoin im Apache-Webserver ist auf der Apache-Seite beschrieben.


CategoryDocumentation

Dokumentation/MoinMoin (last edited 2015-03-15 15:36:36 by Mathias)