Erstellung einer MediaWiki-basierten Website für ein Open-Source-Projekt

Wikimanie
Kommentare

Die freie Online-Enzyklopädie Wikipedia kennen viele, doch das Projekt hinter Wikipedia kennen nur wenige. Die MediaWiki-Software ist eine PHP-basierte und frei verfügbare Wiki-Implementierung, die nicht nur bei den Wikipedia-Websites zum Einsatz kommt, sondern auch für herkömmliche Websites verwendet werden kann, zum Beispiel um ein Open-Source-Projekt auf Sourceforge zu präsentieren.

Die Wikipedia-Seiten [1] sind populär, doch auch das MediaWiki-Projekt [2], welches sich um die Bereitstellung der notwendigen Webanwendung kümmert, gewinnt zunehmend an Beachtung. So haben eine ganze Reihe von Open-Source-Projekten ihre Websites auf dieser Wiki-Software aufgesetzt. Ein prominentes Beispiel ist das Mono-Projekt, obgleich das Layout dieser Website [3] diesen Umstand nicht offenbart. Dies zeigt nicht zuletzt, wie flexibel sich diese PHP-Anwendung anpassen lässt und sich somit für eine Vielzahl verschiedener Aufgaben eignet, zum Beispiel:

• Repräsentation eines Unternehmens oder eines einzelnen Projektes im Web
• Aufbau einer fachspezifischen Enzyklopädie
• Dokumentation einer Software in einem Entwicklungsteam
• Spezifikation und Diskussion von Standards in einem offenen Prozess

Anforderungen

Am Bioinformatik-Lehrstuhl der Ludwig-Maximilians-Universität München [4] wurde die MediaWiki-Software z.B. eingesetzt, um für das Open-Source-Projekt Bio-Weka, einem Java-basierten Framework für das Data Mining biologischer Daten, eine Website [5] zu erstellen, die sowohl von den Entwicklern als auch von den Benutzern editiert werden kann. Eine Wiki-basierte Website empfiehlt sich besonders für Open-Source-Projekte, da erstens an einem solchen Projekt Entwickler aus verschiedenen Unternehmen oder Organisationen arbeiten, zweitens die Verantwortlichkeiten meist nicht klar definiert sind und drittens die Beteiligten schnell wechseln oder nur sporadisch an dem Projekt arbeiten. Eine dezentrale und offene Lösung ist daher in solchen Fällen die beste Wahl.

Das MediaWiki ist sowohl in der Installation als auch in der Anwendung einfach und komfortabel. Außerdem sind die Anforderungen, die das MediaWiki in der aktuellen Version 1.5 an den Webserver stellt, minimal: PHP und MySQL bieten fast alle Webhoster, so auch Sourceforge. Jedes bei Sourceforge registrierte Projekt erhält zusätzlich zu der Projektseite (unter sourceforge.net/projects/bioweka) einen kostenlosen Webspace, der im Falle des BioWeka-Projektes unter bioweka.sourceforge.net zu erreichen ist, sowie eine My-SQL-Datenbank.

Allerdings unterliegt die Nutzung dieses Webspaces einigen Einschränkungen und Bedingungen, welche die Installation eines Wikis nicht gerade einfach machen. So muss zum Beispiel auf jeder Webseite das Sourceforge-Logo erscheinen und ein schreibender Zugriff auf das Webspace- Verzeichnis von der Website aus ist nicht gestattet. Doch auch mit diesen Schwierigkeiten kommt das MediaWiki zurecht.

Installation

Als Erstes ist die aktuelle Version von [2] als TAR-Datei auf den lokalen Rechner zu laden. Von hier aus kann das Archiv mittels scp (secure copy) auf die Sourceforge- Shell nach shell.sourceforge.net:~ kopiert werden – vorausgesetzt man besitzt einen Sourceforge-Zugang. Unter diesem Zugang wird anschließend eine SSH-Verbindung zum genannten Shell-Server hergestellt und auf dem Sourceforge-Rechner wird im Verzeichnis /tmp/persistent ein Unterverzeichnis namens bioweka erstellt. Das Verzeichnis /tmp/persistent ist der einzige Ort, an dem ein schreibender Webzugriff erlaubt ist, sodass das MediaWiki für die einmalige Einrichtung temporär in dieses Verzeichnis installiert werden muss.

