seeseekey.net - Invictus Deus Ex Machina

Vor knapp zwei Jahren schrieb ich über die Authentifikation in MediaWiki über eine WordPress-Datenbank. Das Problem an dem Quellcode welcher dort vorgestellt wird, ist seine nicht mehr gegebene Aktualität. Mit den neuen Versionen der MediaWiki-Software funktioniert der Quelltext nicht mehr, da sich einige Innereien innerhalb der MediaWiki-Software geändert haben.

Die Anmeldung in einer MediaWiki

Ich habe mich dem Modul angenommen und das ganze an die aktuelle MediaWiki-Version angepasst. Zu finden ist der unter der GPL3 lizenzierte Quellcode dabei auf GitHub. Die Installation im MediaWiki ist dabei in der README-Datei beschrieben.

Wenn man sich die MediaWiki „user“-Tabelle anschaut, so wird man feststellen das die Nutzernamen mittlerweile als „varbinary“ gespeichert werden. Im Gegensatz zur früheren Variante lassen sich die Namen damit nicht mehr im Klartext lesen.

Ein Auszug aus der „user“-Tabelle

Möchte man die Namen im Klartext anzeigen, so ist dies mit folgendem SQL Befehl möglich:

SELECT CAST(user_name AS CHAR) from user

Die Ausgabe besteht dabei aus allen Nutzernamen in ihrer Klartextform.

Vor einigen Stunden wurde die neue Version der MediaWiki Software freigegeben. In dem Release wurde die minimale benötigte PHP Version auf 5.3.2 angehoben. An Verbesserung sind die neue Diffanzeige, sowie Verbesserungen für Farbenblinde hinzugekommen. Des weiteren gibt es eine neue Spezialseite („Special:MostInterwikis“) sowie das neue Schlüsselwort „{{PAGEID}}“ welches die Seiten ID ermittelt. Neben den Verbesserungen sind auch einige neue Sprachen wie die Emilianische Sprache hinzugekommen. Die neue Version der MediaWiki kann unter http://www.mediawiki.org/wiki/MediaWiki/de bezogen werden.

Um Piwik in die MediaWiki zu integrieren gibt es eine Extension die auf den „Piwik Integration“ hört. Das Problem dieser Extension ist das sie seit 2009 nicht mehr weiterentwickelt wurde. Bedingt dadurch funktioniert das ganze nicht mehr mit der aktuellen Media Wiki Version.

Abhilfe schafft hier die Extension „PCR GUI Inserts“ welche unter http://www.mediawiki.org/wiki/Extension:PCR_GUI_Inserts zu finden ist. Mit dieser Extension ist es möglich Code auf der MediaWiki einzubinden. Im Gegensatz zu anderen Verfahren, wie z.B. dem direkten editieren der Templatedateien funktioniert diese Lösung auch nach einem Update der MediaWiki Version weiter.

Für die Installation muss man dabei folgende Schritte befolgen:

  • Extension herunterladen
  • den entpackten Ordner in den „extensions“ Ordner der MediaWiki hochladen
  • die „LocalSettings.php“ bearbeiten

Bei der Bearbeitung der „LocalSettings.php“ muss nur die Zeile:

require_once( "$IP/extensions/PCRGUIInserts/pcr_guii.php" );

an das Ende der Datei angefügt werden. Danach ist die „PCR GUI Inserts“ Erweiterung aktiv. Nun muss nur noch der Piwik Tracking Code eingebaut werden. Dazu gibt es in der entsprechenden Wiki ein schönes Beispiel:

$wgPCRguii_Inserts['SkinAfterBottomScripts']['on'] = true;
$wgPCRguii_Inserts['SkinAfterBottomScripts']['content'] = '<script type="text/javascript">
var pkBaseURL = (("https:" == document.location.protocol) ? "https://piwik.example.com/" : "http://piwik.example.com/");
document.write(unescape("%3Cscript src=\'" + pkBaseURL + "piwik.js\' type=\'text/javascript\'%3E%3C/script%3E"));
</script><script type="text/javascript">
try {
var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 2);
piwikTracker.trackPageView();
piwikTracker.enableLinkTracking();
} catch( err ) {}
</script><noscript><p><img src="http://piwik.example.com/piwik.php?idsite=2" style="border:0" alt="" /></p></noscript>';

