seeseekey.net - Invictus Deus Ex Machina

Vor knapp zwei Jah­ren schrieb ich über die Authen­ti­fi­ka­tion in Media­Wiki über eine WordPress-Datenbank. Das Pro­blem an dem Quell­code wel­cher dort vor­ge­stellt wird, ist seine nicht mehr gege­bene Aktua­li­tät. Mit den neuen Ver­sio­nen der MediaWiki-Software funk­tio­niert der Quell­text nicht mehr, da sich einige Inne­reien inner­halb der MediaWiki-Software geän­dert haben.

Die Anmel­dung in einer MediaWiki

Ich habe mich dem Modul ange­nom­men und das ganze an die aktu­elle MediaWiki-Version ange­passt. Zu fin­den ist der unter der GPL3 lizen­zierte Quell­code dabei auf Git­Hub. Die Instal­la­tion im Media­Wiki ist dabei in der README-Datei beschrieben.

Wenn man sich die Media­Wiki „user“-Tabelle anschaut, so wird man fest­stel­len das die Nut­zer­na­men mitt­ler­weile als „var­bi­nary“ gespei­chert wer­den. Im Gegen­satz zur frü­he­ren Vari­ante las­sen sich die Namen damit nicht mehr im Klar­text lesen.

Ein Aus­zug aus der „user“-Tabelle

Möchte man die Namen im Klar­text anzei­gen, so ist dies mit fol­gen­dem SQL Befehl möglich:

SELECT CAST(user_name AS CHAR) from user

Die Aus­gabe besteht dabei aus allen Nut­zer­na­men in ihrer Klartextform.

Vor eini­gen Stun­den wurde die neue Ver­sion der Media­Wiki Soft­ware frei­ge­ge­ben. In dem Release wurde die mini­male benö­tigte PHP Ver­sion auf 5.3.2 ange­ho­ben. An Ver­bes­se­rung sind die neue Diff­an­zeige, sowie Ver­bes­se­run­gen für Far­ben­blinde hin­zu­ge­kom­men. Des wei­te­ren gibt es eine neue Spe­zi­al­seite („Special:MostInterwikis“) sowie das neue Schlüs­sel­wort „{{PAGEID}}“ wel­ches die Sei­ten ID ermit­telt. Neben den Ver­bes­se­run­gen sind auch einige neue Spra­chen wie die Emi­lia­ni­sche Spra­che hin­zu­ge­kom­men. Die neue Ver­sion der Media­Wiki kann unter http://www.mediawiki.org/wiki/MediaWiki/de bezo­gen werden.

Um Piwik in die Media­Wiki zu inte­grie­ren gibt es eine Exten­sion die auf den „Piwik Inte­gra­tion“ hört. Das Pro­blem die­ser Exten­sion ist das sie seit 2009 nicht mehr wei­ter­ent­wi­ckelt wurde. Bedingt dadurch funk­tio­niert das ganze nicht mehr mit der aktu­el­len Media Wiki Version.

Abhilfe schafft hier die Exten­sion „PCR GUI Ins­erts“ wel­che unter http://www.mediawiki.org/wiki/Extension:PCR_GUI_Inserts zu fin­den ist. Mit die­ser Exten­sion ist es mög­lich Code auf der Media­Wiki ein­zu­bin­den. Im Gegen­satz zu ande­ren Ver­fah­ren, wie z.B. dem direk­ten edi­tie­ren der Tem­pla­te­da­teien funk­tio­niert diese Lösung auch nach einem Update der Media­Wiki Ver­sion weiter.

Für die Instal­la­tion muss man dabei fol­gende Schritte befolgen:

  • Exten­sion her­un­ter­la­den
  • den ent­pack­ten Ord­ner in den „exten­si­ons“ Ord­ner der Media­Wiki hochladen
  • die „LocalSettings.php“ bearbeiten

Bei der Bear­bei­tung der „LocalSettings.php“ muss nur die Zeile:

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

an das Ende der Datei ange­fügt wer­den. Danach ist die „PCR GUI Ins­erts“ Erwei­te­rung aktiv. Nun muss nur noch der Piwik Tracking Code ein­ge­baut wer­den. Dazu gibt es in der ent­spre­chen­den Wiki ein schö­nes Bei­spiel:

$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 Zei­len wer­den dabei auch in die „LocalSettings.php“ geschrie­ben. Natür­lich müs­sen die ent­spre­chen­den Domain­na­men ange­passt wer­den, sowie die pas­sende Num­mer für die zu tra­ckende Web­seite benutzt werden.

Wei­tere Infor­ma­tio­nen gibt es unter:
http://de.wikipedia.org/wiki/Piwik
http://de.wikipedia.org/wiki/MediaWiki

Wenn man eine Media­Wiki und eine Word­Press Instal­la­tion auf einer Web­seite „hält“ so wäre es wün­schens­wert das man sich mit den glei­chen Log­in­da­ten anmel­den kann. In die­sem Fall soll es darum gehen sich mit­tels der Word­Press Login Daten an der Media­Wiki anzumelden.

Dazu laden wir uns „AuthWordpress.php“ von der Seite http://insites.ingenesis.net/2008/08/17/wordpress-bbpress-mediawiki/ (alter­na­tiv auch hier) her­un­ter. Die ent­spre­chende „AuthWordpress.php“ Datei packen wir nun in das „exten­si­ons“ Ver­zeich­nis der Media­Wiki Installation.

Danach öff­nen wir die „LocalSettings.php“ in einem Text­edi­tor und fügen dort fol­gende Zei­len 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än­dert werden:

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