Hierfür ist die TAR-Datei in das bioweka-Verzeichnis zu extrahieren, wobei das Verzeichnis mediawiki-1.5.0 angelegt wird, welches alle notwendigen PHPSkripte enthält. Im Ordner config befindet sich ein Skript für die Konfiguration des MediaWiki. Dieser Ordner ist für den Schreibzugriff freizugeben: chmod a+w config. Schließlich muss die MediaWiki- Installation noch öffentlich gemacht werden, indem im Webspace-Verzeichnis unter /home/groups/b/bi/bioweka/htdocs ein symbolischer Link mit dem Namen wiki auf das Verzeichnis mediawiki-1.5.0 eingerichtet wird.

Falls das MediaWiki auf einem Server installiert werden soll, der keinen derartigen Beschränkungen unterliegt, kann die Software selbstverständlich direkt in das öffentliche Verzeichnis installiert werden. Anschließend muss nur noch der Ordner config für den Schreibzugriff freigegeben werden.

Konfiguration

Das Wiki ist nunmehr unter der Adresse bioweka.sourceforge.net/wiki/ erreichbar. Beim erstmaligen Aufruf leitet die Eingangsseite index.php den Besucher auf config/index.php weiter. Auf dieser Seite werden die Grundeinstellungen für die MediaWiki-Installation getätigt. So muss der Name des Wikis, also zum Beispiel Bio-Weka, festgelegt und die E-Mailadresse eines Webadministrators hinterlegt werden. Außerdem ist für den vordefinierten Wiki-Nutzer WikiSysop ein Passwort zu bestimmen. Dieser Wiki-Sysop ist nach der Installation der einzige registrierte Wiki-Nutzer und erhält die vollen Zugriffsrechte auf das MediaWiki.

Im Fall des BioWeka-Projektes sollen auch die Webinhalte unter einer Open-Source-Lizenz zur Verfügung gestellt werden. Das MediaWiki stellt zwei vordefinierte Lizenzen zur Auswahl bereit: die GNU Free Documentation License 1.2 und eine anpassbare Creative-Commons-Lizenz. In der Rubrik Shared memory caching wird zudem die Option Turck MMCache aktiviert, da dies die Performance der Website erhöht und von Sourceforge auch unterstützt wird. Die E-Mail-Einstellungen werden hingegen auf ihren Standardwerten belassen. Sie regeln zum Beispiel, ob E-Mail-Benachrichtigungen möglich sind. Als Letztes müssen noch die Datenbankeinstellungen vorgenommen werden. Hierfür ist jedoch zuerst eine Datenbank für das Sourceforge-Projekt anzulegen. Auf der Projektseite, unter sourceforge.net/projects/bioweka, ist in den Admin-Bereich zu wechseln und dort die Seite Shell/DB/Web aufzurufen. Von dort gelangt man schließlich über den Link Manage Project Databases zu den Datenbankeinstellungen.

Als Erstes sind auf dieser Seite die Passwörter für die verschiedenen Datenbanknutzer, Readonly-User, Read/Write-User und Admin-User, zu vergeben. Anschließend muss eine Datenbank für das MediaWiki angelegt werden. Dies erfolgt am einfachsten über die phpMy-Admin-Schnittstelle unter phpmyadminp.sourceforge.net. Wichtig ist hierbei, dass der Name der Datenbank mit dem Präfix p146810_ beginnt, wobei die eingeschlossene Zahl durch die Group-ID des jeweiligen Sourceforge-Projektes zu ersetzen ist. Auf der MediaWiki-Konfigurationsseite müssen folgende Einstellungen von Sourceforge übernommen werden:

