Konfiguration des MediaWikis

Das MediaWiki ist eine sehr leistungsfähige Wiki-Software, die insbesondere von der Wikipedia eingesetzt wird und sehr leistungsfähig ist. Ich finde, es ist eines der wenigen Wikis, wo der Text wirklich lesbar ist und man sich darauf freut, etwas zu lesen.

Aussehen ändern

Leider hat der standardmäßige Monobook-Skin (sieht wirklich gut aus, finde ich :-) ein paar Macken, die ich ausgebessert habe:

kleinschreibung

Standardmäßig werden oben in der Benutzerleiste ('Anmelden', 'Einstellungen', ...) und der Optionsleiste ('Artikel', 'Diskussion', ...) alle Einträge klein geschrieben. Grund dafür sind zwei css-Anweisungen in der main.css (Verzeichnis skins/monobook). Ein Patch behebt das Problem (einzuspielen im Verzeichnis, wo die main.css liegt, also z.B. /skins/monobook) mit <code>patch -p0 &lt; kleinschreibung-1.5.patch</code>.

Das Navigationsmenü links oben enthält viele Einträge, die zwar für die Wikipedia interessant sind, doch ansonsten eigentlich nur stören.

MediaWiki ab 1.5

Das Menü kann direkt mit Wiki-eigenen Mitteln geändert werden: Als Wiki-Operator kann man die Seite /MediaWiki:Sidebar nach den eigenen Wünschen anpassen. Mehr Informationen zu diesem Thema gibt es im Wikimedia Meta-Wiki.

MediaWiki < 1.5

In den älteren MediaWiki-Versionen kann die Navigationsleiste nur über die LocalSettings.php geändert werden. Im Beispiel unten gibt es dann nur noch die Einträge 'Hauptseite' und 'Letzte Änderungen':

$wgNavigationLinks = array (
        array( 'text'=>'mainpage',      'href'=>'mainpage' ),
        array( 'text'=>'recentchanges', 'href'=>'recentchanges-url' ),
);

Update von 1.4 zu 1.5

Vorbereitung

Zunächst müssen Backups gemacht werden. Neben der eigentlichen Datenbank sollten auch die Dateien des Mediawikis gesichert werden, da dort z.B. auch die ins Wiki importierten Bilder liegen!

Von Version 1.4 zu 1.5 haben sich die Datenbankstrukturen geändert, daher ist diesmal etwas mehr Arbeit erforderlich. Für deutsche Wikis sollte auch beachtet werden, dass die Kodierung von Text in der Datenbank von Latin-1 (ISO-8859-1) zu UTF-8 ("Unicode") geändert wurde, was zu zusätzlichen Fehlern führen kann.

Nach dem Entpacken der neuen Mediawiki-Dateien sollte dort noch eine AdminSettings.php angelegt werden, die etwa so aussehen muss:

<?php
        $wgDBname = "mediawikidb";
        $wgDBadminuser = "mysqluser";
        $wgDBadminpassword = "password";
?>

Datenbank-Update durchführen

Im Verzeichnis 'maintenance' werden dann die beiden Scripts ausgeführt:

php upgrade1_5.php
php update.php

Jetzt ist die Datenbank im neuen Format und das Mediawiki auf Version 1.5.

Rewrite-Rules für schöne URLs

Ohne besondere Vorkehrungen sehen Mediawiki-URLs etwa so aus: "/index.php?title=Hauptseite". Das ist natürlich unschön, eigentlich will ich eher etwas wie "/Hauptseite" haben. Dazu gibt es einige rewrite-Rules, die genau das machen. Leider müssen diese Regeln in der VirtualHost-Sektion stehen, nur mit .htaccess-Dateien habe ich es nicht hinbekommen.

# rules for well-behaving bots and normal browser:
RewriteCond %{REQUEST_URI} !^/files/
# Don't rewrite requests for files in MediaWiki subdirectories,
# MediaWiki PHP files, HTTP error documents, favicon.ico, or robots.txt
RewriteCond %{REQUEST_URI} !^/(images|skins)/
RewriteCond %{REQUEST_URI} !^/(redirect|texvc|index).php
RewriteCond %{REQUEST_URI} !^/error/(40(1|3|4)|500).html
RewriteCond %{REQUEST_URI} !^/favicon.ico
RewriteCond %{REQUEST_URI} !^/robots.txt
RewriteRule ^/(.*)$ /index.php?title=$1 [L,QSA]

