Favoriten

Kurztipps

Kategorien

TWiki – digitaler Ameisenhaufen


Das Konzept hinter Wikis entspricht sehr dem der OpenSource-Bewegung.
Jeder darf mithelfen, es gibt keine Hierarchie und jeder sollte das beitragen, was er am besten kann.

Umso erstaunlicher, daß das Prinzip “Wiki” sich erst langsam durchgesetzt hat, liegt die Geburtsstunde dieser Technologie doch bereits im Jahre 1995.

 

Was ist ein Wiki?

Für alle, die bisher noch nicht wissen, was ein Wiki ist, hier ein kleiner Erklärungsversuch.
Ein Wiki gehört zur Gruppe der CMS (= Content Management Systeme), es ist also ein Programm, welches einem erlaubt Web-Inhalte zu erstellen, und zu verwalten.
Der Grundgedanke des Wikis besteht darin, die Mitarbeit an der Web-Seite jedem Benutzer so einfach wie möglich zu gestalten. Man kann direkt im Web-Browser neue Seiten erstellen oder bestehende Seiten verändern. Je nach Art der Konfiguration des Wikis kann dieser Eingriff passwortgeschützt geschehen, oder jedem Besucher frei stehen.
Damit verwischt die ansonsten strenge Trennung zwischen Besucher und Web-Seiten Betreiber. Jeder Besucher kann (und sollte) Änderungen an einer Seite vornehmen, wenn er z.B. einen Fehler entdeckt, einen ungültigen Link findet oder weitere Informationen der Seite hinzufügen möchte.

Bekommt man dieses Konzept zum ersten mal erklärt, stellt sich normalerweise dann sofort die Frage, ob dies auch wirklich funktioniert.
Überraschenderweise ja!
Natürlich kann es vorkommen, daß Besucher die Offenheit des Systems ausnutzen und versuchen das Wiki mit unpassenden Inhalten zu verschmutzen.
Wikis benutzen aber intern eine Versionkontrolle (später mehr), die eine derart verschmutzte Seite mit minimalem Aufwand wieder auf ihren ursprünglichen, vor dem Eingriff bestehenden Zustand zurückstellen können.
Ein Angreifer hat somit wesentlich mehr Aufwand zu tätigen, als ein Besucher, der diese Änderungen Rückgängig macht.

Und solange sie nicht versuchen eine Seite www.w3-4re-h4Xors.de als Wiki zu betreiben, kann man sich sicher sein, daß es wesentlich mehr “gute” als “böse” Besucher auf der Seite gibt.

Daß das Prinzip wirklich funktioniert, zeigen Seiten wie www.wikipedia.org, einer Online-Enzyklopädie oder www.linuxwiki.de, welche Informationen rund um Linux sammelt.

 

Einsatzgebiete

Für wen eignet sich nun der Einsatz eines Wikis?
Dies ist schwer zu beantworten. Die Einsatzmöglichkeiten sind sehr weit gefächert.
Außerdem gibt es bereits einen große Anzahl an öffentlichen Wikis zu verschiedensten Themenbereichen, und es macht wenig Sinn, wenn mehrere Wikis zum selben Thema existieren.
Stattdessen sollte man seine Arbeit dann besser in das bereits existierende Wiki investieren, als weitere Konkurrenz zu schaffen, und somit den Leser und Mitarbeiter-Stamm der Wikis künstlich zu halbieren.

Als besonders praktisch hat sich der Einsatz von Wikis in Firmen-Intranets erwiesen, wo Mitarbeiter auf unkomplizierte Weise interne Dokumentation online erstellen und verwalten können.

Oder in der Forschung, wo nach dem Weggang eines Mitarbeiters häufig auch dessen Wissen über die Bedienung von gruppeneigenen Gerätschaften verloren geht.
Dank Wiki können auch größere Arbeitsgruppen auf einfache Weise bereits im Vorwege Dokumentationen erstellen.

 

Wiki-Software Überblick

Die Auswahl an verschiedenen Wiki-Lösungen ist mittlerweile unüberschaubar groß, und wie so oft läßt sich auch hier keine ideale Lösung benennen.
Diese ist wie immer abhängig vom Einsatzgebiet.

Datenbank
Viele Wikis speichern ihre Seiten in MySQL Datenbanken, andere im FlatFile-Format. Die Datenbank hat den Vorteil, daß der Zugriff auf die Seiten besonders bei hohen Besucherzahlen und großem Umfang des Wikis schneller funktioniert als beim FlatFile-Format.
Jedoch ist der Installationsaufwand größer, und nicht jeder Web-Hoster bietet die Möglichkeit eine MySQL-Datenbank zu benutzen, oder verlangt dafür einen Aufpreis.