• Unter MySQL server ist der Hostname einzugeben, etwa mysql4-p.
• Für Database name ist der Name der eben erstellten Datenbank einzutragen.
• DB username ist mit dem Namen des Admin-Nutzers zu besetzen, also p14 6810admin.
• In dem Feld DB password muss das dazu passende Passwort eingetragen werden.

Die Felder Database table prefix und DB root password können leer bleiben. Ein Präfix für die Tabellennamen sollte dann vergeben werden, wenn die betreffende Datenbank auch von anderen Applikationen verwendet wird, die ihrerseits Tabellen in der Datenbank erstellen. Ein Root-Passwort ist nur dann notwendig, wenn das MediaWiki selbst die Datenbank anlegen soll.

Zu guter Letzt muss noch der Button INSTALL! betätigt werden und die Datenbank wird mit den erforderlichen Tabellen initialisiert. Es erscheint eine neue Seite, die eventuell Warnungen anzeigt. Sofern jedoch keine Fehler gemeldet werden, war die Installation erfolgreich und im Verzeichnis config befindet sich eine Datei namens LocalSettings.php. Diese Datei ist in das übergeordnete Verzeichnis zu kopieren. Abschließend ist das Verzeichnis config zu löschen oder zumindest für die Allgemeinheit mit einem Schreibschutz zu versehen.

 
session_save_path(“/tmp/persistent/bioweka/ session“); 
... 
$IP = “/home/groups/b/bi/bioweka/htdocs“; 
... 
$wgScriptPath = ““; 
... 
$wgLogo = ““; 
... 
$wgEnableUploads = true; 
... 
$wgGroupPermissions[‘*‘ ][‘edit‘] = false; 
... 
include(“extensions/GeshiHighlight.php“); 
include(“extensions/rss.php“); 

Aufmacherbild: Wood blocks with word WIKI on a white background. Part of a series. von Shutterstock / Urheberrecht: Nuno Andre

Ortswechsel

Um das MediaWiki im Wurzelverzeichnis des Webspaces zu installieren, muss als Erstes der komplette Inhalt des Media-Wiki-Installationsverzeichnisses in das htdocs-Verzeichnis kopiert werden. Der symbolische Link kann nunmehr entfernt werden. Falls es den Benutzern gestattet sein soll, eigene Bilder in das Wiki zu stellen, so muss das Unterverzeichnis images nach /tmp/persistent/bioweka/ kopiert werden, da – wie bereits erwähnt – keine Schreibvorgänge im htdocs-Verzeichnis erlaubt sind. An der Stelle des images-Verzeichnisses wird ein symbolischer Link gleichen Namens auf den neuen Aufenthaltsort des images-Verzeichnisses angelegt. Schließlich muss im Verzeichnis /tmp/persistent/bioweka/ ein Ordner session angelegt werden und beide Verzeichnisse, images und session, müssen als beschreibbar markiert werden.

Der Ortswechsel des MediaWikis muss nun noch der Datei LocalSettings.php bekannt gegeben werden. Hierfür ist die in Zeile 1 in Listing 1 gezeigte Anweisung an den Anfang der PHP-Datei zu kopieren, wodurch das MediaWiki angewiesen wird, die Dateien zur Sessionverwaltung in dem session-Verzeichnis abzulegen. Zudem muss die Variable IP auf das Webspace-Verzeichnis verweisen und die Variable wgScriptPath ist statt mit „wiki“ mit einer leeren Zeichenfolge zu initialisieren. Selbiges gilt für die Variable wgLogo, sofern auf die Anzeige eines Logos verzichtet werden soll.

Abb. 1: Die Bio- Weka-Website basierend auf dem MediaWiki

