Archiv: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
Wiki starten
Mit dem start des Skript und dem Parameter startet das Wiki als Dienst:
/opt/etc/init.d/S80moin start
Stoppen:
/opt/etc/init.d/S80moin stop
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
Weitere Möglichkeiten
Mit dem Betrieb ergeben sie eine vielzahl an Möglichkeiten so z.B.
- Wiki zum Dokumentieren (Inventar)
- Wiki zum Mitnehmen. Auf Windows kopie installieren und mit dem Wiki auf der Synology-NAS synchronisieren. (/volume1/homes/wiki/htdoc/data/pages zu C:\wiki\data\pages)
Weitere Quellen
* MoinMoin * Hilfe für die Installation * MoinMoin unter Windows