MoinMoin-Wiki
MoinMoin Wiki
Was ist MoinMoin?
MoinMoin ist eine freie Wiki-Software, die in der Programmiersprache Python geschrieben ist. Der Name „MoinMoin“ ist eine Anspielung auf den norddeutschen Gruss „Moin“ sowie auf die Doppelung und „CamelCase“-Schreibweise von „WikiWiki“, einem Synonym von „Wiki“.
Vor und Nachteile des MoinMoin-Wiki
Vorteile:
- OpenSource
- Sie läuft ohne Datenbank, d.h. läuft auf Dateiebene
- Einfach zu warten
- ACLs (Berechtigung)
- Crossplattform (Windows, Mac, Linux)
- Standalone Lösung, WSGY-Mode
- Versionsverwaltung
Nachteile:
- Python muss installiert sein, d.h. braucht einen Interpreter.
- Python als Skriptsprache (Noch eine Sprache die man lernen muss)
- WYSIWYG-Editor hat ein paar Macken.
Voraussetzungen
Damit das Wiki auf der Synology-Box läuft muss zwingend Python installiert werden. Will man das Ganze mit mod_wsgi betreiben braucht man einen Apache-Server und das mod_wsgi
ipkg install python #Python Framework ipkg install mod-wsgi #Apache Modul für wsgi ipkg install py25-moin #MoinMoin Wiki
Benutzer erstellen
Ich empfehle das Wiki unter einem anderen Benutzer laufen zu lassen. Sollte durch eine Schwachstelle im Wiki eingebrochen werden, ist nur das Wikiverzeichnis betroffen.
Benutzer: wiki Gruppe: www-wiki
Ordner / Dateistruktur
Ordner der Originalen Wiki-Seiten umbennen, ggf. später löschen wenn man ein Update zu einer älteren Version macht.
mv /opt/share/moin/data /opt/share/moin/data_old
Im Homeverzechnis des wiki-users einen Ordner data erstellen und Soflink erstellen:
cd /opt/share/moin/ ln -s /volume1/homes/wiki/data data
Softlink für das Sitepackages erstellen
cd /opt/share/moin/data/ ln -s /opt/lib/python2.5/site-packages/MoinMoin/web/static/htdocs htdocs
Softlink der Wiki Konfiguration im Root-Wiki-Verzeichnis erstellen
cd /opt/share/moin/ ln -s config/wikiconfig.py .
Order für Log's erstellen
mkdir /opt/share/moin/logs
Underlay-Daten entpacken. Dies sind Hilfeseiten für das Wiki.
tar xfv /opt/share/moin/underlaytmp.tar.gz
Konfiguration
wikiconfig.py
Folgende Optionen müssen definiert werden:
# Wiki Namen in der Titelheader sitename = u'Mein Wiki' # Startseite page_front_page = u"MyStartingPage" # AdminBenutzer superuser = [u"Moderator","Administrator", ] # ACL bevor die Seite geladen wird. Ist besonders für Nicht-Öffentliche Seiten praktisch. acl_rights_before = u"YourName:read,write,delete,revert,admin"
wikiserverconfig.py
Wiki-Server Konfiguration:
hostname = '[IP-Adresse]' port = 8081 user = 'wiki' group = 'www-wiki'
Berechtigung
Jetzt alle Daten und Unterverzeichnisse die richtigen Berechtigungen setzen. Ggf. wiederholen, wenn man Daten aus einem älteren Wiki migriert.
cd /opt/share/moin/ chown wiki:www-wiki -R *
Der erste Test
Jetzt kann man Testen, ob das Wiki richtig konfiguriert ist.
cd /opt/share/moin/ ./wikiserver.py
Werden keine Fehlermeldung angezeigt, kann man nun das Wiki direkt im Browser anzeigen:
http://[IP-Adresse]:8081
Wenn nun alles geklappt hat kann man hier sich entscheiden, will man das Wiki im Standalone-Modus oder im mod_wsgi betreiben:
Standalone-Version
Für 1-2 Benutzer reicht diese Betriebsart. Bei etwas schwachen NAS-Modellen (Bei 128Mb RAM) empfiehlt sich ebenso diesen Modus zu wählen.
S80moin
Damit das Wiki mit dem Start der NAS gestartet werden soll erstellt man im ini.d Verzeichnis ein Skript:
# # /opt/etc/init.d/S80moin # #!/bin/bash SERVICE="moin" PID="/opt/share/moin/var/moin.pid" CONFIG="/opt/share/moin/" USER="wiki" GROUP="www-wiki" PORT="8081" COMMAND_START="moin server standalone --user=$USER --group=$GROUP --config-dir=$CONFIG --port=$PORT --pidfile=$PID --start" COMMAND_STOP="moin server standalone --user=$USER --group=$GROUP --config-dir=$CONFIG --port=$PORT --pidfile=$PID --stop" DATE=date if [ "$1" == "start" ]; then echo "$DATE starting $SERVICE" $COMMAND_START elif [ "$1" == "restart" ]; then echo "$DATE restarting $SERVICE" if [ -f $PID ] then $COMMAND_STOP wait fi if [ -f $PID ] then killall $SERVICE wait rm $PID fi echo "$DATE starting $SERVICE" $COMMAND_START elif [ "$1" == "stop" ]; then echo "$DATE restarting $SERVICE" if [ -f $PID ] then $COMMAND_STOP wait fi killall $SERVICE elif [ "$1" == "check" ]; then # if ps -u $USER x | grep -v grep | grep $SERVICE > /dev/null; then if procps-ps -u $USER | grep $SERVICE > /dev/null; then echo "$DATE $SERVICE îs running, everything is fine" else echo "$DATE Alert! $SERVICE is not running, trying to restart" # if [ -f $PID ] # then # rm $PID # fi # $COMMAND_START fi else echo "$DATE : Parameter missing, use start,stop,check or restart" fi exit 0
Apache-Version (mod_wsgi)
Die mod_wsgi Version läuft über den Apache. Sie ist bei grössere Benutzerzahl
moin.wsgi
Das WSGI Modul muss wissen wo das Root-Verzeichnis des Wikis liegt: /opt/share/moin/server/moin.wsgi
sys.path.insert(0, '/opt/share/moin')
httpd.conf
# #opt/etc/apache2/httpd.conf # # Wo der Apache Server abhört: Listen 8081 ServerName [IP-Adresse] # Directory-Direktive für Root-Apache-Verzeichnis auskommentieren. # Virtuelle Hosts Inkludieren Include etc/apache2/extra/httpd-vhosts.conf # Modul Mod WSGI laden Include etc/apache2/conf.d/mod_wsgi.conf
httpd-vhosts.conf
Die WSGI Parameter können je nach Anforderungen verändert werden.
# #opt/etc/apache2/extra/httpd-vhosts.conf # <VirtualHost *:8081> ServerName meinServer:8081 ServerAdmin mail@domain.ch DocumentRoot /opt/share/moin/htdocs/ ErrorLog /opt/share/moin/logs/error.log CustomLog /opt/share/moin/logs/access.log common # Aliase für Statische Dateien Alias /robots.txt /opt/share/moin/htdocs/robots.txt Alias /favicon.ico /opt/share/moin/htdocs/favicon.ico Alias /wiki/ /opt/share/moin/htdocs/ # URL http://servername:8081/ WSGIScriptAlias / /opt/share/moin/server/moin.wsgi # erstellt wsgi daemons - mit Benutzer und Gruppe WSGIDaemonProcess daemonwiki umask=0007 user=wiki group=www-wiki processes=5 threads=15 maximum-requests=2000 # Benutze den daemon für den Prozess-Request! WSGIProcessGroup daemonwiki </VirtualHost>
Finish
Da jetzt allen läuft muss man den SuperUser erstellen und noch die Sprache(n) installieren:
- Anlegen des Superusers (sofern noch nicht erfolgt)
- Einloggen als Superuser
- http://[IP-Adresse]:8081/LanguageSetup
- Deutsch und Englisch komplett installieren