Programmiersprache
Nicht zu unterschätzen die die Programmiersprache, in der das Wiki geschrieben wurde. Die Auswahl reicht von Perl, C, PHP, ReXX über Java, Python und vielen anderen.
Möchte man einen professionellen Web-Auftritt in einem Wiki realisieren, kommt schnell der Punkt, wo man eigene Änderungen an der Wiki-Engine vornehmen möchte (oder muss). Dann ist es sinvoll, wenn man sich für eine Programmiersprache entschieden hat, die man auch selber beherrscht.

Syntax
Wikis benutzen zum Schreiben der Web-Seiten kein HTML, sondern eine eigene, vereinfachte Syntax. Dies soll die Hemmschwelle beim editieren der Web-Seiten senken. Normalerweise schreibt man in reinem ASCII mit einigen Spezialbefehlen. Diese Syntax ist (leider) von Wiki zu Wiki verschieden.
Anfangs wurde häufig die CamelCase schreibweise eingesetzt, bei der zusammengesetze Worte mit mindestens einem Großbuchstaben in der Mitte automatisch zur zugehörigen thematisch zugeordneten Seite verlinkt wurden.
Diese Schreibweise hat sich aber besonders bei größeren Wikis als uneffektiv herausgestellt, und behinderte dort zunehmend den Lesefluss.
Mittlerweile benutzen immer weniger Wikis CamelCase, oder lassen diese Funktion optional ausschalten.

Extras
Die Wiki-Technologie alleine ist nicht für alle Einsatzzwecke ausreichend. News-Seiten auf Basis eines Wikis sind ungeeignet, aber auch Link-Sammlungen oder Web-Logs lassen sich anderweitig besser realisieren.
Daher gibt es mittlerweile auch Komplettlösungen, die neben einem Wiki auch spezielle Tools wie Blogs, Bilder-Gallerie, Webmail, Chat und anderes anbieten.
Eine besonders ausgereifte Variante dieser Alleskönner ist Tiki: www.tikiwiki.org
Jedoch erhöht sich mit derartigen Komplettlösungen auch der Installationsaufwand.

Modularität
Einige Wikis lassen sich mittels Plugins in ihrem Funtkionsumfang erweitern, oder bestehende Funktionen werden verändert.
Derartige Plugins können z.B. anhand von eingegeben Daten automatisch ein Bild des zugehörigen Graphen erstellen, oder das Wiki um einen Kommentarbereich erweitern.

 

Installation

Im folgenden soll die Installation des Perl-basierenden Wikis TWiki beschrieben werden. Daß ich mich für diese Version entschieden habe, liegt hauptsächlich an der gewählten Programmiersprache (da das Betriebssystem auf dem das Wiki liegt häufiger wechselt, mußte es dringend eine Skript-Sprache sein), der einfachen Syntax und der guten Modularität.

Die Software erhält man unter http://twiki.org/download.html oder man besorgt sich die neueste CVS-Version von Sourceforge:

>> cvs -d:pserver:[email protected]:/cvsroot/twiki login
(Enter bei der Passwortabfrage drücken)
>> cvs -z3 -d:pserver:[email protected]:/cvsroot/twiki co twiki

Jedoch sind in der CVS-Version die beiden Verzeichnisse data/ und pub/ nicht enthalten und müssen aus der Beta-Release oder der Production-Releaseentnommen werden.

Die Verzeichnisse bin, templates und lib müssen in das cgi-bin-Verzeichnis des Web-Servers verschoben werden, während data und pub in das htdocs-Verzeichnis des Web-Servers kommen (bei einigen Distributionen heißt dieses Vereichnis httpd).
Wie genau Ihre Verzeichnisstruktur des Web-Server aussieht hängt davon ab, welche Distribution Sie einsetzen. Natürlich ist der Einsatz von TWiki nicht auf Linux beschränkt, sondern funktioniert auf jeder Plattform, die Perl-Skripte ausführen kann.

Damit Besucher die Web-Seiten ändern können, benötigen die Verzeichnisse data und pub noch die Rechte drwxrwxr-x (775)

>> chmod 755 -R data
>> chmod 755 -R pub

und sollten dem Benutzer nobody gehören:

>> chown nobody data
>> chown nobody pub