Diese Zeilen werden dabei auch in die „LocalSettings.php“ geschrieben. Natürlich müssen die entsprechenden Domainnamen angepasst werden, sowie die passende Nummer für die zu trackende Webseite benutzt werden.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Piwik
http://de.wikipedia.org/wiki/MediaWiki

Wenn man eine MediaWiki und eine WordPress Installation auf einer Webseite „hält“ so wäre es wünschenswert das man sich mit den gleichen Logindaten anmelden kann. In diesem Fall soll es darum gehen sich mittels der WordPress Login Daten an der MediaWiki anzumelden.

Dazu laden wir uns „AuthWordpress.php“ von der Seite http://insites.ingenesis.net/2008/08/17/wordpress-bbpress-mediawiki/ (alternativ auch hier) herunter. Die entsprechende „AuthWordpress.php“ Datei packen wir nun in das „extensions“ Verzeichnis der MediaWiki Installation.

Danach öffnen wir die „LocalSettings.php“ in einem Texteditor und fügen dort folgende Zeilen hinzu:

## Added for WordPress login support
require_once( 'extensions/AuthWordpress.php' );
$wgAuth = new AuthWordpress();
$wgAuth->setAuthWordpressTablePrefix('wp_'); // Should match the DB prefix in wp-config.php
$wgAuth->setAuthWordpressDBServer ('DBSERVER'); // wordpress host (eg. localhost)
$wgAuth->setAuthWordpressDBName('DBNAME'); // wordpress database
$wgAuth->setAuthWordpressUser('DBUSER'); // wordpress db username
$wgAuth->setAuthWordpressPassword('DBPASSWORD'); // wordpress db password

Nun muss nur noch die Zeile 59 in der Datei „AuthWordPress.php“ geändert werden:

require_once('../wp-includes/class-phpass.php');

Diese importiert die WordPress Hashklasse und wird für die Authentifikation benötigt. Kann man von der MediaWiki Installation nicht auf die WordPress Installation zugreifen so kann man alternativ auch einfach die Datei „class-phpass.php“ in den „extensions“ Ordner kopieren und das „require_once“ so abändern:

require_once('class-phpass.php');

Nun sollte man noch die Registrierung von Accounts über die MediaWiki Software deaktivieren. Dies geschieht indem man in die „LocalSettings.php“ folgendes einträgt:

#Keine Registrierung über MediaWiki zulassen
$wgGroupPermissions['*']['createaccount'] = false;

Anschließend kann man sich im WordPress einen Account registrieren und diesen auch in der MediaWiki nutzen.

Weitere Informationen gibt es unter:
http://stackoverflow.com/questions/33745/wordpress-mediawiki-integration
http://insites.ingenesis.net/2008/08/17/wordpress-bbpress-mediawiki/
http://www.mediawiki.org/wiki/Extension:WPMW
http://ciarang.com/wiki/page/WPMW

Nach dem Update der MediaWiki Software auf die Version 1.18 bekam ich folgenden Fehler:

Fatal error: Cannot redeclare wfprofilein() (previously declared in /www/wiki/includes/profiler/Profiler.php:14) 
in /www/wiki/includes/ProfilerStub.php on line 25

Die Lösung des Problemes war ganz einfach. Irgendwie wurde der Profiler aktiviert. Dies äußerte sich darin das es im Hauptordner der Software eine Datei namens StartProfiler.php gab. Wenn man diese Datei entfernt, ist das Problem gelöst.

Weitere Informationen gibt es unter:
http://www.mediawiki.org/

