Bei der gemeinsamen Arbeit an einem Projekt ist es sinnvoll, die Ideen und lose Fäden an einer zentralen Stelle zu sammeln. Wikis sind für so einen Zweck wie geschaffen.
Schon lange bevor Content-Management-Systeme zur Pflege von Web-Auftritten entstanden, lieferten Wikis eine Art “offenen Zugang” zu HTML-Seiten, die per Mausklick und eingebautem Editor von jedem verändert werden konnten.
Wiki ist die Kurzform von WikiWikiWeb – “wiki wiki” ist aus dem Hawaiianischen abgeleitet und bedeutet “schnell”. Das offene Autorensystem arbeitet schnell. Die Wiki-Engine MoinMoin ist eine der bekanntesten Implementationen dieser Technik.
Per Mausklick erhält der Benutzer über einen eingebauten Editor Zugriff auf den Inhalt und die Form der zu verändernden Seite. Meistens befindet sich unten ein Link Editieren/Edit/Bearbeiten.
Im Gegensatz zu “echtem” HTML, in dem mit Tags formatiert wird, gibt es für Wikis eine spezielle Syntax, die mit nur wenigen und sehr einfachen Formatierungsbefehlen auskommt.
Durch ein Versionskontrollsystem für die Wiki-Web-Seiten ist sichergestellt, dass jederzeit alte Versionen zurückgespielt werden können, falls aus Versehen eine Seite gelöscht oder fehlerhaft hinterlassen wurde. Zusätzlich bieten einige Wikis die Möglichkeit, einzelne oder alle Seiten mit speziellen Zugriffsrechten zu versehen, damit sie nur noch registrierte User bearbeiten dürfen.
Die erste Wiki-Website wurde 1995 von Ward Cunningham veröffentlicht und ist immer noch online [1]. Cunningham schrieb damals in einer E-Mail, dass er eine neue Datenbank programmiert habe, “ein Netz aus Menschen, Projekten und Mustern, auf das man über ein CGI-Skript zugreifen kann” [2].
Damit öffnete er seine HTML-Seiten für jedermann – am Fuß jeder Seite ist eine Verknüpfung, die die Benutzer in den Editor bringt, wo sie die Seite erweitern oder verändern können. Dort wird allerdings nicht in HTML programmiert: Cunningham wollte es den Autoren leichter machen. Daher wählte er eine einfache Syntax.
Die Wiki-Engine speichert die eingegebenen Informationen gewöhnlich als ASCII-Text oder extern in relationalen Datenbanken, wie zum Beispiel MySQL, Oracle oder PostgreSQL. Aus diesen Daten erstellt die Software die nach außen hin sichtbaren HTML-Seiten.
Außer einem Besuch beim Original-Wiki lohnt sich ein Blick auf das momentan größte Wiki im Netz: Die Wikipedia [3] bietet neben unzähligen Artikeln und Seiten gleich Ausgaben in mehreren Sprachen, darunter auch eine deutsche Version. Sie ist ein Beispiel dafür, wie gut sich Informationen mit einem Wiki organisieren lassen.
Wer selbst ein Wiki betreiben möchte, hat die Qual der Wahl – über 100 verschiedene Wiki-Engines stehen zur Verfügung [4], von denen die meisten Open Source sind. Wir stellen MoinMoin vor und geben eine Einführung in die dort verwendete Syntax.
Alle Mann an Bord?
Bevor es an die Wiki-Installation geht, stellen Sie erst einmal sicher, dass einige andere Dienste auf Ihrem Rechner laufen. Dazu gehört beispielsweise Apache [5]. LinuxUser 06/2002 [6] bietet eine gute Einführung in die Installation und Konfiguration von Apache 2 – bei den meisten aktuellen Distributionen ist der Web-Server in der Version 1 und 2 als Paket dabei, und Sie müssen das Programm nicht mehr von Hand aus den Quellen übersetzen.
MoinMoin [7] ist ein Wiki, das auf der Skriptsprache Python [8] basiert. Prüfen Sie daher mit dem Kommando python -V, ob Python auf Ihrem Rechner installiert ist, und spielen Sie gegebenenfalls nachträglich die Python-Pakete von den Installations-CDs Ihrer Distribution ein.
MoinMoin, Matrosen!
Die MoinMoin-Sourcen finden Sie auf der Heft-CD (LinuxUser/wiki/) und auf der Projekt-Homepage zum Download. Entpacken Sie das Archiv mit dem Kommando tar xzvf moin-1.0.tar.gz, wechseln Sie ins neu entstandene Verzeichnis (cd moin-1.0) und werden Sie root. Python hilft dabei, die Software zu installieren. Der Aufruf lautet:
huhnix:/tmp/moin-1.0 # python setup.py install --record=install.log running install running build running build_py creating build creating build/lib creating build/lib/MoinMoin […]
Der Parameter --record=install.log sorgt dafür, dass eine Übersicht aller Schritte in der Datei install.log geschrieben wird. Finden Sie anschließend heraus, unter welcher User- und Gruppen-ID Ihr Apache läuft. Dazu lassen Sie sich aus der Apache-Konfigurationsdatei die entsprechenden Werte ausgeben. Unter SuSE Linux 8.2 tippen Sie dazu beispielsweise:
huhnix:/tmp/moin-1.0 # egrep "^User|^Group" /etc/httpd/httpd.conf User wwwrun Group nogroup
Auf Red-Hat-Linux-Systemen durchsuchen Sie stattdessen die Datei /etc/httpd/conf/httpd.conf, und bei Debian Linux ist es /etc/apache/httpd.conf.
Gehen Sie ins moin-Verzeichnis (cd /usr/share/moin/ oder cd /usr/local/share/moin/), um eine neue Wiki-Instanz anzulegen:
mkdir meinwiki cp -r data meinwiki cp cgi-bin/* meinwiki chown -R wwwrun.nogroup meinwiki chmod a+rx meinwiki/*.cgi
Auf Debian-Systemen ersetzen Sie im chown-Aufruf entsprechend die IDs durch www-data.www-data, unter Red Hat Linux durch apache.apache. In der Apache-Konfigurationsdatei (unter SuSE Linux ist das /etc/httpd/httpd.conf für Apache 1 und /etc/apache2/httpd.conf für Apache 2, bei Debian /etc/apache/httpd.conf, bei Red Hat Linux /etc/httpd/conf/httpd.conf) müssen noch zwei Einträge vorgenommen werden:
Alias /wiki/ "/usr/share/moin/htdocs/" ScriptAlias /meinwiki "/usr/local/share/moin/meinwiki/moin.cgi"
Die erste Zeile brauchen Sie nur einmal in der Konfigurationsdatei; der zweite Eintrag ist für jede neue Wiki-Instanz auf dem Server notwendig – natürlich mit angepassten Namen und Pfad. Vermeiden Sie nach Möglichkeit, Ihr Wiki einfach nur wiki zu nennen – dies kann zu Namenskonflikten mit internen Bezeichnern der Software führen.
Zum Schluss starten Sie den Web-Server neu (/etc/init.d/apache2 restart für Apache 2, /etc/init.d/apache restart für Apache 1 und /etc/init.d/httpd restart unter Red Hat Linux). Öffnen Sie im Browser die URL http://localhost/meinwiki/, zeigt das Wiki die Startseite an (Abbildung 1). Lassen Sie sich von ein paar englischen Einträgen auf der Startseite nicht abschrecken; die meisten Dinge sind sehr gut in Deutsch dokumentiert.
Buddelschiff
Die ersten Gehversuche in Ihrem neuen Wiki unternehmen Sie am besten im so genannten Sandkasten, zu erreichen über einen Link von der Startseite (http://localhost/meinwiki/WikiSandBox). Klicken Sie auf den Link Editieren dieser Seite, öffnet sich ein Fenster im Fenster. Die meisten Formatierungsbefehle sind einfach zu erlernen und prägen sich schnell ein. Tabelle 1 bietet eine Übersicht über die wichtigsten Befehle.
MoinMoin – die richtige Syntax
| Wiki-Syntax | HTML-Syntax | Darstellung |
|---|---|---|
| ”kursiv” | <em>kursiv</em> | kursiv |
| ”’fett”’ | < b>fett</b> | fett |
| ##Kommentar | <!–>Kommentar<–> | erscheint nicht als Output |
| [[BR]] | <br> | harter Zeilenumbruch |
| Leerzeile | <p> | Absatz |
| = Überschrift 1 = | <h1>Überschrift</h1> | Überschrift 1. Ebene |
| == Überschrift 2 == | <h2>Überschrift</h2> | Überschrift 2. Ebene |
| === Überschrift 3 === | <h3>Überschrift</h3> | Überschrift 3. Ebene |
| ==== Überschrift 4 ==== | <h4>Überschrift</h4> | Überschrift 4. Ebene |
| ===== Überschrift 5 ===== | <h5>Überschrift</h5> | Überschrift 5. Ebene |
| —- (vier Bindestriche) | <hr> | horizontale Linie |
Links dürfen auf verschiedene Art und Weise gesetzt werden. Als Verweis auf eine externe Seite im WWW geben Sie einfach eine URL an. Wichtig ist dabei, dass auf jeden Fall das http:// nicht fehlt. Ein gültiger Verweis ist also http://www.linux-user.de, nicht aber www.linux-user.de.
Für eine zusätzliche Beschreibung des Links können eckige Klammern verwendet werden – [http://www.linux-user.de LinuxUser-Homepage]. Dies ist die Entsprechung für <a href=”http://www.linux-user.de”>LinuxUser-Homepage</a> in HTML.
Interne Links zu Seiten im Wiki setzen Sie durch die so genannte “CamelCase”-Schreibweise. Dazu muss ein Großbuchstabe am Anfang und innerhalb der Zeichenfolge auftauchen. So wird beispielsweise LinuxUser als Link zur Seite http://localhost/meinwiki/LinuxUser gesetzt.
Existiert diese noch nicht, bietet MoinMoin Hilfe beim Erstellen (Abbildung 2). Setzen Sie MoinMoin: vor einen solchen internen Link, erzeugt die Wiki-Engine übrigens einen Verweis zum offiziellen MoinMoin-Wiki. So bringt die Verknüpfung MoinMoin:LinuxUser Sie zur Seite http://purl.net/wiki/moin/LinuxUser.
Unter Deck
Im Verzeichnis /usr/share/moin/htdocs/img/ liegen jede Menge Bilddateien im GIF-Format, die das Wiki verwendet. Dazu gehören Smileys (Emoticons) aller Art. Die Wiki-Software setzt diese ein, wenn entsprechende Zeichen im Text auftauchen. Andere Symbole verwendet das Wiki selbst, wie zum Beispiel das Python-Logo auf jeder Seite oder die Warnzeichen. Eine Tabelle mit allen Zeichen und deren Notation finden Sie unter http://localhost/meinwiki/HilfeZuSmileys.
Andere Grafiken wie das MoinMoin-Logo moinmoin.gif finden Sie ebenfalls in /usr/share/moin/htdocs/img/. Möchten Sie auf Ihren Wiki-Seiten statt des Männchens mit “Moin, Moin!”-Schild lieber ein eigenes Logo oder Bild haben (Abbildung 3), legen Sie die entsprechende Bilddatei einfach ins Verzeichnis /usr/share/moin/htdocs/img/ und editieren anschließend die Datei /usr/share/moin/meinwiki/moin_config.py. Dort lautet der Eintrag dann:
logo_url = url_prefix + '/img/Ihre_Bilddatei'
So können Sie der Wiki-Seite für ein Projekt oder für das Intranet einer Firma ein entsprechendes Aussehen geben.
In der Datei /usr/share/moin/meinwiki/moin_config.py editieren Sie unter anderem den Namen Ihrer Wiki-Instanz. Dazu ersetzen Sie die Voreinstellung, die unter dem Variablennamen sitename gespeichert ist, durch etwas eigenes, wie beispielsweise sitename = 'Brainstorming Sonderheft'. Dieser Name erscheint anschließend in der Titel-Leiste des Browsers.
Offene Wikis, offene Türen?
Auf den Administrator eines Wikis kommen einige wichtige Aufgaben zu, wie zum Beispiel die Pflege der Seiten. Diese befinden sich im Unterverzeichnis data/text/ des Wikis. Von dort löschen Sie sie mit dem rm-Kommando direkt auf dem Server. Normale Anwender dürfen nur dann Seiten löschen, wenn dies in der Konfigurationsdatei /usr/share/moin/meinwiki/moin_config.py aktiviert ist. Dazu fügen Sie folgende Zeile ein:
allowed_actions=['DeletePage']
Anschließend finden Besucher des Wikis unten auf den Seiten einen Link DeletePage. Beim Anklicken fragt MoinMoin noch einmal nach (Diese Seite wirklich löschen?) und bietet an, eine Begründung für den Vorgang einzutragen.
Damit Seiten nicht aus Versehen in der Versenkung verschwinden, speichert die Software Sicherungskopien von gelöschten Seiten im Verzeichnis /usr/share/moin/meinwiki/data/backup/. Um den Überblick zu behalten, führt der Link AktuelleÄnderungen oben auf jeder Seite zu den letzten Änderungen des Wikis.
Die Möglichkeit, Zugriffsrechte für verschiedene Benutzer zu vergeben, planen die Entwickler von MoinMoin, und in der Entwicklerversion ist sie bereits im Testeinsatz (siehe auch [9]). Sie bekommen diese allerdings zur Zeit nur aus dem CVS über die Projekt-Homepage.
Grundsätzlich bieten Wikis – und das sollte sich jeder Betreiber klar machen – keinerlei Sicherheit. Wenn ein Wiki offen im WWW angeboten wird, hat jeder Saboteur leichtes Spiel.
Ein Wiki im Intranet eines Unternehmens ist jedoch eine praktische Sache. Die einfache Bedienung und die Tatsache, dass nicht jeder User auf dem Webserver einen Account braucht, um eine Seite zu ändern, empfiehlt die Software vor allem auch für Anwender, die technisch nicht versiert sind.
Glossar
-
CGI
-
CGI steht für Common Gateway Interface und bietet eine Schnittstelle zwischen externen Programmen oder Skripten und dem Web-Server. Während HTML-Seiten statisch sind, lässt sich über CGIs Inhalt zur Laufzeit generieren. Programme, die im Verzeichnis “cgi-bin” des Web-Servers liegen, führt der Server automatisch aus, wenn ein Browser sie aufruft. Solche CGI-Skripte verarbeiten beispielsweise Formulareingaben aus HTML-Dateien.
Infos
[2] http://c2.com/wiki/mail-history.txt
[4] http://c2.com/cgi/wiki?WikiEngines
[6] Marc André Selig: “Neuer Indianer – Web-Server Apache 2”, LinuxUser 06/2002, S. 40f.: http://www.linux-user.de/ausgabe/2002/06/040-apache/apache-5.html
[7] http://moin.sourceforge.net
[9] http://twistedmatrix.com/users/jh.twistd/master/moin.cgi/HelpOnAccessControlLists







