Benutzer:StipenTreublatt/MediaWiki-Admin

aus Wiki Aventurica, dem DSA-Fanprojekt
Wechseln zu: Navigation, Suche


Ungeordnete Liste

Servereinstellungen und -wartung

Aspekt MediaWiki-Link Nützliche Links Anmerkungen
ftp-Zugriff Filezilla Ein ftp-Zugang zum Server ist Mindestvoraussetzung für die Installation und Wartung eines eigenen MediaWikis.
Bei FileZilla unbedingt ASCII-Mode für unbekannte Dateitypen ausschalten!
SSH-Zugriff PuTTY Über einen SSH-Zugang kann man Wartungsskripte ausführen und damit z.B. Backups erstellen. Nötig ist er für den Betrieb eines Wikis aber nicht zwingend.
robots.txt Manual:robots.txt Validator
  • „ia_archiver“/„archive.org_bot“ kopiert die gesamte Webseite; falls nicht alles unter freier Lizenz steht (in diesem Wiki Bilder), sollte dieser Bot auf „Disallow: /“ gestellt werden.
  • „Googlebot-image“ kopiert seit neuestem Bilder in Vollgröße und stellt sie bei der Bildersuche auch als solche dar, ohne den korrekten Lizenzhinweis. Falls die Bilder nicht gemeinfrei sind, sollte dieser Bot auf „Disallow: /“ gestellt werden.
Sitemap Manual:generateSitemap.php Der Name der Sitemap kann in der robots.txt angegeben werden, daher sollten eigentlich keine 404-Fehler durch nicht vorhandene Sitemaps entstehen (außer man hat eben keine Sitemap). Manche bots sind aber offensichtlich dämlich programmiert und fragen immer nach „sitemap.xml“; um 404-Einträge im error.log zu vermeiden kann man einfach eine leere Datei dieses Namens erstellen.
.htaccess Ultimate htaccess

mod rewrite
rewrite-tester

Einschalten des mod rewrite:

RewriteEngine On
RewriteBase /

Führt der Server Wartungsarbeiten zu bestimmten Tageszeiten aus, kann man ihn entlasten, indem man temporär einen 503-Fehler an Anfragen zurückgibt (liegt der Zeitraum nicht an der Tagesgrenze, sollte man [OR] weglassen):

RewriteCond %{TIME_HOUR}%{TIME_MIN} >2355 [OR]
RewriteCond %{TIME_HOUR}%{TIME_MIN} <0010
RewriteRule ^.*$ /errors/503.html [R=503,L]

Anfragen nach „domain.de“, „ww.domain.de“ und ähnlichem kann man auf „www.domain.de“ umschreiben lassen:

RewriteCond %{REQUEST_URI} !^/(robots.txt|favicon.ico|sitemap.xml)$
RewriteCond %{HTTP_HOST} !^(www|www\.m)\.wiki-aventurica\.de$ [NC]
RewriteRule ^(.*)$ http://www.wiki-aventurica.de/$1 [R=301,L]
Spider-trap Bot-trap Die verlinkte bot-trap ist einfach einzusetzen und sperrt jeden, der einem bestimmten Link folgt, über einen „deny“-Eintrag in .htaccess; dieser Link wird in der robots.txt für alle Bots verboten und ist für Nutzer im Browser unsichtbar. Nutzer, die ihn versehentlich doch anklicken (oder eine IP zugewiesen bekommen, die vorher von einem Spammer benutzt wurde) können sich selbst wieder entblocken, indem sie eine einfache Frage beantworten. Eine Möglichkeit, den Link im Wiki an fast jeder Seite unterzubringen, ist MediaWiki:Copyright.

functions.php muss eventuell ein wenig angepasst werden (siehe auch tempnam - insbesondere [1] - und sys-get-temp-dir):

  $new_fp_name = tempnam("sys_get_temp_dir()","bbo");
  $new_fp = fopen($new_fp_name, "w");
  if (!is_file($new_fp_name))
    {
      echo "<p>File $new_fp_name doesn't exist, can you create this file?</p>";
      return;
    }