Zur Erklärung: Es gibt bei mir ein zusätzliches Verzeichnis /files, in dem ich statische Dateien aufbewahre. Für dieses Verzeichnis soll sich Mediawiki nicht zuständig fühlen, weswegen auch URLs, die mit /files beginnen, nicht umgeschrieben werden.

Suchmaschinen von bestimmten Seiten fernhalten

In meinem Mediawiki gibt es "Seiten", die eigentlich nicht in einer Suchmaschine auftauchen sollten, z.B. verschiedene Vorlagen wie '/Mediawiki:Uploadtext' oder alte Versionen von Artikeln. Leider werden auch solche Seiten von Google und Co. durchsucht und gespeichert.

Um das zu verhindern, gibt es eigentlich die Datei robots.txt, in der folgendes stehen könnte:

User-agent: *
Disallow: /Spezial:
Disallow: /Mediawiki:
Disallow: /MediaWiki:
Disallow: /index.php

Leider ignorieren Google und Co. die robots.txt oder genauer gesagt: Sie halten sich sehr buchstabengetreu an den entspr. Standard. Das bedeutet, dass sie URLs, die in der robots.txt genannt werden, zwar besuchen, deren Inhalte aber nicht zwischenspeichern. Im Suchresultat taucht dann nur die URL (ohne weiteren Inhalt) auf.

Da die Suchmaschinen aber eigentlich kooperativ sind, geben sie sich zuverlässig im UserAgent-String zu erkennen. Entsprechend setze ich einige zusätzliche Rewrite-Rules ein, um Suchmaschinen außen vor zu halten. Diese Regeln müssen vor den Regeln für schöne URLs platziert werden!

# forbid bots to spider pages with certain urls that are forbidden in
# robots.txt anyway.
RewriteCond %{HTTP_USER_AGENT} .*Yahoo\!\sSlurp.*|.*Googlebot.*|.*msnbot.*
RewriteRule ^/index.php?.*$ /Hauptseite [L,QSA,gone]
RewriteCond %{HTTP_USER_AGENT} .*Yahoo\!\sSlurp.*|.*Googlebot.*|.*msnbot.*
RewriteRule ^/(MediaWiki|Mediawiki|Spezial):.*?.*$ /Hauptseite [L,QSA,gone]
RewriteCond %{HTTP_USER_AGENT} .*Yahoo\!\sSlurp.*|.*Googlebot.*|.*msnbot.*
RewriteCond %{QUERY_STRING} !^$
RewriteRule ^/?$ /Hauptseite [L,QSA,gone]

Alle "Besucher", deren UserAgent "Yahoo! Slurp", "Googlebot" oder "msnbot" enthält, bekommen bei bestimmten Seiten ('index.php?...', '/Spezial...', '/MediaWiki...' oder überhaupt ein nicht-leerer Query-String die Fehlermeldung "409 gone", so dass die entspr. Seiten nicht mehr in der Suchmaschine auftauchen. Allerdings wird es einige Zeit dauern, damit einmal aufgenommene Einträge aus dem Index gelöscht werden (mehrere Monate).

Lizenz ändern

Wenn man nachträglich die Lizenz seines Wikis ändern will, geht das technisch gesehen verhältnismäßig einfach: In der LocalSettings.php die folgenden Einträge ändern:

$wgRightsUrl = "http://creativecommons.org/licenses/by-sa/2.0/de/";
$wgRightsText = "Creative Commons Attribution-ShareAlike 2.0 Germany License";
$wgRightsIcon = "${wgStylePath}/common/images/somerights20.png";
# $wgRightsCode = "by-sa"; # Not yet used

Allerdings sollte beachtet werden, ob die alte Lizenz rechtlich zur neuen kompatibel ist. Wenn nicht, müssen theoretisch alle Autoren ihr Einverständnis zur Lizenzänderung geben!

Fußnoten

Mit der Cite.php-Extension kann man Fußnoten in Texten verwenden. Der Name kommt wohl vom Chicago-Zitierstil, der mit Fußnoten arbeitet.

Weitere Anpassungen

Im MediaWiki gibt es eine Seite, die sich mit kleineren Layout-Anpassungen beschäftigt.