Vor ein paar Tagen schrieb ich einen Artikel wie man Spam in der MediaWiki bekämpft. Die Methode an sich ist nicht schlecht, weil keine Einträge mehr verändert werden. Allerdings gibt es immer noch einige Nutzer die sich angemeldet haben, allerdings klar als Spambots zu erkennen sind.

Um zu verhindern das sich solche Spambots überhaupt anmelden können gibt es die Extension ConfirmAccount welche unter http://www.mediawiki.org/wiki/Extension:ConfirmAccount zu finden ist. Die Extension sorgt dafür das ein MediaWiki Bürokrat den Account erst bestätigen muss. Das kann dabei so eingestellt werden, das dieser eine Mail bekommt sobald der Nutzer die Mailadresse bestätigt hat. Nach dem Download der Extension sollte diese entpackt werden und der Ordner ConfirmAccount in den extensions Ordner hochgeladen werden. Nun müssen noch die Einstellungen in der LocalSettings.php angepasst werden:

#ConfirmAccount
require_once("$IP/extensions/ConfirmAccount/ConfirmAccount.php");
$wgUseRealNamesOnly=false;
$wgAccountRequestMinWords=0;
$wgAccountRequestToS=false;
$wgAccountRequestExtraInfo=false;
$wgConfirmAccountContact="admin@example.org";

Anschließend muss die MediaWiki noch geupdatet werden. Mittels Shellzugang sieht das ganze so aus:

php maintenance/update.php

Weitere Methoden für das Update sowie Optionen der Erweiterung sind auf der entsprechenden Seite beschrieben. Danach ist die Erweiterung installiert und sollte ihren Dienst verrichten.

Als Betreiber einer MediaWiki hat man früher oder später mit Spam zu kämpfen. Und so gibt es für die MediaWiki Software eine ganze Reihe von Extensions zur Spambekämpfung. Aber auch die MediaWiki Software selbst bietet einige Mechanismen dafür an. Einer davon ist die Option $wgEmailConfirmToEdit. Mit dieser Option müssen Nutzer erst ihre Mailadresse bestätigen bevor sie in der MediaWiki editieren dürfen. Die Option wird dabei in die LocalSettings.php eingetragen:

$wgEmailConfirmToEdit = true;

Danach sollte man einen Großteil der nicht all zu intelligenten Bots ausgesperrt haben.

Weitere Informationen gibt es unter:
http://www.mediawiki.org/wiki/Manual:$wgEmailConfirmToEdit
http://www.mediawiki.org/wiki/Manual:Combating_spam
http://www.mediawiki.org/wiki/Anti-spam_features
http://www.mediawiki.org/wiki/Spam_Filter
http://www.mediawiki.org/wiki/SpamBlacklist_extension

Wenn man früher in der Wikipedia nach dem Artikel zum iPod gesucht hat so ladende man beim IPod. Der Grund dafür ist das die MediaWiki Software keine kleinen Buchstaben am Anfang des Lemmas mochte. In neueren MediaWiki Versionen ist dies nicht mehr so. Zwar heißt der iPod in der URL immer noch IPod aber auf der Seite steht nun als Artikelname iPod. Möglich macht es das neue Schlüsselwort:

{{SEITENTITEL:Lemma}}

mit dem man den Titel so setzen kann:

{{SEITENTITEL:iPod}}

Danach wird der Artikelname korrekt angezeigt.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Wikipedia:Liste_der_Artikel,_deren_korrekter_Titel_von_MediaWiki_nicht_erlaubt_wird

Bei Audacity handelt es sich um einen freien Audioeditor, welcher für Linux, Mac OS X und WIndows zur Verfügung steht. Benötigt man zu diesem Informationen, so sollte man sich mal die Audacity Wiki unter http://wiki.audacityteam.org/ anschauen. Dort finden sich Tutorials zu verschiedenen Themen, Erläuterungen der Effekte und vieles mehr. Sehr hilfreich das ganze :)

Weitere Informationen gibt es unter:
http://audacity.sourceforge.net/
http://de.wikipedia.org/wiki/Audacity