MediaWiki #
Mediawiki
ist eine sehr erfolgreiche Wiki-Software, die unter anderem von Wikipedia
benutzt wird. Ihre starke Verbreitung resultiert hauptsächlich daraus, das viele Menschen heutzutage über Wikipedia Ihren ersten Kontakt zu einem Wiki haben. Insbesondere haben es andere Wiki-Engines natürlich schwer, wenn sie dann noch eine andere Syntax als den "Wikipedia-Standard" benutzen (wie z.B. das JPSWiki hier in der LUG Krefeld, das wir jedoch mit einem eigenen Plugin etwas gezähmt haben).
Installation auf einem Debian-System #
Ich habe einen dedizierten Server im Internet, auf dem ich neben anderen Dingen, die dort bereits liefen, ein Mediawiki für mein FreiBier-Projekt aufsetzen wollte.
Meine Umgebung: Ich bevorzuge Debian-Pakete, weil diese sich normalerweise besser aktualisieren lassen als eine händische Installation. Da auf dem Server bereits andere Applikationen laufen, die eine PostgreSQL Datenbank voraussetzen, wollte ich die Option wählen, Mediawiki auf Postgres zugreifen zu lassen. Außerdem wollte ich mir die Option offenhalten, eventuell später weitere Wikis unter anderem Namen laufen zu lassen.
Auf dem Server habe ich folgendes installiert:
aptitude install postgresql-contrib aptitude install mediawiki php5-pgsql aptitude install mediawiki-extensions
Durch die Angabe der beiden postgres-Pakete habe ich dafür gesorgt, das Mediawiki automatisch den Postgres-Server benutz hat. Das ging eigentlich danach komplett von alleine. :-) Das Extensions-Paket ist nicht dringend nötig, ich wollte es allerdings so haben - wer will, kann sich auch die einzelnen Erweiterungen Paket für PAket installieren, die für Debian vorliegen.
Da ich vorher den Apache Webserver bereits installiert hatte, wurde bei mir apache-mpm-worker deinstalliert (und durch apache-mpm-prefork ersetzt). Hierbei handelt es sich um eine andere Variante des Apache Binaries, die ihre Threads anders organisiert. Das liegt am phpmod-Modul, das nicht threadsafe ist und sollte im praktischen Betrieb keinen grossen Unterschied machen, wenn man nicht wirklich grosse Mengen an Web-Anfragen bedienen möchte.
Um zu sehen, wie ich am besten vorgehe, habe ich mir http://www.mediawiki.org/wiki/Manual:Running_MediaWiki_on_Debian_GNU/Linux
durchgelesen.
Danach war dann noch http://www.mediawiki.org/wiki/Manual:Short_URL
wichtig. Ich habe das Problem der "Short URLs" von Anfang an richtig lösen wollen, um nicht später wieder alles umbauen zu müssen. "Short URL" bedeutet, das man auf eine Wikiseite "Blablabla" mit der URL http://www.meinserver.net/wiki/Blablabla
zugreifen kann. Da intern ein PHP-Skript mit Parametern aufgerufen wird, das unter einem ganz anderen Pfad liegt, muss das extra eingerichtet werden. Dieses URL-Schema hat aber den Vorteil, das die URLs für einen außenstehenden Anwender gut und logisch aussehen. Sollte man später aus irgendeinem Grunde die Domain oder die Wiki-Software wechseln, so können die einfachen URLs leicht auf das neue System gemappt werden.
In /etc/mediawiki/apache.conf habe ich nun eingefügt:
Alias /wiki /var/lib/mediawiki/index.php
Hierdurch wird die vorne angegebene URL auf den hinten angegebenen Dateipfad gemappt.
Hat man das gemacht, kann auch schon auf die URL http://www.meinserver.org/wiki
zugegriffen werden. Die eigentliche Konfiguration geschieht dort per Weboberfläche und erzeugt eine Datei namens LocalSettings.php. Diese kopiere ich wie in der Anleitung
beschrieben nach /etc/mediawiki/
Damit funktioniert das Wiki erstmal, hat aber keine hübschen Short URLs. Um das umzusetzen, bin ich nach http://www.mediawiki.org/wiki/Manual:Short_URL
vorgegangen:
Im www-Verzeichnis dieses Hosts wird ein Symlink "w" eingerichtet:
cd /var/www ln -s /var/lib/mediawiki/ w
Dann habe ich folgende Einstellungen in LocalSettings.php gemacht.
$wgScriptPath = "/w"; $wgScriptExtension = ".php";
- -TB- $wgArticlePath = "/wiki/$1"; $wgUsePathInfo = true;
Wiki mit eigenem Benutzer und virtuellem Host #
Da ich später vielleicht verschiedene Wikis haben möchte (und da die vorhandenen Dateien einen eigenen Benutzer haben sollten), habe ich einen neuen Benutzer "freibier" angelegt. In dessen Home-Verzeichnis habe ich nun ein Unterverzeichnis "public_html" angelegt und dort sowohl eine Datei index.php als auch einen Symlink w (nach /usr/share/mediawiki) angelegt.
index.php enthält einen HTTP-Redirect wie in http://www.mywebsolution.de/tipps/13/show_PHP-redirect.html
erklärt (In SelfHTML
steht, warum ein HTTP-Redirect besser ist als ein HTML-Redirect und das das nur als CGI möglich ist - also in diesem Falle als PHP-Skript).
Ein virtueller Server wird im Apache durch eine Datei /etc/apache2/sites-available/www_frei-bier_org konfiguriert, die bei mir so aussieht:
<VirtualHost *:80>
ServerName www.frei-bier.org
ServerAdmin webmaster@localhost
DocumentRoot /home/freibier/public_html/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/freibier/public_html/>
Options Indexes FollowSymLinks MultiViews ExecCGI
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Dieser virtuelle Server wird dann mittels
a2ensite www_frei-bier_org
und einem folgenden Apache-reload (wie angegeben) aktiviert.
Mehrere Wikis auf einem Server #
Das habe ich bis jetzt noch nicht gemacht, aber im Grunde geht es darum, dem Wiki beim Starten eine jeweils andere LocalSettings.php unterzuschieben. Dort stehen dann entsprechend Einstellungen für ein anderes Upload-Verzeichnis und andere Datenbank-Zugangsdaten. Hierzu liest man am besten:
- http://www.mediawiki.org/wiki/Manual:Wiki_family
- http://www.steverumberg.com/wiki/index.php/WikiHelp
Welche Daten machen das Wiki aus? #
Um meine Datensicherung zu planen stellt sich nun die Frage: Was macht diese Wiki-Installation denn nun aus? Hier ist zu nennen:
- Die Apache-Konfiguration, ohne die das Wiki nicht zu erreichen ist (das könnte man von Hand wiederherstellen)
- Die Datei LocalSettings.php, die alle Grundeinstellungen des Wiki enthält (auch das könnte man von Hand wieder herstellen)
- Das Images-Verzeichnis (in der Standard-Installation /var/lib/mediawiki/images), das alle Uploads (also insbesondere Bilder) enthält.
- Die Datenbank (das ist der wichtigste Teil)
Alternative #
Wer (wie ich, PeterHormanns) so komplexe PHP-Anwendungen nicht mag, aber seinen Nutzern ein MediaWiki-kompatibles Wiki anbieten möchte, sollte sich JAMWiki
ansehen.
JAMWiki
ist ein in Java programmierter Clone des MediaWiki unter LGPL.
Lines of Code
| MediaWiki | 850.000 Zeilen | PHP |
|---|---|---|
| JAMWiki | 35.000 Zeilen | Java |
| JSPWiki | 85.000 Zeilen | Java |
(abgerufen am 10.5.2012)