Server log Analog
findandreplace
access.log und error.log sollten regelmäßig überprüft und ausgewertet werden. Ein gutes freies Programm zur Analyse des access.logs ist „analog“. Meine Änderungen zur analog.cfg-Datei: Benutzer:StipenTreublatt/MediaWiki-Admin/analog
Das Programm „findandreplace“ kann man aus einer BAT-Datei heraus aufrufen und damit das error-Logbuch von unwichtigen Einträgen (z.B. Zugriffsversuche dauerhaft gesperrter IPs) säubern lassen.
fehlende Dateien (404) Einige Dateien werden immer wieder abgefragt, obwohl sie nirgendwo verlinkt sind:
  • labels.rdf: Einfach unter dem Namen als leere Datei erstellen. [2]
  • age-de.xml: Datei mit Informationen zum Jugendschutz. Kann durch einen Label-Generator erstellt werden.
  • apple-touch-icon-(irgendwas): Wird von apple-Geräten dreisterweise immer wieder abgefragt. Siehe Manual:$wgAppleTouchIcon, oder auch weiter unten unter „favicon“.
  • trafficbasedsspsitemap.xml: Wird vom bingbot abgefragt, auch wenn die Datei nicht in robots.txt genannt wird[3]. Um die Error.log-Einträge zu vermeiden, einfach als leere Datei erstellen.
  • browserconfig.xml: Wird vom IE automatisch abgefragt, falls eine Webseite keinen spezifischen Microsoft-definierten Code für das Seitenaussehen im html-Code hat.[4] Einfach als leere Datei erstellen, um die Einträge im error-Logbuch zu vermeiden (ja, vereinzelte Leute nutzen erstaunlicherweise immer noch IE!).