Ausführliche Informationen über die Installation des Wikis erhält man (auf englisch) unter http://twiki.org/cgi-bin/view/TWiki/TWikiDocumentation#TWiki_Installation_Guide.

 

Konfiguration

Die Konfiguration beschränkt sich zunächst auf die Datei lib/TWiki.cfg, in der die wichtigsten vorzunehmenden Einstellungen folgende sind:

 

Datei lib/TWiki.cfg
 #                   Die URL der TWiki-Seiten :    (z.B. "http://meinrechner.de:123")
 $defaultUrlHost   = "http://your.domain.com";
 #                   %SCRIPTURLPATH% : cgi-bin URL des bin-Verzeichnisses:
 $scriptUrlPath    = "/cgi-bin/bin";
 #                   %PUBURLPATH% : URL Pfad des pub-Verzeichnisses :
 $pubUrlPath       = "/pub";
 #                   Kompletter lokaler Pfad zum data Verzeichnis,
 $pubDir           = "/usr/local/httpd/htdocs/pub";
 #                   Template Verzeichnis :
 $templateDir      = "/usr/local/httpd/htdocs/templates";
 #                   Data Verzeichnis:
 $dataDir          = "/usr/local/httpd/htdocs/data";

Sollten alle Einstellungen korrekt vorgenommen worden sein, kann man das Wiki sogleich benutzen.
Wurden die CGI-Programme in ein anderes Unterverzeichnis kopiert als /cgi-bin, ist es wahrscheinlich nötig dies in der Apache-Konfiguration anzugeben, und den Server neu zu starten.

 

Authentifizierung

TWiki kann man in vier verschiedenen Authentifizierungs-Modi betreiben.

  • Sofort nach der Installation läuft das Wiki in einem Zustand ohne jegliche Benutzerauthentifizierung. Jeder Besucher der Web-Seite kann ohne Registierung oder Anmeldung sofort Seiten ändern, so wie es einmal die Ur-Idee des Wikis war.
    Jedwede Änderung findet unter dem Benutzeraccount “TWikiGuest” statt.
    Dies bedeutet aber auch, daß Änderungen an den Seiten nachträglich nicht mehr einer Person zuzuordnen sind. 
  • Besucher können jede Seite weiterhin ohne Registrierung ansehen, aber zum Ändern von Seiten ist eine (freie) Registrierung des Benutzers nötig.

    Jede Seitenänderung läßt sich nun einem Benutzer zuordnen. 
  • Die dritte Stufe ist restriktiver. Zum Ändern von Seiten ist weiterhin eine Registrierung nötig, zusätzlich kann man aber auch Bereiche im Wiki einrichten, die von nun an nur registrierten Benutzer einsehbar sind.
    Diese Sicherheitsstufe ist mittels TWiki-Plugins erreichbar. 
  • Natürlich kann man den Zugang zum Wiki auch komplett mit einem Passwort sichern. Zum Beispiel kann man den gesamten Server mittels SSL und reinem Passwort-Zugang ausstatten. Diese Konfiguration erfolgt aber gänzlich serverseitig und ist unabhängig vom Wiki. 

Normalerweise wird wohl der zweite Modus benutzt.
Dafür muß die in bin befindliche .htaccess-Bespieldatei umkopiert werden:

>> mv bin/.htaccess.txt bin/.htaccess

Zusätzlich sollten in der Datei noch mindestens folgende Abschnitte angepasst werden:

 

bin/.htaccess
 # Password file for TWiki users
 #
 # The path here must be a system file pathname, not a URL - first part should
 # match the $dataDir setting in TWiki.cfg
 AuthUserFile /usr/local/httpd/htdocs/data/.htpasswd

 [...]

 # File to return on access control error (e.g. wrong password)
 # The path here must be a URL path, not a file pathname - first part should
 # match the $scriptUrlPath in TWiki.cfg
 ErrorDocument 401 /usr/local/httpd/htdocs/bin/oops/TWiki/TWikiRegistration?template=oopsauth

 [...]

Die Passwörter und Benutzernamen werden in der unter AuthUserFile eingestellten Datei abgelegt. Diese Datei existiert bereits, und beinhaltet standardmäßig die Usernamen und Passwörter der TWiki Autoren.
Sollten sie nicht wollen, daß diese Personen Zugang zu Ihrem Wiki haben, sollten Sie dringend deren Einträge löschen.