Diese impor­tiert die Word­Press Hash­klasse und wird für die Authen­ti­fi­ka­tion benö­tigt. Kann man von der Media­Wiki Instal­la­tion nicht auf die Word­Press Instal­la­tion zugrei­fen so kann man alter­na­tiv auch ein­fach die Datei „class-phpass.php“ in den „exten­si­ons“ Ord­ner kopie­ren und das „require_once“ so abändern:

require_once('class-phpass.php');

Nun sollte man noch die Regis­trie­rung von Accounts über die Media­Wiki Soft­ware deak­ti­vie­ren. Dies geschieht indem man in die „LocalSettings.php“ fol­gen­des einträgt:

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

Anschlie­ßend kann man sich im Word­Press einen Account regis­trie­ren und die­sen auch in der Media­Wiki nutzen.

Wei­tere Infor­ma­tio­nen 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 Media­Wiki Soft­ware auf die Ver­sion 1.18 bekam ich fol­gen­den 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 Pro­ble­mes war ganz ein­fach. Irgend­wie wurde der Pro­fi­ler akti­viert. Dies äußerte sich darin das es im Haupt­ord­ner der Soft­ware eine Datei namens StartProfiler.php gab. Wenn man diese Datei ent­fernt, ist das Pro­blem gelöst.

Wei­tere Infor­ma­tio­nen gibt es unter:
http://www.mediawiki.org/

Vor ein paar Tagen schrieb ich einen Arti­kel wie man Spam in der Media­Wiki bekämpft. Die Methode an sich ist nicht schlecht, weil keine Ein­träge mehr ver­än­dert wer­den. Aller­dings gibt es immer noch einige Nut­zer die sich ange­mel­det haben, aller­dings klar als Spam­bots zu erken­nen sind.

Um zu ver­hin­dern das sich sol­che Spam­bots über­haupt anmel­den kön­nen gibt es die Exten­sion Con­fir­mAc­count wel­che unter http://www.mediawiki.org/wiki/Extension:ConfirmAccount zu fin­den ist. Die Exten­sion sorgt dafür das ein Media­Wiki Büro­krat den Account erst bestä­ti­gen muss. Das kann dabei so ein­ge­stellt wer­den, das die­ser eine Mail bekommt sobald der Nut­zer die Mail­adresse bestä­tigt hat. Nach dem Down­load der Exten­sion sollte diese ent­packt wer­den und der Ord­ner Con­fir­mAc­count in den exten­si­ons Ord­ner hoch­ge­la­den wer­den. Nun müs­sen noch die Ein­stel­lun­gen in der LocalSettings.php ange­passt 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 Media­Wiki noch geup­datet wer­den. Mit­tels Shell­zu­gang sieht das ganze so aus:

php maintenance/update.php

Wei­tere Metho­den für das Update sowie Optio­nen der Erwei­te­rung sind auf der ent­spre­chen­den Seite beschrie­ben. Danach ist die Erwei­te­rung instal­liert und sollte ihren Dienst verrichten.

Als Betrei­ber einer Media­Wiki hat man frü­her oder spä­ter mit Spam zu kämp­fen. Und so gibt es für die Media­Wiki Soft­ware eine ganze Reihe von Exten­si­ons zur Spam­be­kämp­fung. Aber auch die Media­Wiki Soft­ware selbst bie­tet einige Mecha­nis­men dafür an. Einer davon ist die Option $wgE­mail­Con­firm­To­Edit. Mit die­ser Option müs­sen Nut­zer erst ihre Mail­adresse bestä­ti­gen bevor sie in der Media­Wiki edi­tie­ren dür­fen. Die Option wird dabei in die LocalSettings.php eingetragen:

$wgEmailConfirmToEdit = true;

Danach sollte man einen Groß­teil der nicht all zu intel­li­gen­ten Bots aus­ge­sperrt haben.

Wei­tere Infor­ma­tio­nen 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 Wiki­pe­dia nach dem Arti­kel zum iPod gesucht hat so ladende man beim IPod. Der Grund dafür ist das die Media­Wiki Soft­ware keine klei­nen Buch­sta­ben am Anfang des Lem­mas mochte. In neue­ren Media­Wiki Ver­sio­nen ist dies nicht mehr so. Zwar heißt der iPod in der URL immer noch IPod aber auf der Seite steht nun als Arti­kel­name iPod. Mög­lich macht es das neue Schlüsselwort:

{{SEITENTITEL:Lemma}}

mit dem man den Titel so set­zen kann:

{{SEITENTITEL:iPod}}

Danach wird der Arti­kel­name kor­rekt angezeigt.

Wei­tere Infor­ma­tio­nen gibt es unter:
http://de.wikipedia.org/wiki/Wikipedia:Liste_der_Artikel,_deren_korrekter_Titel_von_MediaWiki_nicht_erlaubt_wird

Bei Auda­city han­delt es sich um einen freien Audio­edi­tor, wel­cher für Linux, Mac OS X und WIn­dows zur Ver­fü­gung steht. Benö­tigt man zu die­sem Infor­ma­tio­nen, so sollte man sich mal die Auda­city Wiki unter http://wiki.audacityteam.org/ anschauen. Dort fin­den sich Tuto­ri­als zu ver­schie­de­nen The­men, Erläu­te­run­gen der Effekte und vie­les mehr. Sehr hilf­reich das ganze :)

Wei­tere Infor­ma­tio­nen gibt es unter:
http://audacity.sourceforge.net/
http://de.wikipedia.org/wiki/Audacity