IP-Range blocken Help:Range blocks whois
How to
Rangeblock-Calculator
Chinese IPs
Die Nutzer des WA benutzen in der überwältigenden Mehrheit europäische IP-Adressen. Entdeckt man im Error.log daher Angriffsversuche bspw aus China, kann man dort guten Gewissens ganze IP-Ranges per htaccess sperren. Besonders nützlich sind auch schon vordefinierte Sperrlisten für chinesische IP-Ranges, da man so einen guten Teil des Internetmülls abblocken kann.
Impressum Impressum botsicher Ein Impressum ist in Deutschland auch für private Webseiten (vermutlich, siehe Impressum#Deutschland) Pflicht. Die verlinkte Webseite bietet eine einfache Möglichkeit, die notwendigen Impressumsangaben botsicher auf der Webseite zu hinterlegen (indem man mehrere Bilder benutzt, die passend aneinander gefügt werden).
Wiki-Inhalte offline Wikipedia:Wikitaxi Wikitaxi kann jeden beliebigen Datenbank-dump in eine taxi-Datei umwandeln, die wesentlich kleiner ist als die Datenbank (da nur aktuelle Versionen gespeichert werden; außerdem werden Dateien natürlich nicht mitgeliefert). Diese taxi-Datei kann dann an Interessierte verteilt werden und wiederum mittels dem Wikitaxi offline betrachtet werden. Siehe auch Wiki Aventurica:Wikitaxi.

Befehl zum Erstellen eines XML-Dumps für das Wikitaxi:

php dumpBackup.php --current --filter=namespace:0,4,10,12,14,332,666 > wa.xml

Wikiadmin

Aspekt MediaWiki-Link Nützliche Links Anmerkungen
Grundlegende Einstellungen
MediaWiki herunterladen Download 7zip MediaWiki wird nur komprimiert zum Download angeboten. 7zip wird zum Entpacken der Dateien empfohlen.
MediaWiki installieren Installation guide/de Installation mit Xampp Mit Xampp kann man ein Wiki auch auf dem Heimrechner erstellen. Eignet sich als Testwikiumgebung oder für Wikis, die nicht über das Internet zugänglich sein müssen.
MediaWiki konfigurieren LocalSettings.php
Configuration settings
PSPad Mit PSPad kann man unter anderem funktionierende localsettings erstellen.
MediaWiki backup Manual:Backing up a wiki
Manual:dumpBackup.php
Für die php-Skripte muss man zuerst in den maintenance-Ordner wechseln (benötigt SSH-Zugang).
Reine Datensicherung
  • Alle Artikelversionen:
php dumpBackup.php --full > dump.xml
  • Nur aktuelle Versionen (zu Testzwecken):
php dumpBackup.php --current > dumpcurrent.xml
Volle Datenbank
  • benutzt mysqldump, daher zuerst Datenbank sperren:
$wgReadOnly = "Wartungsarbeiten";
  • Dann den dump durchführen; default-Werte "localhost" und "utf8" sind ok für uns
mysqldump -u wiki -p wiki > WAbackup.sql
  • Falls der Dump per ftp übertragen werden soll, kann man ihn gleichzeitig komprimieren lassen:
mysqldump -u wiki -p wiki | gzip > WAbackup.sql.gz
MediaWiki backup wiederherstellen Manual:Restoring a wiki from backup
Volle Datenbank einlesen
  • Die Datenbank "wiki" sollte dafür vorhanden, aber leer sein.
mysql -u wiki -p wiki < WAbackup.sql
  • Alternativ vorher mysql starten und dann folgende Befehle eingeben (man erhält dabei auch Fortschrittsberichte)
mysql> use wiki;
mysql> source WAbackup.sql;
  • Falls das Backup als "gz"-Datei vorliegt, vorher entpacken[5]:
gunzip WAbackup.sql.gz
MediaWiki upgrade Manual:Upgrading
Manual:update.php
Manual:Importing XML dumps
Meine bevorzugte Upgrade-Methode:
  1. Upgrade lokal in einem Testwiki testen: Neue MediaWiki-Version plus Extensions installieren, ein paar Artikel (oder die gesamte Datenbank, das dauert aber) aus dem WA importieren und überprüfen, ob alles funktioniert
  2. Backup erstellen (lassen, falls kein SSH-Zugang vorhanden) - siehe oben
  3. per htaccess den Zugriff auf die Domain auf mich einschränken
  4. die alten Dateien archivieren
  5. die neuen Dateien auf den Server schieben (images-Ordner sowie ein paar andere Dateien können bleiben)
  6. Web-Updater verwenden; falls das nicht funktioniert, muss man update.php benutzen (lassen, wenn ohne SSH-Zugang); update.php funktioniert allerdings nur, wenn eine localsettings vorhanden ist - klar, der Updater muss ja irgendwoher die Information bekommen, mit welcher Datenbank er sich verbinden soll.

Um (z.B wegen einer Extension) Update.php nochmals laufen zu lassen, rufe den Ordner "/mw-config/" auf und gebe den "Upgrade-key" ein, der in den localsettings gespeichert ist.

Wartungsskripte Manual:Maintenance scripts
Manual:rebuildall.php
Zum Ausführen dieser Skripte benötigt man einen SSH-Zugang.
URL verkürzen Short URL/Apache
$wgArticlePath
$wgUsePathInfo
Wenn das Wiki im Ordner "/w" liegt und in der URL "/wiki/" auftauchen soll:

.htaccess:

## http://www.mediawiki.org/wiki/Manual:Short_URL/Apache
 
# Enable the rewrite engine
RewriteEngine On
 
# Short url for wiki pages
RewriteRule ^/?wiki(/.*)?$ %{DOCUMENT_ROOT}/w/index.php [L]
 
# Redirect / to Main Page
RewriteRule ^/*$ %{DOCUMENT_ROOT}/w/index.php [L]

localsettings:

## http://www.mediawiki.org/wiki/Manual:Short_URL
$wgScriptPath = "/w";
$wgArticlePath = "/wiki/$1";

Das WA verwendet derzeit allerdings nur folgende Einstellungen (möglicherweise ist das nicht empfehlenswert):

$wgArticlePath = '/wiki/$1';
$wgUsePathInfo = true;
sicheres Einbauen von google-analytics User:Dantman/Analytics integration

Trage in den localsettings ein:

#neues Recht
$wgGroupPermissions['*']['noanalytics'] = false;
$wgGroupPermissions['bot']['noanalytics'] = true;
$wgGroupPermissions['sysop']['noanalytics'] = true;
$wgGroupPermissions['bureaucrat']['noanalytics'] = true;
 
#Variablen
$wgGoogleAnalyticsAccount = "(code)";
$wgJsMimeType = 'text/javascript';
$wgHooks['SkinAfterBottomScripts'][] = 'lfGAScript';
 
#security
function lfIsTitleSafe( $title ) {
        if ( $title->isSpecial('Userlogin')
         || $title->isSpecial('Userlogout')
         || $title->isSpecial('Preferences')
         || $title->isSpecial('Resetpass') )
                return false;
        return true;
}
#basic analytics
function lfGAScript( $sk, $text='' ) {
        global $wgUser, $wgJsMimeType, $wgGoogleAnalyticsAccount;
        if ( !lfIsTitleSafe($sk->getTitle()) ) {
        return true;
        }
        if ( $wgUser->isAllowed('noanalytics') ) {
                $text .= "<!-- Google Analytics code omitted -->\n";
                return true;
        }
        $text .= <<<GASCRIPT
<script type="{$wgJsMimeType}">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', '{$wgGoogleAnalyticsAccount}']);
_gaq.push(['_trackPageview']);
(function() {
        var ga = document.createElement('script'); ga.type = '{$wgJsMimeType}'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
 
GASCRIPT;
        return true;
}
Namensräume
Eigener Namensraum $wgExtraNamespaces
define("NS_ALTERNATIVE", 332);
$wgExtraNamespaces[NS_ALTERNATIVE] = "Spielerwelten";
"Content"-Namensräume $wgContentNamespaces
$wgContentNamespaces = array(NS_MAIN, NS_ALTERNATIVE);
Namensraum-Alias $wgNamespaceAliases
$wgNamespaceAliases['Spielerheld'] = NS_ALTERNATIVE;
Namensraum-Suchstandard $wgNamespacesToBeSearchedDefault Legt die Namensräume fest, die bei der internen Wikisuche standardmäßig durchsucht werden.
Namensraum-Anweisungen für Suchmaschinen $wgNamespaceRobotPolicies
$wgNamespaceRobotPolicies = array( NS_USER => 'noindex', NS_USER_TALK => 'noindex' );
Namensräume mit Unterseiten $wgNamespacesWithSubpages
$wgNamespacesWithSubpages[NS_MAIN] = true;
Dateiupload
Dateiupload ermöglichen $wgEnableUploads
Configuring file uploads
Unix-Dateirechte müssen für den "/images"-Ordner auf 755 gesetzt werden.
erlaubte Dateiendungen $wgFileExtensions
$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg', 'svg', 'txt', 'mid', 'pdf', 'kml', 'kmz', 'dic' );
SVG-Dateien Image administration
$wgSVGConverters
$wgSVGConverterPath
svg mit imagemagick
$wgSVGConverterPath = "/usr/bin";
$wgSVGConverters = array(
    'ImageMagick' => '$path/convert -background none -thumbnail $widthx$height\! $input PNG:$output',
    'sodipodi' => '$path/sodipodi -z -w $width -f $input -e $output',
    'inkscape' => '$path/inkscape -z -w $width -f $input -e $output',
    'batik' => 'java -Djava.awt.headless=true -jar $path/batik-rasterizer.jar -w $width -d $output $input',
    'rsvg' => '$path/rsvg -w$width -h$height $input $output',
    'imgserv' => '$path/imgserv-wrapper -i svg -o png -w$width $input $output',
);
Performance
Cache Cache
$wgMainCacheType
$wgParserCacheExpireTime
Bei einem öffentlichen Wiki verbessert ein Cache die Performance deutlich. Die "ExpireTime" ist standardmäßig auf 24 Stunden eingestellt.
$wgMainCacheType = CACHE_ACCEL;
$wgParserCacheExpireTime = 14*24*3600;
File cache File cache
$wgUseFileCache
Dieser Cache speichert fertige html-Wikiseiten für anonyme Nutzer.
$wgUseFileCache = true;
$wgFileCacheDirectory = "$IP/file-cache";
Interface cache Cache#Localization caching
$wgCacheDirectory
Dieser Cache speichert die MediaWiki-Systemmeldungen effektiver.
$wgCacheDirectory = "$IP/main-cache";
Sidebar cache $wgEnableSidebarCache
$wgSidebarCacheExpiry
Mit dieser Einstellung wird die Sidebar gespeichert. Sollte nicht benutzt werden, wenn in der Sidebar dynamisch Links erzeugt werden, wie bei uns der Fall.
$wgEnableSidebarCache = true;
$wgSidebarCacheExpiry = 14*24*3600;
Aktualisierungs-Geschwindigkeit Job queue
$wgJobRunRate
Wird eine Vorlage verändert, die in sehr vielen Seiten eingebunden ist, müssen daraufhin sehr viele Einträge in der Datenbank aktualisiert werden. Die "JobRunRate" legt fest, wie schnell dies geschieht, und zwar in Bezug auf die Anfragen, die beim Server angehen. Ein Wert von 1 bedeutet, dass ein "Job" pro Anfrage erledigt wird, ein Wert von 0.1 bedeutet, dass durchschnittlich 1 "Job" pro 10 Anfragen bearbeitet wird.
$wgJobRunRate = 0.1;
Spamschutz
Kontoerstellung $wgAccountCreationThrottle
$wgInvalidUsernameCharacters
$wgMaxNameChars
$wgAccountCreationThrottle = 1; #jede IP max 1 account innerhalb von 24 Stunden
$wgInvalidUsernameCharacters = '@,!?.1234567890'; #Benutzernamen müssen weder Aussagen sein noch Zahlen enthalten.
$wgMaxNameChars = 50; #reicht um einen sinnvollen Benutzernamen anzulegen
Kontosicherheit $wgMinimalPasswordLength
$wgMinimalPasswordLength = 4; #absolute Untergrenze für Passwörter
Neue Benutzerkonten $wgAutoConfirmCount
$wgAutoConfirmCount = 1; #Benutzergruppe autoconfirmed erst nach einer Bearbeitung
Spamschutz im Benutzernamensraum $wgNamespaceProtection
$wgGroupPermissions
#Benutzernamensraum nur angemeldet bearbeiten
$wgNamespaceProtection[NS_USER] = array( 'edit-user' ); 
$wgGroupPermissions['user']['edit-user'] = true;
Spamversionen löschen $wgGroupPermissions
$wgGroupPermissions['sysop']['deleterevision']  = true; #Aktivierung der Versions-Löschfunktion für Moderatoren
nofollow $wgNoFollowLinks Kann man auf "false" setzen, wenn man allen Spam im Wiki abfängt. "Gute" Links werden dadurch von Suchmaschinen berücksichtigt.
$wgNoFollowLinks = false; #Spam wird durch Filter abgefangen, pageranks guter Links sollten nicht beeinträchtigt werden
Aussehen und Funktionen
Wikilogo $wgLogo
Favicon $wgFavicon Apple-Geräte sind so dreist, eigenständig diverse "apple-touch-icon"-Dateien vom Server abzufragen und damit das error.log zuzumüllen (siehe [6]). Die nutzerfreundlichste Variante zur Beseitigung dieses Problems ist es, Versionen des Logos mit entsprechenden Dateinamen zu erstellen (siehe auch $wgAppleTouchIcon). Man könnte jedoch auch leere Dateien mit diesem Namen erstellen oder einfach per .htaccess Anfragen dieser Dateien auf das eine Datei umleiten (und es damit vermeiden, ein Dutzend verschiedene "apple-touch-icon"-Dateien auf dem Server zu haben):
RewriteCond %{REQUEST_URI} ^/apple-touch-icon-
RewriteRule ^(.*)$ http://www.wiki-aventurica.de/apple-touch-icon.png [R=301,L]
Footer umbauen Footer
$wgFooterIcons
Kann z.B. verwendet werden, um auf eine Partnerwebseite oder verwandte Projekte zu verlinken:
$wgHooks['SkinTemplateOutputPageBeforeExec'][] = 'lfTOSLink';
function lfTOSLink( $sk, &$tpl ) {
        $tpl->set( 'sponsor', $sk->footerLink( 'sponsor', 'sponsorpage' ) );
        $tpl->data['footerlinks']['places'][] = 'sponsor';
        return true;
}
$wgFooterIcons['monitoredby']['wikiapiary'] = array(
    "src" => "http://wikiapiary.com/w/images/wikiapiary/b/b4/Monitored_by_WikiApiary.png",
    "url" => "http://wikiapiary.com/wiki/Wiki_Aventurica",
    "alt" => "Monitored by WikiApiary"
);
Autorenhinweise im Footer $wgMaxCredits
$wgMaxCredits = 3;
Interwikilinks in Sidebar? $wgInterwikiMagic Mit dieser Einstellung werden Interwikilinks nicht in der Sidebar angezeigt:
$wgInterwikiMagic = false;
Mögliche Skins $wgSkipSkins Die hier eingetragenen Skins können von Benutzern nicht gewählt werden:
$wgSkipSkins = array("chick", "cologneblue", "myskin", "nostalgia", "simple", "standard");
Einbinden externer Bilder? $wgAllowExternalImages
$wgAllowExternalImagesFrom
Das Einbinden von Bildern, die von externen Servern geladen werden (Hotlinking) ist rechtlich bedenklich und sollte daher deaktiviert bleiben (Standardeinstellung der MediaWiki-Software). Man kann allerdings Ausnahmen definieren:
$wgAllowExternalImages = false;
$wgAllowExternalImagesFrom = 'http://www.dsa4forum.de/';
Benutzerrechte und -einstellungen
Benutzer-CSS und -javascript $wgAllowUserCss
$wgAllowUserJs
Ermöglicht Benutzern die Verwendung von persönlichen CSS- und javascript-Einstellungen:
$wgAllowUserCss = true;
$wgAllowUserJs = true;
Standard-Benutzereinstellungen ändern $wgDefaultUserOptions
$wgHiddenPrefs
Mit folgender Kombination kann man bestimmte Einstellungen für alle Nutzer erzwingen (im Beispiel wird dadurch beim Speichern auf eine fehlende Zusammenfassung hingewiesen):
$wgDefaultUserOptions['forceeditsummary'] = 1;
$wgHiddenPrefs[] = 'forceeditsummary'; #Zusammenfassungskommentar erzwingen
Gruppenrechte definieren User rights
$wgGroupPermissions
Mit dieser Einstellung kann man die Rechte der vorgegebenen Benutzergruppen ändern, oder Berechtigungen für neue Benutzergruppen vergeben.
Spezial:Versionsgeschichten vereinen freischalten
$wgGroupPermissions['bureaucrat']['mergehistory'] = true;

Wikiinhalte

Aspekt MediaWiki-Link Nützliche Links Anmerkungen
html Validator
selfhtml.org
Wiki
Die Wikisoftware erledigt den Großteil der html-Formatierung, wodurch in einer aktuellen MediaWiki-Installation praktisch keine html-Fehler auftreten sollten. Nutzer können jedoch durch ungeschicktes Anwenden von Wikisyntax unter Umständen Fehldarstellungen erzeugen, die durch den Validator aufgespürt werden können.
feed Validator Wikifeeds werden automatisch erzeugt und sollten daher problemlos funktionieren.
CSS Manual:CSS Validator
selfhtml.org
Die verschiedenen CSS-Ebenen eines MediaWiki werden auf Hilfe:CSS behandelt. Im Wiki veränderbar sind Common.css, Common.css, Vector.css und Modern.css.
javascript Manual:Interface/JavaScript Validator Im Wiki veränderbar sind Common.js, Monobook.js, Vector.js und Modern.js.
MediaWiki-Systemtexte anpassen Manual:System message
Special:AllMessages
Auf Spezial:MediaWiki-Systemnachrichten findet man alle Systemtexte des Wikis und kann sie nach Belieben anpassen.
Wiki-Variablen Help:Magic words Von der MediaWiki-Software erzeugte Variablen. Eigene Variablen können (auf jeweils einer Seite) mit der Extension:Variables definiert und genutzt werden.
Spezial:ISBN-Suche anpassen Manual:ISBN (praktisch nutzlos) Der auf MediaWiki:Booksources angegebene Name bestimmt den Namen der Seite im Projektnamensraum, auf der man den Inhalt auf Spezial:ISBN-Suche anpassen kann; in unserem Fall Wiki Aventurica:ISBN-Suche.
Automatische Änderungen über die API API:Main page pywikipediabot Hilfe zum pywikipediabot findet man auf Hilfe:Installation des Pywikipediabot, Hilfe:Robots und den dort verlinkten Seiten.

Nützliche Extensions

Siehe auch Spezial:Version.

Es gibt auch Extensions, die die normale WikiMedia-Suchfunktion durch eine eingebundene google-Suche ersetzen. Das ist eine sehr schlechte Idee:

  1. Die MediaWiki-Suche funktioniert einwandfrei.
  2. Wer google nutzen möchte, kann die google-Webseite aufrufen.
  3. Wer google nicht nutzen möchte, wird vom Wiki dazu gezwungen, da die normale Wikisuche abgeschaltet ist.
  4. Meine Meinung: Die google-Suche samt Werbeanzeigen ist schlechter und hässlicher als die MediaWiki-Suche.
Extension Funktion Anmerkungen
Spamschutz
Extension:AbuseFilter Ermöglicht das Erstellen von Filtern, die neue Änderungen überprüfen und gegebenenfalls verbieten. Geschickt programmierte Filter ermöglichen es, praktisch 100% des automatischen Spams zu blocken. Wenn man Extension:ConfirmEdit als QuestyCaptcha nutzt und somit automatische Accounterstellung verhindert, kann die Filter dann auch so einstellen, dass nur anonyme Änderungen überprüft werden.
require_once( "$IP/extensions/AntiSpoof/AntiSpoof.php" );
require_once( "$IP/extensions/AbuseFilter/AbuseFilter.php" );
$wgGroupPermissions['sysop']['abusefilter-modify'] = true;
$wgGroupPermissions['*']['abusefilter-log-detail'] = true;
$wgGroupPermissions['*']['abusefilter-view'] = true;
$wgGroupPermissions['*']['abusefilter-log'] = true;
$wgGroupPermissions['sysop']['abusefilter-private'] = true;
$wgGroupPermissions['sysop']['abusefilter-modify-restricted'] = true;
$wgGroupPermissions['sysop']['abusefilter-revert'] = true;
$wgAbuseFilterBlockDuration = '1 year';
Extension:AntiSpoof "Verhindert die Erstellung von Benutzerkonten mit gemischten Zeichensätzen, verwirrenden und ähnlichen Benutzernamen" Wird von Extension:AbuseFilter benötigt.
Extension:ConfirmEdit Ermöglicht es, ein Captcha vom Nutzer zu verlangen, wenn bestimmte Aktionen durchgeführt werden. Um den Nerv-Faktor für die Nutzer gering zu halten, sollte man die Captcha-Abfrage auf "createaccount" und "badlogin" sowie anonyme Nutzer beschränken und den Rest von der Extension:AbuseFilter erledigen lassen. Als Captcha wählt man am Besten "QuestyCaptcha" und stellt Community-spezifische Fragen, die dann weder von Bots noch von Außenseitern korrekt beantwortet werden können.
require_once( "$IP/extensions/ConfirmEdit/ConfirmEdit.php" );
$wgGroupPermissions['autoconfirmed']['skipcaptcha'] = true;
$wgCaptchaTriggers['addurl'] = false; 
require_once( "$IP/extensions/ConfirmEdit/QuestyCaptcha.php"); 
$wgCaptchaClass = 'QuestyCaptcha';
$wgCaptchaQuestions[] = array( 'question' => "Was ist XY?", 'answer' => "Z" );
Extension:SimpleAntiSpam "Ergänzt Formulare um einen einfachen Schutz vor Spambots" Einfacher Spamschutz, der wohl mittlerweile jedem halbwegs kompetenten MediaWiki-Spammer bekannt sein dürfte. Schadet jedoch auch nicht.
Extension:SpamBlacklist Blockiert das Hinzufügen von Links, die auf einer Blacklist definiert wurden. Ist einfacher anzuwenden als der AbuseFilter, dafür aber unflexibler.
Extension:TitleBlacklist Blockiert neue Seiten und Accounts, wenn sie mit einem Begriff auf der Blacklist übereinstimmen. Ist einfacher anzuwenden als der AbuseFilter, dafür aber unflexibler.
Extensions mit Spezialseiten
Extension:Admin Links Erzeugt Spezialseite, die wichtige Links für Admins auflistet; diese Seite wird bei Admins dann auch ganz oben bei den persönlichen Links verlinkt. Die in der Spezialseite enthaltenden Links sind vorgegeben und können nur mit etwas Aufwand angepasst werden:
$wgHooks['AdminLinks'][] = 'spam_protection_links';
 
function spam_protection_links( &$admin_links_tree ) {
    $section = new ALSection( wfMsg( 'spam_protection_links' ) );
    $main_row = new ALRow( 'main' );
    $main_row->addItem( ALItem::newFromEditLink( 'Spam-blacklist', wfMsg( 'adminlinks_editspamblacklist' ) ) );
		$main_row->addItem( ALItem::newFromEditLink( 'Spam-whitelist', wfMsg( 'adminlinks_editspamwhitelist' ) ) );
    $main_row->addItem( ALItem::newFromEditLink( 'Titleblacklist', wfMsg( 'adminlinks_edittitleblacklist' ) ) );
		$main_row->addItem( ALItem::newFromEditLink( 'Titlewhitelist', wfMsg( 'adminlinks_edittitlewhitelist' ) ) );
		$main_row->addItem( ALItem::newFromSpecialPage( 'AbuseFilter' ) );
		$section->addRow( $main_row );
		$admin_links_tree->addSection( $section, $next_section_header = wfMsg( 'adminlinks_users' ) );
		return true;
}
Extension:Interwiki Erzeugt eine Spezialseite zum Anpassen der Interwikilinks. Diese Extension ist ein Muss, wenn man regelmäßig auf andere Wikis verlinken oder so Dinge wie edit:Gareth und wlh:Gareth definieren will. Die Alternativen wären ein manueller Eingriff in die Datenbank (ganz schlechte Idee) oder die andere Interwiki-Extension, bei der man die Interwikidaten in einer Textdatei speichern und per ftp auf den Server hochladen muss (sehr umständlich).
require_once( "$IP/extensions/Interwiki/Interwiki.php" );
$wgGroupPermissions['*']['interwiki'] = false;
$wgGroupPermissions['sysop']['interwiki'] = true;
Extension:Renameuser Erzeugt eine Spezialseite zum Umbenennen eines Benutzers.
Extension:User Merge and Delete Erzeugt eine Spezialseite zum Vereinigen von Benutzerkonten. Das Konto, aus dem die Beiträge verschoben wurden, kann dabei gelöscht werden. Diese Extension bietet natürlich ein hohes Missbrauchspotential, weswegen das "usermerge"-Recht an so wenige Benutzer wie möglich vergeben werden sollte.
require_once( "$IP/extensions/UserMerge/UserMerge.php" );
$wgGroupPermissions['bureaucrat']['usermerge'] = true;
$wgUserMergeProtectedGroups = array( 'sysop' );
Zusatzfunktionen für Nutzer
Extension:CharInsert Über MediaWiki:Edittools können Sonderzeichen unter dem Edit-Fenster eingebunden werden. Häufig benötigte Sonderzeichen und Formatierungen kann man so bequem mit einem Klick einfügen. Siehe auch Wikipedia (en), Wikipedia (de) und MediaWiki.
Extension:DismissableSiteNotice Mit dieser Extension können Nutzer einen eventuell angezeigten Seitenhinweis ausblenden. Mit MediaWiki:Sitenotice id kann man den Seitenhinweis wieder für jeden Nutzer sichtbar machen.
Extension:Gadgets Ermöglicht das Definieren von CSS und javascript-"Helferlein", die von Nutzern in den Einstellungen aktiviert werden können; siehe Spezial:Helferlein. Viele nützliche "Helferlein" findet man auf den Seiten Wikipedia:Helferlein und Wikipedia:Gadget.
Extension:InputBox Ermöglicht das Erstellen von Eingabefeldern zur Erstellung neuer Artikel und zur Suche im Wiki. Anwendungen sieht man z.B. auf der Hauptseite.
Extension:MultiBoilerplate Erzeugt ein Auswahlmenü beim Erstellen neuer Seiten, aus dem Standardformate geladen werden können; siehe Spezial:Boilerplates und MediaWiki:Multiboilerplate.
require_once( "$IP/extensions/MultiBoilerplate/MultiBoilerplate.php" );
$wgMultiBoilerplateOptions = false;
$wgMultiBoilerplateDiplaySpecialPage = true;
Extension:RSS Ermöglicht die Darstellung eines RSS-feeds auf einer Wikiseite. Auch hier sieht man die Anwendung auf der Hauptseite.
require_once( "$IP/extensions/RSS/RSS.php" );
$wgRSSUrlWhitelist  = array( "http://(yourfeed)";
$wgRSSDateDefaultFormat = "j.n.Y H:i:s";
$wgRSSAllowLinkTag = true;
Extension:SyntaxHighlight GeSHi Mittels "<syntaxhighlight>" kann Programmcode formatiert dargestellt werden.
require_once("$IP/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php");
$wgSyntaxHighlightDefaultLang = "php";
Extension:VoteNY Ermöglicht das Bewerten von Artikeln. Wird in Zukunft wohl zur Produktbewertung verwendet werden.
Extension:WikiEditor Verbessert das Editierfenster, siehe Hilfe:Seite bearbeiten. Die Veränderungen können in den Einstellungen unter "Bearbeiten" auch abgeschaltet werden. Die folgenden Einstellungen aktivieren die funktionierenden Bestandteile der Extension und deaktivieren diejenigen mit Bugs.
require_once( "$IP/extensions/WikiEditor/WikiEditor.php" );
$wgDefaultUserOptions['usebetatoolbar'] = 1;
$wgDefaultUserOptions['usebetatoolbar-cgd'] = 1;
$wgDefaultUserOptions['wikieditor-preview'] = 1;
$wgDefaultUserOptions['usenavigabletoc'] = 0;
$wgHiddenPrefs[] = 'wikieditor-publish';
Zusatzfunktionen für Vorlagenersteller
Extension:DynamicPageList Ermöglicht das Erstellen von automatischen Listen und Tabellen aus Informationen in Wiki-Artikeln. Wird im WA so oft verwendet, dass wir eine eigene Hilfeseite zu dieser Extension haben. Alle Anwendungen sollten in Kategorie:DPL-Liste aufzufinden sein.
require_once( "$IP/extensions/DynamicPageList/DynamicPageList.php" );
ExtDynamicPageList::setFunctionalRichness(2);
ExtDynamicPageList::$respectParserCache = true;
Extension:MediaFunctions Ermöglicht das Auslesen von Dateiinformationen, inklusive Exif-Metadaten. Besonders nützlich in Verbindung mit DPL.
Extension:ParserFunctions Ermöglicht die Verwendung von logischen und weiteren nützlichen Funktionen; siehe auch Help:Extension:ParserFunctions. Besonders nützlich bei der Erstellung von Vorlagen.
require_once( "$IP/extensions/ParserFunctions/ParserFunctions.php" );
$wgPFEnableStringFunctions = true;
Extension:Variables Ermöglicht das Definieren und Verwenden von Variablen auf einer Wikiseite. Kann in einigen Fällen bei der Programmierung komplexerer Vorlagen hilfreich sein.

You hope that the rumor was wrong That mother nature goes to heaven