Das Hochladen von Bildern wird über die Variable wgEnableUploads kontrolliert. Schließlich kann über das Array wgGroupPermissions festgelegt werden, welche Benutzergruppen, unter anderem Anonymous, User und Sysop, welche Aktionen ausführen dürfen. Um beispielsweise nicht registrierte Benutzer daran zu hindern, Seiten zu editieren, wird für die Benutzergruppe „*“ der Wert des Feldes edit auf false gesetzt.

Die beiden letzten Zeilen demonstrieren, wie das MediaWiki erweitert werden kann, indem zusätzliche PHP-Skripte eingebunden werden. Diese müssen in das Verzeichnis extensions installiert werden und mittels include in die lokalen Einstellungen eingebunden werden. Die Anwendung der RSS-Erweiterung (siehe [6]) zeigt Listing 2.

{{Header}}
{|cellpadding=“5“ cellspacing=“3“
| width=“60%“ valign=“top“ |
=== Project description ===
...
-----
=== Features ===
[http://prdownloads.sourceforge.net/bioweka/
bioweka 0.4.zip?download BioWeka 0.4]
offers the following functionality:
===== Data converters for =====
* [[FastaSequenceLoader|FASTA]], ...
...
| width=“40%“ valign=“top“ |
=== News: ===
<rss>http: //sourceforge.net/export/rss2_projnews.
php?group_id=133318&rss_fulltext=1|max=5</rss>
|}

Überblick

Listing 2 demonstriert die grundlegenden Formatierungsmöglichkeiten des Media- Wiki anhand der Hauptseite des BioWeka-Wiki. Wie sich diese Seite im Browser darstellt, ist in Abbildung 1 gezeigt. Das MediaWiki unterteilt eine Seite in mehrere Bereiche. Am linken Rand befinden sich (von oben nach unten) das Logo, auf welches in diesem Fall verzichtet wurde, die Navigationsleiste mit frei wählbaren Verknüpfungen, ein Suchformular und eine so genannte Toolbox, die zum Beispiel eine druckerfreundliche Darstellung der aktuellen Seite erlaubt.

Am oberen Rand ist entweder der Name oder die IP-Adresse des aktuellen Benutzers zu sehen, je nachdem, ob der Benutzer sich im Wiki angemeldet hat oder nicht. Hier findet sich auch der Link für die Anmeldung und für die Benutzereinstellungen. Darunter findet sich eine Reihe von Tabreitern, welche zu den verschiedenen Ansichten der aktuellen Seite führen. Die Standardansicht ist article und zeigt die HTML-Ansicht der aktuellen Seite an. Die Ansicht discussion kann für Diskussionen verwendet werden, falls es beispielsweise Unstimmigkeiten über den Inhalt der Seite gibt. Unter edit kann der Wiki-Quelltext geändert werden. Falls die Seite durch einen Sysop für die Editierung gesperrt wurde, wird stattdessen der Tabreiter view source angezeigt. Unter history können schließlich die letzten Änderungen an der Seite eingesehen werden und verschiedene Versionen der Seite miteinander verglichen und sogar wiederhergestellt werden.

Schließlich folgt der Name der aktuellen Seite. Im gezeigten Fall lautet dieser Main page. Dies ist die einzige Seite, die bereits bei der Installation angelegt wird. Um eine neue Seite anzulegen, muss als Erstes eine Verknüpfung auf die noch nicht bestehende Seite in einer bereits existierenden Seite erstellt werden. Wikiinterne Verknüpfungen werden im Quelltext durch folgende Syntax erzeugt: [[Name der Seite]]. Bei diesem Beispiel wird in der HTMLAnsicht ein Hyperlink mit dem Text Name der Seite auf die URL http://bioweka.sourceforge.net/index.php/Name_der_Seite angezeigt. Öffnet ein Benutzer eine leere Seite im Browser, wird anstelle der HTML- die Editier-Ansicht angezeigt und der Benutzer kann deren Inhalt festlegen.

Formatierungen