Damit oben beschriebene User-Authentifizierung funktioniert, muß vom Apache Web-Server die Datei .htaccess ausgewertet werden. Abhängig von der benutzten Distribution muß Ihr Web-Server unter Umständen noch neu konfiguriert werden.
Näheres findet man in der Dokumentation des Web-Servers, oder z.T. auch in der TWiki Installationsanleitung.

 

Wiki anpassen

Hat man alle nötigen Schritte vorgenommen, damit das Wiki auf dem Server läuft, geht es an die eigentliche Arbeit: das Wiki anzupassen.
Das ursprüngliche Erscheinungsbild des Wikis ist, vorsichtig ausgedrückt, sehr unansprechend.

Abhilfe ist aber schnell erreicht. Das Erscheinungbild des Wikis wird über Templates eingestellt.
Unter htdocs/templates befindet sich eine Fülle an Dateien, die das Erscheinungsbild der verschiedenen Wiki-Seiten vorgeben.
Die Darstellung der “Standardseiten” (also der Seiten zum Anschauen der Wiki-Texte) wird in den Dateien htdocs/templates/twiki.tmpl und htdocs/templates/view.tmpl geregelt.
Der Struktur dieser Dateien ist etwas unübersichtlich, aber im Trial&Error Verfahren kann man schnell erkennen, wie sich Änderungen im Design der Seite auswirken.

Zusätzlich werden viele Dinge wie Farben und die Texte der Menüleisten über Wiki-Variablen gesteuert.
Derartige Variablen werden im Wiki selbst eingestellt und zwar mit der Syntax

     * Set VARIABLENMAE = (wert)

Wobei es wichtig ist sechs Leerzeichen vor dem Stern zu setzen.

Unter http://www.meinrechner.de/cgi-bin/bin/view/TWiki/TWikiPreferences werden die Globalen Variablen gesetzt. Hier eingestellte Werte sind für alle sog. Webs (Thematisch zusammengefasste Unterrubriken des Wikis) gültig, können aber durch Neudefinition der Variablen im jeweiligen Web überschrieben werden: http://www.meinrechner.de/cgi-bin/bin/view/Main/WebPreferences.

 

Versionskontrolle

Um Änderungen an den Seiten Schritt für Schritt verfolgen zu können, und eventuell auch rückgängig zu machen, ist eine Versionskontrolle notwendig.
TWiki benutzt intern RCS (Revision Control System), welches einigen vielleicht als der Vorfahre von CVS bekannt ist.
Folglich muß RCS auf dem Web-Server auch installiert sein. Ohne RCS ist zwar das Editieren und Hinzufügen von Wiki-Seiten möglich, nur kann man sich nicht explizit anzeigen lassen, welche Änderungen von welchem Benutzer vorgenommen wurden.

Sind die RCS-Tools nicht installiert, sollte man dies nachholen.
Bei den meisten Distributionen befinden sie sich im selben RPM-Paket wie die CVS Programme.
Standardinstallationpfad ist /usr/bin. Sollten die Programme woanders hinkopiert sein, kann man dies einfach in der lib/Twiki.cfg einstellen:

 

lib/TWiki.cfg
 [...]
 #                   RCS directory (find out by 'which rcs') :
 $rcsDir           = '/usr/bin';                 # Unix, Linux and Cygwin

Nicht auf jedem Server kann man aber Software nachinstallieren, und speziell unter Solaris wird RCS offiziell nicht mehr angeboten.
Daher haben sich die Autoren von TWiki hingesetzt, und die von RCS benötigten Funktionen in Perl zu implementieren. Das ganze nennt sich dann RcsLite.

RcsLite ist bisher noch in der Testphase, funktioniert aber bereits sehr gut.
Möchte man statt RCS den Perl-Ersatz benutzen, muß auch dies in der lib/Twiki.cfg eingestellt werden:

 

lib/TWiki.cfg
 [...]

 # RcsLite - use a 100% Perl simplified implementation of Perl (NOT yet ready for production use)
 #$storeTopicImpl = "RcsWrap";
 $storeTopicImpl = "RcsLite";

Man kann auch während das Wiki bereits läuft und Einträge vorgenommen wurden zwischen beiden Varianten hin- und her-wechseln.

 

Die TWiki-Syntax

Die von TWiki benutzte Syntax ist ausgesprochen einfach gehalten.
Im folgenden soll eine kurze Übersicht gegeben werden

 

Wiki-Syntax Ergebnis Erklärung
---++ Sushi

Sushi

Kapitelüberschriften werden mittels “—” und einem bis 6 + eingeleitet. Je mehr + Zeichen, desto kleiner die Überschrift.
*Bold* Bold Fettgedruckte Wörter werden mit * eingeschlossen
--------
eine horizontale Linie als optischer Trenner
* bullet item
  • bullet item
Aufzählungen in Listen werden durch 3 Leerzeichen und einem * eingeleitet
| *L* | *C* | *R* |
| A2 | 2 | 2 |
| A3 | 3 | 3 |
| multi span |||
| A4-6 | four | four |
|^| five | five |
|^| six | six |

L C R
A2 2 2
A3 3 3
multi span
A4-6 four four
five five
six six

Tabellen lassen sich sehr einfach erstellen und können sogar per Link automatisch nach Zeilen sortiert werden.
[[http://gnu.org][GNU]] GNU URLs werden automatisch erkannt und verlinkt. Möchte man einen alternativen Text anzeigen muß man [[URL][Text]] benutzen

 

Arbeitstipps

Dieser Artikel soll nur einen kleinen Einblick in die Möglichkeiten von TWiki geben.
Wer sich auf der TWiki-Hompage umschaut, wird schnell feststellen, daß der Funktionsumfang der Software sehr vielfältig ist, so daß hier vieles ausgelassen werden mußte.

Trotzdem sollten am Ende noch einige Kleinigkeiten erwähnt werden, die das Arbeiten mit TWiki erleichtern.

 

  • Der Include-Befehl
    Um Web-Seiten dynamischer zu gestalten, kann man im Wiki problemlos externe Quellen einbinden. Mittels

    %INCLUDE{"http://www.irgendo.de/webseite.html"}%

    wird der Inhalt der angegebenen externen Web-Seite in die Wiki-Seite integriert.
    Natürlich kann diese Datei auch von einem CGI-Skript erstellt worden sein.
    Zusätzlich läßt sich die einzubindende Seite noch durch RegularExpressions vor dem Einbinden bearbeiten.
    Es ist auch möglich, andere Wiki-Seiten einzubinden:

    %INCLUDE{"%TWIKIWEB%.WebSiteTools"}%

    Sollten also verschiedene Seiten den selben Inhalt anzeigen und müssen nur an einer Stelle editiert werden.
    Mittels

    %STOPINCLUDE%

    können Abschnitte beim Einbinden in fremden Seiten vom Anzeigen ausgeschlossen werden. 

  • Navigationsleiste als Wiki-Seite
    Beinahe jede Web-Seite hat eine Navigationsleiste. Anstatt dies Leiste nun fest in die Template-Dateien einzubauen, und jedesmal per Hand ändern zu müssen, kann man diese Navigationsleiste einfach als Wiki-Seite implementieren.
    In die Template-Datei (view.tmpl) fügt man den Eintrag

    %INCLUDE{"Main.Navigationsleiste"}%

    und kann die Navigationsleiste unter cgi-bin/bin/view/Main/Navigationsleisteeditiert werden. 

  • Schreibgeschützte Seiten
    Unter Umständen gibt es Seiten, die nicht von fremden Personen geändert werden sollen. (z.B. die persönliche Homepage im Wiki).
    In solchen Fällen genügt ein Eintrag

          * Set ALLOWTOPICCHANGE = MeinName

    und schon kann die Seite nur von der Person mit dem Wiki-Namen “MeinName” geändert werden. 

  • Mozilla Extension: mozex
    Wer viele Texte im Wiki schreibt, wird schnell an die Grenzen des HTML-Elementes <textarea> stoßen.
    Die Bearbeitung von längeren Texten ist in diesem Kästchen äußerst umständlich. SyntaxHighlighting und Rechtschreibkontrolle gibt es nicht, auch vermisst man schnell die vom Lieblingseditor bekannten Tastaturkürzel.Mozex schafft hier Abhilfe. Das Programm erlaubt einem den Inhalt einer Textarea in einem ASCII-Texteditor seiner Wahl (zusammen mit allen verbundenen Vorzügen) zu editieren.
    Hompage: http://mozex.mozdev.org/

     

 


Links:
TWiki Hompage: http://twiki.org/
Tiki Hompage: http://tikiwiki.org/
Mozex Homepage: http://mozex.mozdev.org/
Linuxwiki: http://www.linuxwiki.de
Wikipedia: http://www.wikipedia.org


avatar This post was written by R. Ziegler who has written 38 posts

Info: Autor des Linux NetMag seit Gründung. Linux-User seit gefühlten Ewigkeiten.

Homepage: http://www.linuxnetmag.de

Kommentar schreiben

  

  

  


(required)

HTML Code benutzbar

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>