Kapitel 16
IN DIESEM KAPITEL
Sie kennen vermutlich das Online-Lexikon Wikipedia. Und vermutlich wissen Sie auch, dass jedermann dort Artikel schreiben oder korrigieren kann. Dies funktioniert auf der Basis eines Wikis. Sie müssen nicht gleich eine Enzyklopädie schreiben wollen. Aber immer dann, wenn mehrere Menschen schnell an einer Dokumentation auf der Basis eines Webservers arbeiten wollen, bietet sich ein Wiki an. Als redaktionellen Client benötigen Sie nur einen Browser. Und den finden Sie sogar auf jedem Smartphone.
Für Linux gibt es mehrere Wiki-Programme. So können Sie MediaWiki installieren, auf dessen Basis Wikipedia läuft. Die Inhalte werden in einer Datenbank abgelegt und Wikipedia beweist täglich, dass das System gut funktioniert.
Zur Vorbereitung zur Installation sollte die Paketliste aktualisiert werden. Zur Einrichtung des Wiki wird das Paket mediawiki aus dem Repository installiert.
# apt update
# apt install mediawiki
MediaWiki ist eine eine klassische LAMP-Anwendung (Linux Apache MySQL PHP), die vollständig aus dem Repository verfügbar ist. Bei der Installation wird darum, sofern nicht bereits installiert, auch ein Apache Webserver, das PHP-Modul sowie die Datenbank MySQL automatisch mitinstalliert.
MediaWiki stellt ein eigenes Wiki für die Installation und Konfiguration unter der URL https://www.mediawiki.org/wiki/MediaWiki
zur Verfügung.
MediaWiki legt seine Daten in einer Datenbank ab. Dazu sollte vor dem ersten Start des Wiki eine Datenbank angelegt sein. Sie werden den Namen der Datenbank, den Benutzer und das Passwort für die weitere Einrichtung benötigen.
Standardmäßig wurde MySQL bei der Einrichtung von MediaWiki mitinstalliert. Vom SQL-Interpreter von MySQL können Sie die leere Datenbank und den Benutzer anlegen. Den Interpreter aufzurufen ist etwas kompliziert, da sich der Benutzer mysql
nicht direkt einloggen darf.
Der Administrator kann sich allerdings mit dem Befehl su
in jeden Benutzer verwandeln, ohne ein Passwort zu besitzen. Als Benutzer mysql
dürfen Sie den Interpreter ohne weiteres Passwort starten.
$ sudo -s
# su mysql
# mysql
>
Damit sind Sie als Datenbankadministrator in MySQL angemeldet.
Nun legen Sie einen Datenbankbenutzer an, der hier im Beispiel einfach wiki heißt. Ihr Passwort sollte vielleicht raffinierter als mein geheim sein.
mysql> CREATE USER wiki@localhost IDENTIFIED BY 'geheim';
Query OK, 0 rows affected (0,09 sec)
Nun muss noch eine Datenbank angelegt werden, die ich auch einfach wikidb nenne und übergebe deren Verfügungsgewalt an den Benutzer wiki.
mysql> CREATE DATABASE wikidb;
Query OK, 1 row affected (0,03 sec)
mysql> GRANT ALL PRIVILEGES ON wikidb.* TO 'wiki'@'localhost';
Nun können Sie sich aus MySQL bmelden und wieder als wiki anmelden und testen, ob Sie die Datenbank im Zugriff haben.
mysql> quit
Bye
# mysql -u wiki -p
mysql> USE wikidb;
Database changed
mysql> quit
Sie können MediaWiki auch mit anderen Datenbanken als MySQL verwenden. Dazu müssen Sie diese vor der Installation des Pakets mediawiki installiert und vorbereitet haben.
An dieser Stelle verwende ich PostgreSQL als Beispiel. Naheliegenderweise werden wir das Paket postgresql installieren müssen. Darüber hinaus muss die PHP-Schnittstelle für PostgreSQL installiert werden, da MediaWiki ja in PHP programmiert ist. Das benötigte Paket heißt php-pgsql.
# apt update
# apt install postgresql php-pgsql
# apt install mediawiki
Nun muss ein Benutzer und eine Datenbank für das Wiki angelegt werden. Dazu müssen folgende Befehle ausgeführt werden.
# su - postgres
postgres $ psql
postgres=# create user wiki password 'geheim' login;
CREATE ROLE
postgres=# create database wikidb;
CREATE DATABASE
postgres=# grant all on database wikidb to wiki;
GRANT
postgres=# exit
Beim Setup für das MediaWiki wird nach dieser Vorbereitung eine Option für die Installation auf PostgreSQL-Basis auftauchen.
Damit die Konfiguration von PostgreSQL von MediaWiki zur Kenntnis genommen wird, muss das Paket mediawiki noch einmal rekonfiguriert werden.
# dpkg-reconfigure mediawiki
Damit sollte dann auch die PostgreSQL-Datenbank bei den möglichen Datenbanken aufgezählt werden.
Die Anfangskonfiguration läuft über den Browser. Dazu müssen Sie als URL den Server ansprechen, auf dem der Wiki installiert ist. Im Normalfall wird dies der Computer, der vor Ihrer Nase steht. Der kann als localhost angesprochen werden. Falls Ihr Wiki auf einem anderen Computer ist, müssen Sie dessen Name oder IP-Adresse angeben. Im weiteren Verlauf gehe ich von einem Computer namens server
aus. In Anschluss an den Hostnamen wird als Pfad mediawiki
angegeben.
Es erscheint ein Willkommensbildschirm mit der Aufforderung, den Setup auszuführen (siehe Abbildung 16.1). Inzwischen gibt es eine neue Version mit einer grafisch stilisierten Blume. Da aber die alte Blume hübscher war, tausche ich das Bild mal nicht aus. In welcher Version auch immer, merkt MediaWiki noch an, dass die Datei LocalSettings.php nicht installiert ist. Darauf werden wir noch zurückkommen.
Abbildung 16.1: Erster Besuch des Wikis
Wenn Sie den Link zum Setup anklicken, erscheint zunächst die Abfrage der Sprache. Es wird unterschieden zwischen der Sprache während der Installation und der Sprache des Wikis. Bei Bedarf könnten Sie diese ändern. Ansonsten führt ein Klick auf den Button WEITER tatsächlich weiter.
Auf dem nächsten Bildschirm erfolgt eine Prüfung, ob alle Komponenten des Wiki an Bord sind. Da Sie alles aus dem Repository gezogen haben, sollte es an dieser Stelle keine Überraschungen geben. Weiter unten finden Sie den Hinweis auf die GPL (GNU General Public Licence). Auch hier bietet der Button WEITER ein Weiterkommen an.
Bezüglich der Datenbank erzählt MediaWiki, dass er mit fast allem läuft, was sich so an Datenbanken tummelt, von MySQL, PostgreSQL, Oracle und SQLite. Sogar der Microsoft SQL Server würde unterstützt. MediaWiki hat sich schon umgeschaut, welches System zur Verfügung steht und bietet dieses an. Da bei der Installation automatisch MySQL installiert wird, können Sie dieses auswählen.
Nach der Wahl der Datenbanksystems müssen Sie die Informationen über die für den Wiki eingerichtete Datenbank eintragen.
Als Host für den Datenbankserver wird localhost vorgeschlagen. Das ist so richtig, solange sich das Wiki und die Datenbank auf demselben Host befinden.
Den Datenbanknamen ändern Sie auf wikidb, den Benutzernamen auf wiki, sofern Sie Datenbank und Nutzer so gewählt haben. Und natürlich geben Sie das zuvor angelegte Passwort an. Mit WEITER geht es weiter.
Die Folgeseite fragt noch einmal nach, ob Sie dasselbe Datenbankkonto für den Webzugriff wie für die Installation verwenden wollen. Sofern Sie das akzeptieren können, klicken Sie auf WEITER.
Auf folgenden Seite geben Sie den Name des Wikis, der auch in der Titelleiste des Browsers erscheinen soll, an. Diesen Namen können Sie auch als Namen des Projektnamensraums verwenden.
Darunter definieren Sie das Administratorkonto. Dafür benötigen Sie einen Nutzernamen, wie beispielsweise admin. Dafür wird ein Passwort mit mindestens zehn Buchstaben eingefordert, das Sie bestätigen sollen, da Sie die Eingabe nicht sehen können.
Sie können eine E-Mail-Adresse angeben, über die der Wiki Sie erreichen kann. Das sollten Sie aber nur dann tun, wenn der Wiki auch mit einer Mail-Komponente versehen werden soll. Details folgen weiter unten.
Mit dem Klick auf WEITER kommen Sie weiter.
Auf dem nächsten Bildschirm wird die Zugänglichkeit des Wikis für die späteren Anwender definiert. Hier werden vier Stufen vorgeschlagen.
Diese Festlegungen werden später mit der Variablen wgGroupPermissions
in der Datei LocalSettings.php abgelegt. Bei einem offenen Wiki wird keine solche Variable erzeugt. Es gibt keine Einschränkung. Bei dem dritten Punkt werden zwei Variablen angelegt:
$wgGroupPermissions['*']['createaccount'] = false;
$wgGroupPermissions['*']['edit'] = false;
Die noch schärfere Einstellung eines geschlossenen Wikis erzeugt zusätzlich einen Eintrag für das Lesen der Beiträge:
$wgGroupPermissions['*']['read'] = false;
Auf dem nächsten Bildschirm können E-Mail-Konfigurationen ausgeführt werden. Wenn man das Feld AUSGEHENDE E-MAILS ERMÖGLICHEN abwählt, wird kein Mail-System benötigt.
Ansonsten wird eine E-Mail-Adresse benötigt, die Sie unter E-MAIL-ADRESSE FÜR ANTWORTEN: angeben. Ausßerdem werden Sie einen SMTP-Server benötigen, die die Mails des Wikis unter die Leute bringt.
Sie können eine E-Mail-Unterstützung der Benutzer für folgende Fälle aktivieren:
Es gibt auf dieser Seite weitere Optionen, auf die an dieser Stelle nicht eingegangen wird. Sie finden in allen Fällen einen Hilfe-Button für weitere Informationen.
Mit dem Klick auf WEITER kommen Sie weiter.
Jetzt wird es ernst. Wenn Sie nun WEITER klicken, wird installiert. Anschließend erscheint eine Erfolgsmeldung wie in Abbildung 16.2, die wiederum mit einem Klick auf WEITER bestätigt wird.
Abbildung 16.2: Der Wiki ist installiert.
Wenn Sie den Link zum Setup anklicken, wird die Datei LocalSettings.php heruntergeladen und landet browsertypisch meist im Verzeichnis Downloads. Diese Datei muss auf dem Wiki-Server in das Verzeichnis /etc/mediawiki geschafft werden. Falls Sie eine Installation von einem entfernten Computer aus durchführen, helfen Ihnen die folgenden Befehle:
scp Downloads/LocalSettings.php master@server:
ssh master@server
sudo mv LocalSettings.php /etc/mediawiki/
Falls der Browser auf dem Wiki-Server gestartet wurde, reicht ein einfacher mv
-Befehl unter root-Rechten.
# mv Downloads/LocalSettings.php /etc/mediawiki/
Damit ist das initiale Setup durchgeführt. Ihre Antworten stecken in der Datei LocalSettings.php.
Ein Wiki muss nicht unbedingt so betrieben werden, dass er Mails versendet. Wenn er das tut, müssen Sie ihn allerdings mit einem SMTP-Server verbinden. Beim Setup haben Sie vielleicht schon einige E-Mail-Adressen unterbringen können. Die Kenntnis der Adressen allein nützt wenig, wenn der Wiki nicht weiß, wie er seine Mails unters Volk mischen kann.
Natürlich könnten Sie auf dem Wiki-Server auch noch einen SMTP-Server installieren. Das wäre der sportliche Ansatz, wie er in Kapitel 11 verfolgt wird. Es reicht aber aus, dass Sie ein Mail-Konto benennen, über das Sie senden können. Ich habe die folgende Konfiguration mit aw.srv@gmx.de ausgetestet. Es funktioniert aber auch jeder andere Mail-Anbieter.
Sofern es nicht schon beim Setup eingestellt wurde, können die folgenden Einstellungen in der Datei LocalSettings.php im Verzeichnis /etc/mediawiki auch noch nachträglich anpassen.
$wgEnableEmail = true;
$wgEnableUserEmail = true; # UPO
$wgEmergencyContact = “aw.srv@gmx.de”;
$wgPasswordSender = “aw.srv@gmx.de”;
$wgEnotifUserTalk = true; # UPO
$wgEnotifWatchlist = true; # UPO
$wgEmailAuthentication = true;
Nun muss der SMTP-Server benannt werden. Der Anbieter GMX, den ich im Beispiel verwende, setzt zur Zeit einen SMTP-Server mit Authentifizierung und STARTTLS über Port 587 ein. Als Benutzername wird die komplette E-Mail-Adresse verwendet.
Die Informationen über den SMTP-Server wird in der Variablen $wgSMTP
in der Datei LocalSettings.php hinzugefügt, die in der Standardkonfiguration nicht vorliegt.
$wgSMTP = [
'host' => 'mail.gmx.net',
'IDHost' => 'MeinWiki',
'port' => 587,
'auth' => true,
'username' => 'aw.srv@gmx.de',
'password' => 'dasverrateichnicht'
];
Um zu testen, ob die Mail funktioniert, lassen Sie den Admin einen Benutzer eintragen und legen Sie fest, dass Wiki ein zufälliges Passwort erstellt und an den neuen Benutzer versendet. Kommt diese Mail an, funktioniert Ihre Konfiguration offenbar.
Das Wiki rufen Sie mit einem Browser über die URL http://server/mediawiki
auf. Dabei ersetzen Sie »server« durch den Namen oder die IP-Adresse Ihres Servers. Wenn Sie häufiger Wikipedia nutzen, wird Ihnen der Bildschirm bekannt vorkommen.
Leider haben Sie in Ihrem Wiki erst einmal noch nicht so viel Inhalt wie Wikipedia. Um dahin zu gelagen, fangen wir auf der Hauptseite an. Um die Hauptseite an seine eigenen Bedürfnisse anzupasssen, klickt man auf die Lasche BEARBEITEN. Es erscheint ein Editor.
In dem Editor kann der Text erfasst werden. Die Buttons am Fuß der Seite steuern, wie mit den Änderungen verfahren werden soll.
Sie können aber auch in dem Suchfeld neben der Lupe einen Begriff oder eine Phrase eintippen. Wenn es dafür noch keine Seite gibt, bietet Ihnen MediaWiki an, eine solche Seite zu erzeugen. Sie müssen dazu auf den roten Link mit dem Suchbegriff klicken und schon landen Sie in einem Editor.
Sie können Ihren Text frei eintippen. Zeilenlängen spielen keine Rolle. Der Text wird später automatisch ausgerichtet. Eine Leerzeile bildet einen Absatz.
Einige HTML-Tags sind erlaubt. So wird beispielsweise <pre>
erkannt und richtig interpretiert. Auch Sonderzeichen wie € für das Euro-Zeichen werden unterstützt. Allerdings wendet sich ein Wiki auch an Menschen, die HTML nicht lernen wollen. Darum verwendet ein Wiki eine sehr einfache Markup-Sprache. Beispielsweise werden Überschriften durch ein oder mehrere Gleichheitszeichen eingerahmt.
= Hauptüberschrift =
== Unterüberschrift ==
Die Schriftart wird geändert, indem der Text in mehrere Hochkommata eingeschlossen wird. So stehen zwei Hochkommata für kursiv, drei für fett, fünf sind kursiv und fett.
Mit vier Minuszeichen hintereinander kann eine horizontale Linie erzeugt werden.
Eine neue Seite wird erstellt, indem auf einer existierenden Seite ein Link eingetragen wird. Dazu wird die aktuelle Seite durch Anklicken von BEARBEITEN in den Editor geholt. Nun wird der Name der neuen Seite eingetippt und mit zwei rechteckigen Klammern umschlossen.
[[Neue Seite]]
Wird dies gespeichert, erscheint der Text »Neue Seite« als roter Link. Klickt man diesen an, schlägt der Wiki vor, diese Seite zu erstellen. Der Name wird zum Pfad. Sollte er Leerzeichen enthalten, werden diese im Pfad durch Unterstriche ersetzt.
Der Admin findet auf der linken Seite unter der Kategorie WERKZEUGE einen Link SPEZIALSEITEN. Wird dieser angeklickt füllt sich die Seite auf der rechten Seite mit vielen Links. Dort findet sich dann weiter unten auch ein Link BENUTZERKONTO ANLEGEN. Dieser tut exakt das, was man schon vermutet.
Auf dem Bildschirm werden folgende Einträge eingefordert:
Die Eingabe wird durch den Button BENUTZERKONTO ERSTELLEN abgeschlossen.
Da die Daten des Wikis in der zugehörigen Datenbank steckt, muss in erster Linie diese gesichert werden. Je nach verwendeter Datenbank unterscheidet sich der Befehl etwas. Hier zeige ich die Befehle für MySQL. Wenn Sie PostgreSQL bevorzugen, finden Sie in dem entsprechenden Abschnitt im Kapitel 9 die passenden Befehle.
Das Tool mysqldump
wird bei der Installation von MySQL automatisch mitinstalliert.
Wer ganz sichergehen will, dass während der Datensicherung der Wiki gegen Änderungen gesperrt ist, kann in der Datei LocalSettings.php die Variable $wgReadOnly
setzen.
$wgReadOnly = 'Datensicherung. Derzeit kein Schreibzugriff';
Der Befehl zum Sichern eines Wikis namens wikidb kann durch den Datenbankbesitzer user erfolgen. Die Ausgabe erfolgt in eine Datei, die die SQL-Befehle zur Wiederherstellung der Datenbank enthält.
# mysqldump -h localhost -u user -p --no-tablespaces wikidb> backup.sql
Da das Ergebnis eine Textdatei ist, bietet es sich an, die Datei mit dem Programm gzip zu komprimieren.
Eine Datensicherung ist völlig nutzlos, wenn daraus der aktuelle Stand nicht wiederhergestellt werden kann. Darum ist es durchaus sinnvoll, dies einmal auf einer anderen virtuellen Maschine auszutesten, bevor es zum Ernstfall kommt.
Bei der Rücksicherung gehen wir davon aus, dass der Rechner ersetzt werden muss. So etwas lässt sich wunderbar mit einer virtuellen Maschine testen. Erzeugen Sie dazu einen Klon einer Linux-Distribution mit grafischer Oberfläche. Darin installieren Sie das Paket mediawiki. Am einfachten dürfte es sein, die Netzwerkeinstellung auf Netzwerkbrücke zu stellen. Dann verhält die die virtuelle Maschine wie ein normaler Computer im Netzwerk.
Sie legen nun eine Datenbank für das Wiki mit Benutzer und Passwort an. Das läuft genauso, wie Sie es oben bei der Installation schon gesehen haben. Hier noch einmal kurz die Befehle.
# sudo -s
# su mysql
# mysql
mysql> CREATE USER user@localhost IDENTIFIED BY 'geheim';
Query OK, 0 rows affected (0,09 sec)
mysql> CREATE DATABASE wikidb;
mysql> GRANT ALL PRIVILEGES ON wikidb.* TO 'user'@'localhost';
mysql> quit
Die Datenbank wikidb kann nun über den gesicherten SQL-Skript wieder befüllt werden. Das kann von der Konsole aus erledigt werden.
# mysql -u user -p wikidb < backup.sql
Damit befindet sich der Datenbestand in der Datenbank. Wenn Sie nun über den Browser den Wiki aufrufen, besteht er darauf, erst fertig installiert zu werden. Damit wird die Umgebung des Wikis eingerichtet und folgende Parameter gesetzt:
Anschließend sieht der Wiki auf der virtuellen Maschine aus wie auf dem Original und Sie können den Klon wieder löschen.