Links auf externe Seiten, die in der HTML- Ansicht durch ein nachgestelltes Kästchen mit einem Pfeil dargestellt werden, lassen sich durch folgende Syntax einfügen: [http://www.derentwickler.de/Der_Entwickler]. Hierbei wird der Text „Der Entwickler“ zur Darstellung des Hyperlinks verwendet. Selbiges ist auch für interne Links möglich, indem der anzuzeigende Text durch das Pipe-Zeichen vom eigentlichen Seitennamen getrennt wird: Klicken Sie [[Name der Seite|hier]]. Überschriften werden durch das Gleichheitszeichen eingeleitet. Die Anzahl der Gleichheitszeichen bestimmt die Größe und damit die Ebene der Überschrift. Selbiges gilt für Aufzählungen, die durch das Zeichen „*“ markiert werden, sowie für Nummerierungen, für die das Zeichen „#“ vorgesehen ist:

= Überschrift Ebene 1 =
* Eintrag 1 der Aufzählungsebene 1
** Eintrag 1 der Aufzählungsebene 2
**# Eintrag 1 der Nummerierungsebene 3
**# Eintrag 2 der Nummerierungsebene 3
...

Um ein Wort oder einen Textabschnitt kursiv erscheinen zu lassen, wird dieser von zwei Apostrophen umschlossen. Drei aufeinander folgende Apostrophe erzeugen eine fette Schrift und fünf Apostrophe formatieren einen Text als kursiv und fett:

‘‘kursiv‘‘, ‘‘‘fett‘‘‘, ‘‘‘‘‘kursiv und fett‘‘‘‘‘

Horizontale Trennlinien lassen sich durch die Zeichenfolge „—–“ einfügen. Absätze werden durch eine Leerzeile voneinander getrennt. Die Syntax für Tabellen ist etwas komplizierter. Tabellen werden mit „{|“ eingeleitet und mit „|}“ abgeschlossen. Eine neue Zeile wird mit „|-“ begonnen. Die Spalten werden durch „|“ getrennt. Zudem können zwischen zwei Pipe-Zeichen Formatierungsanweisungen für die jeweilige Tabelle, die aktuelle Zeile oder Spalte angegeben werden. Für eine ausführliche Erklärung der MediaWiki-Syntax sei auf das Buch „Wiki-Tools“ verwiesen, welches im gleichnamigen Kasten vorgestellt wird.

Erweiterungen

Zusätzlich zur vereinfachten Wiki-Syntax erkennt das MediaWiki auch bestimmte HTML-Tags im Quelltext. Zudem lassen sich neue Tags über die genannten Erweiterungen definieren. Um beispielsweise die Sourceforge-News für das BioWeka-Projekt in die Hauptseite einzubetten, wird in das Erweiterungselement rss die URL des zugehörigen RSS-Feed eingefügt. Über den Parameter max=5, der über das Pipe-Zeichen von der URL getrennt ist, wird die Anzahl der anzuzeigenden Beiträge auf fünf beschränkt.

Falls dieselben Inhalte auf mehreren Seiten vorkommen, beispielsweise ein bestimmter Seitenkopf, empfiehlt sich der Einsatz von Vorlagen. Vorlagen werden mittels {{Header}} referenziert, wobei Header der Name der Vorlage ist. Falls die Vorlage noch nicht gefüllt wurde, wird in der HTML-Ansicht statt des Inhalts ein Link auf die Vorlage angezeigt. Über diesen Link kann dann die Vorlage erstmalig editiert werden. Unveränderbar sind hingegen die vordefinierten MediaWiki-Variablen, wie beispielsweise {{NUMBEROFARTICLES}}, um die Anzahl der im Wiki vorhandenen Seiten einzufügen. Vorlagen sind hingegen herkömmliche Wiki-Seiten, die jedoch einen speziellen Namen besitzen, zum Beispiel Template:Header. Template ist hierbei der Name des Namensraumes für Vorlagen. Reguläre Wiki-Seiten gehören dem Standardnamensraum an. Sie besitzen folglich kein Präfix in ihrem Namen.

Hingegen sind die Seiten, die für die allgemeine Darstellung des MediaWiki verwendet werden, in dem Namensraum MediaWiki untergebracht. So kann beispielsweise die erwähnte Navigationsleiste über die Seite MediaWiki:Sidebar angepasst werden. Der Inhalt dieser Seite gestaltet sich folgendermaßen:

* navigation
** mainpage|mainpage
** projectsite-url|projectsite
...

Der Eintrag projectsite-url verweist dabei auf eine weitere Seite namens Media-Wiki:projectsite-url, welche als Inhalt ausschließlich die URL der Projektseite enthält, demnach http://sourceforge.net/projects/bioweka. Unter projectsite verbirgt sich ebenfalls eine MediaWiki-Seite, die allerdings die Beschriftung für den Link enthält, also Project site.

Schließlich gibt es noch den Namensraum Special. Hierunter verbergen sich einige vordefinierte Seiten. So liefert die Seite Special:Specialpages eine Aufzählung dieser besonderen Seiten. Mit Special:Allpages lassen sich hingegen alle regulären Seiten auflisten. Das grundlegende Layout einer Media-Wiki-Website lässt sich allerdings weder über die Special– noch über die MediaWiki-Seiten beeinflussen. Hierfür muss entweder die Variable wgDefaultSkin in der Datei LocalSettings.php auf ein bestimmtes Skin gesetzt werden oder der Standardskin monobook durch ein gleichnamiges PHPSkript, MonoBook.php, ersetzt werden. Eine kleine Auswahl vorgefertigter Skins bietet die Seite unter [7].

Bei kleinen Änderungen, wie der Einbindung des Sourceforge-Logos, empfiehlt sich die direkte Editierung der Datei Mono-Book.php im Unterverzeichnis skins:

<a href=“http: //sourceforge.net“><img src=“http: //
sourceforge.net/sflogo.php?group_id=133318&
type=1“ .../></a>
<?php $this->html(‘poweredbyico’) ?>

Hierdurch wird das Sourceforge-Logo direkt neben das MediaWiki-Logo am Seitenende platziert.

Fazit

Sämtliche Features des MediaWiki aufzuzählen, würde den Rahmen dieses Artikels bei weitem übersteigen. Eine gute Einführung bietet jedoch das genannte Buch sowie die MediaWiki-Website unter [2] und die zahlreichen Websites, die auf dem MediaWiki basieren und deren Quelltext frei einsehbar ist (siehe [7]). Zudem bieten viele Wikis eine so genannte „Sandbox“ an, zum Beispiel unter www.mediawiki.org/wiki/Sandbox, auf der nach Belieben experimentiert werden darf.

Buchtipp „Wiki-Tools”
Ein Buch über Wikis – das widerspricht dem ersten Anschein nach der Philosophie der Wikis, das Erstellen und Pflegen von Webseiten möglichst einfach zu halten. Doch das Buch behandelt eben nicht nur das Bearbeiten von Wiki-Quelltexten, sondern auch die Installation und Konfiguration eines MediaWiki, was gerade für Anwender, die keine PHP- und Linux-Experten sind, eine große Einstiegshürde darstellt. Zudem ist das Funktionsangebot der MediaWiki-Software enorm und wächst ständig. Schließlich werden auch die Geschichte und die Philosophie der Wikis erläutert und Ratschläge für die Organisation von Wikis erteilt. Und wem das MediaWiki immer noch nicht genug ist, der findet in dem Buch eine ausführliche Einführung in das Konkurrenzprodukt TWiki, das eine noch größere Funktionsvielfalt bietet.
Anja Ebersbach/Markus Glaser/Richard Heigl: Wiki-Tools. Springer Verlag, 2005 (49,95 Euro mit CD-ROM, ISBN: 3-540-22939-6)

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -