Die Internetseite „denken24.de“ basierte von Dezember 2009 bis April 2015 auf dem bekannten Wiki System MediaWiki, welches die meisten Menschen von der Wikipedia her kennen und so ist eine gewisse Ähnlichkeit nicht abzustreiten. Dieser Beitrag erläutert die Einstellungen und Anpassungen, welche ich am MediaWiki Grundsystem vorgenommen habe.
Inhaltsverzeichnis
Installation
Wer nur über einen einfachen WebSpace bei einem durchschnittlichen Webhoster verfügt, kann schon viele Dinge in Eigenregie erledigen. Datenbanken anlegen, Dateien hoch laden oder ein paar PHP Parameter setzen. Allerdings hatte ich Probleme bei der Installation von MediaWiki Version 1.15, da mein Webhoster mir nur wenige Rechte auf der SQL Datenbank zugesteht. Das MediaWiki 1.15 Installationsskript legt die Datenbank Tabellen über das Skript maintenance/tables.sql
an und dort werden zu jeder Tabelle Indexe angelegt:
[...] CREATE TABLE /*_*/user_newtalk ( user_id int NOT NULL default 0, user_ip varbinary(40) NOT NULL default '', user_last_timestamp binary(14) NOT NULL default '' ) /*$wgDBTableOptions*/; CREATE INDEX /*i*/un_user_id ON /*_*/user_newtalk (user_id); CREATE INDEX /*i*/un_user_ip ON /*_*/user_newtalk (user_ip); [...]
Und genau CREATE INDEX
erlaubt mein Webhoster nicht! Über phpMyAdmin kann man jedoch auch einen Index anlegen. Allerdings nur über den Umweg ALTER TABLE
:
[...] ALTER TABLE /*_*/user_newtalk ADD INDEX /*i*/un_user_id (user_id); ALTER TABLE /*_*/user_newtalk ADD INDEX /*i*/un_user_ip (user_ip); [...]
Also habe ich maintenance/tables.sql
mit Hilfe von Excel geändert. Diese Änderung ist nur gültig, solange MediaWiki nicht aktualisiert wird. Ich würde heute jedoch empfehlen, MediaWiki zunächst auf einem lokalen Webserver (z.B. XAMPP) zu installieren und dann die Dateien und Datenbanken ins Internet hoch laden.
Anpassen
Nach der Installation ist MediaWiki ein offenes Wiki: Jeder darf Änderungen vornehmen.
Datenbanktyp ändern
Die Mediawiki Installation bereitete öfters Probleme. Die Seite konnte nicht mehr aufgerufen werden (Mediawiki exception handler…) und die Datenbank Tabellen wurden in phpMyAdmin im Status „In Benutzung“ angezeigt. Ein Anruf bei Canhost Support löste das Problem innerhalb weniger Stunden. Der Support gab mir den Tipp, den Datenbanktyp (Engine) von InnoDB auf MyISAM zu ändern:
alter table `archive` engine = myisam; alter table `category` engine = myisam; alter table `categorylinks` engine = myisam; ...
Datenbank komprimieren
Die Datenbank von MediaWiki 1.18.2 besteht aus 51 Tabellen. Die Tabelle ..._text enthält dabei alle Artikel sowie alle Versionen und kann selbst bei kleinen Wikis schnell groß werden. Danach kommen die Tabellen ..._objectcache und ..._l10n_cache.
Die Tabellen ..._objectcache und ..._l10n_cache enthalten temporäre Daten und können geleert oder bei einer Datensicherung ignoriert werden. Siehe auch:
- https://www.mediawiki.org/wiki/Manual:Objectcache_table
- https://www.mediawiki.org/wiki/Manual:L10n_cache_table
TRUNCATE TABLE ..._objectcache TRUNCATE TABLE ..._l10n_cache
MediaWiki wird mit so genannten Maintenance Skripten ausgeliefert. Im Ordner .../maintenance befinden sich eine Reihe von Skripten um das Wiki System zu warten. Das Skript .../maintenance/storage/compressOld.php schaft es , die Größe der Tabelle ..._text beträchtlich zu reduzieren. Siehe auch https://www.mediawiki.org/wiki/Manual:Reduce_size_of_the_database
Allerdings sind die Maintenance Skripte bei den meisten Web-Hosting Anbieten nicht zugänglich, da man nicht an die PHP-Konsole heran kommt. Hier hielt mal wieder die lokale MediaWiki Installation auf Basis XAMPP. Vor der Komprimierung mit compressOld.php:
Tabelle Größe ..._text 4,3 MiB
Nach der Komprimierung mit compressOld.php:
Tabelle Größe ..._text 577,0 KiB
Die Mediawiki Extension DeleteHistory hilft nochmals, die SQL Datenbank zu minimieren. Vor der Komprimierung mit DeleteHistory:
Tabelle Größe ..._l10n_cache 1,3 MiB
Nach der Komprimierung mit DeleteHistory:
Tabelle Größe ..._l10n_cache 1,0 MiB
Eine weitere Reduzierung erreicht man, wenn man die gespeicherten Objekte in der Tabelle objectcache löscht:
TRUNCATE TABLE objectcache
Wer alle Versionen zu löschen kann man das Maintenance Skript deleteOldRevisions.php genutzt werden:
php maintenancedeleteOldRevisions.php --delete Delete old revisions Searching for active revisions...done. Searching for inactive revisions...done. 1605 old revisions found. Deleting...done. Searching for active text records in revisions table...done. Searching for active text records in archive table...done. Searching for inactive text records...done. 1572 inactive items found. Deleting...done.
Farben & CSS
Das denken24 Logo ist 122×155 Pixel groß. Es ist ein teil transparentes GIF. Seit MediaWiki Version 1.16 wurde das Standard Skin von Monobook auf Vector geändert. Vector hat eine moderne Optik. Die CSS Dateien liegen im Ordner /skins/vector/
Normalerweise werden nur H1 und H2 unterstrichen. Damit auch H3 bis H6 unterstrichen werden, muss in /skins/vector/screen.css oder in /skins/common/commonElements.css eine Zeile auskommentiert werden:
h3,h4,h5,h6 { // border-bottom: none; font-weight: bold; }
LocalSettings.php anpassen
Die Konfiguration von MediaWiki erfolgt über die Konfigurationsdatei LocalSettings.php
, welche sich im MediaWiki Hauptverzeichnis befindet. Diese Datei sollte nur für den Webserver sichtbar sein, da sie Zugangsdaten zur Datenbank und andere sensible Daten enthält. Die Benutzerrechte kann über chmod gesetzt werden.
- Default Skin einstellen
$wgDefaultSkin = 'modern';
- Neue Anmeldungen verbieten
$wgGroupPermissions['*']['createaccount'] = false;
- Nur noch die angemeldeten Benutzer dürfen Artikel bearbeiten
$wgGroupPermissions['*']['edit'] = false;
- Artikel können nur nach erfolgreicher Anmeldung gelesen werden
$wgGroupPermissions['*']['read'] = false;
- Uplad für Bilder und Dateien erlauben
$wgEnableUploads = true; (Default: false)
- Dateitypen festlegen
$wgFileExtensions = array('png', 'gif', 'jpg', 'jpeg', 'pdf', 'zip', 'txt') ## Mediawiki erkennt den MIME Type von zip Files nicht korrekt! $wgVerifyMimeType = false;
- Bei Problemen mit Thumbnail (Vorschau) Bildern
- Fehlermeldung: „Fehler beim Erstellen des Vorschaubildes: convert: unrecognized option `-set‘.
- Fehlermeldung: „Fehler beim Erstellen des Vorschaubildes: Die Miniaturansicht konnte nicht am vorgesehenen Ort gespeichert werden.“
$wgUseImageMagick = false; $wgTmpDirectory = "$IP/images/temp";
- Das Logo kann als Bild hoch geladen werden und anschließend eingeblendet werden
$wgLogo = "/images/Beispiel.png";
- Spezial:MediaWiki-Systemnachrichten abschalten
- Achtung: Diese Einstellung schaltet den MediaWiki Namensraum aus. wie z.B. MediaWiki:Sidebar. Siehe Menü anpassen
- Alle Systemmeldungen werden statt dessen aus der languages/messages/MessagesDe.php abgeleitet.
$wgUseDatabaseMessages = false;
- HTML Code <html>einbetten</html>
$wgRawHtml = true;
- Externe Links in einem neuen Browserfenster/Tab öffnen
$wgExternalLinkTarget = '_blank';
Passwort ändern
Falls ein Benutzer sein Password vergessen hat, kann über phpMyAdmin ein neues Password gesetzt werden. Das Password wird als „doppelter“ MD5-Hash gespeichert:
UPDATE user SET user_password = MD5(CONCAT('UID', '-', MD5('NewPass'))) WHERE user_id = 'UID';
- UID
- user_id, Benutzername
- NewPass
- Neues Password
Fehler bei der Anmeldung?
MediaWiki ist eine Software der Web2.0 Welt und daher auch sehr mitteilungsbedürftig. Es verrät nicht nur die MediaWiki Softwareversion sondern auch die Version des PHP-Interpretes und der SQL-Datenbank. Aber es kommt noch besser:
- Wenn man einen falschen Benutzernamen eingibt erhält man folgenden gut gemeinten Hinweis
- Der Benutzername „$1“ ist nicht vorhanden. Bitte überprüfe die Schreibweise.
- Wenn man ein falsches Kennwort eingibt, wird auch noch freundlich auf das falsche Kennwort hingewiesen
- Das Passwort ist falsch. Bitte versuche es erneut.
Damit öffnet man Brute Force Angriffen Tür und Tor, denn ein Angreifer erhält wichtige Hinweise. Ok, wer schlau ist, schaut in das Spezial:Benutzer-Verzeichnis und kann dort alle Benutzernamen auslesen… Diese Hinweise sollte man als Administrator über die Spezial:MediaWiki-Systemnachrichten ändern und anonymisieren:
- MediaWiki:Nosuchusershort
- MediaWiki:Wrongpassword
Ich habe beide Systemnachrichten geändert in:
- Willst du hier einbrechen?
Bei dieser Gelegenheit noch der dringende Hinweis, stets sichere Kennwörter und anonyme Benutzernamen zu verwenden!
Menü anpassen
Die Menüleiste am linken Rand heißt Sidebar und wird über den Systemtext MediaWiki:Sidebar angepaßt. Allerdings nur, wenn der in LocalSettings.php der Parameter $wgUseDatabaseMessages = true; eingestellt wurde. Siehe auch LocalSettings.php anpassen. Falls mit $wgUseDatabaseMessages = false; gearbeitet wird, steht der MediaWiki Namensraum nicht zur Verfügung.
* Navigation ** mainpage|mainpage-description ** randompage-url|randompage ** Spezial:Beliebteste_Seiten|Beliebte Seiten ** Spezial:Kategorien|Schubladen ** Bildergalerie|Bildergalerie * Kontakt ** Denken24:Impressum|Kontakt * TOOLBOX
Das Werkzeugmenu bzw die TOOLBOX am linken Bildschimrand ist interessant für Autoren, aber nicht für Besucher. Daher könnte man die Werkzeuge auch für nicht angemeldete Besucher ausblenden. Siehe: https://kompetenz.hs-wismar.de/index.php/Hilfe:Werkzeuge_ohne_Login_ausblenden
Fußleisten anpassen
Die Fußzeile am unteren Rand heißt Footer und wird in der Datei skins/<Skin>.php
definiert. Wobei <Skin> für das entsprechende Erscheinungsbild steht (Modern, Monobook…). Die folgende Zeile enthält die anzuzeigenden Elemente:
$footerlinks = array('credits', 'copyright', 'privacy', 'about', 'disclaimer', 'tagline');
Templates
Zusammen mit der Extension:ParserFunctions können sinnvolle Vorlagen erstellt und genutzt werden:
- Vorlage:Absatz
- Vorlage:Page
- Vorlage:Prettytable
- Vorlage:Tableheader
- Vorlage:Zitat
Extensions
MediaWiki kann schon viel, aber einige Funktionen müssen als Erweiterungen (engl.: Extensions) hinzugefügt werden. denken24.de nutzt folgende Extensions:
- Cite.php für Fussnoten
- ParserFunctions für Funktionen
- RandomImage für Zufallsbilder auf der Startseite. Siehe auch XAMPP#DOMDocument::loadHTML
- Newest Pages für die neusten Beiträge auf der Startseite.
Suchen
Die Suchfunktion von MediaWiki ist eine Ganzwortsuche. Wer nur nach wordsu sucht wird nichts finden, da es kein entsprechenden ganzen Wort gibt. wortsu* schaltet um auf die erweiterte Suche. Nun werden auch Seiten gefunden, in denen das Wortfragment wortsu enthalten ist.
Schreibe einen Kommentar