Handbuch:Aktualisierung

From mediawiki.org
This page is a translated version of the page Manual:Upgrading and the translation is 100% complete.

Übersicht

Dateiübertragung

Eine Methode zur Übertragung der Dateien auswählen:

Vorbereitung

Lese die UPGRADE-Textdatei, die in MediaWiki enthalten ist.

  1. Überprüfe die Voraussetzungen
  2. Lese die RELEASE-NOTES-Datei
  3. Lese die UPGRADE-Datei
  4. Sichere die vorhandenen Dateien und die Datenbank
  5. Entpacke die neuen Dateien
  6. Aktualisierung der Erweiterungen
  7. Starte das Update-Skript, um die Datenbank zu überprüfen.
  8. Teste das Update.
  9. Entfernen der Überreste der alten Installationen

Überprüfe die Anforderungen

Warnung Warnung: MediaWiki von 1.32 bis 1.35.4, 1.36.2, 1.37.0 enthält ein Sicherheitsproblem, das die unberechtigte Bearbeitung beliebiger Seiten und die Ausführung beliebiger JavaScript-Dateien ermöglicht. Wenn du eine dieser Versionen verwendest und nicht auf eine neuere Version upgraden kannst, findest du unter Sicherheitsveröffentlichung Dezember 2021 – Häufige Fragen einen Workaround.
Warnung Warnung: Do not upgrade from a MediaWiki version older than 1.33 to MediaWiki 1.39.1, or you may lose data! Upgrade to MediaWiki 1.35 first. See task T326071.

MediaWiki 1.41 erfordert:

  • PHP 7.4.3+
  • Eines der folgenden:
    • MariaDB 10.3.0+
    • MySQL 5.7.0+
    • PostgreSQL 10.0+
    • SQLite 3.8.0+
Von Version 1.36 an unterstützt MediaWiki Upgrades nur in Schritten von vor zwei LTS-Releases (siehe phab:T259771). Upgrades von älteren Versionen von MediaWiki müssen stufenweise erfolgen. Das bedeutet: ein Upgrade von 1.34 oder älter auf 1.41 muss über ein Upgrade auf 1.35 (oder 1.39) erfolgen, um dann auf die gewünschte Version 1.41 zu aktualisieren.

Wenn du PostgreSQL benutzst, lese bitte auch Manual:Upgrading Postgres .

Für weitere Informationen lese bitte Handbuch:Installationsvoraussetzungen und Kompatibilität .

Lese die Versionshinweise

In der "Tarball-Distribution" (der .tar-Paket-Datei) oder unter den von Git ausgecheckten/exportierten Dateien gibt es eine Reihe von Dateien mit Großbuchstaben in den Dateinamen, von denen eine die RELEASE-NOTES (wiki) enthält. Öffne diese jetzt und finde heraus, was in diesem Release geändert wurde. Auch die Anweisungen in der UPGRADE-Datei sollten beachtet werden.

Ausstehende Aufträge löschen

Aus Performance-Gründen verzögern sich einige Aktionen in der Datenbank und werden vom job queue verwaltet. Diese Aufträge werden in der Datenbank gespeichert und enthalten Parameter mit Informationen über Aktionen, die sie ausführen sollen. Es wird dringend empfohlen, diese ausstehenden Jobs vor dem Upgrade des Wikis auszuführen, um zu vermeiden, dass sie fehlschlagen, falls sich die Parameterspezifikation dieser Jobs mit der neuen Version ändert. Verwende runJobs.php , um alle ausstehenden Aufträge auszuführen und die Warteschlange zu löschen, bevor du das Upgrade durchführst.

Sichern vorhandener Dateien und der Datenbank

Vollständige Anleitung: Anleitung:Backup eines Wikis

Während die Upgrade-Skripte gut in Stand gehalten und robust sind, können dennoch Dinge schief gehen. Bevor du das Datenbank Schema aktualisierst, mach ein vollständiges Backup deines Wiki, inklusive der Datenbank und den Dateien:

  • der Inhalt deines Wikis, von der Datenbank (stelle sicher, den richtigen Zeichensatz zu haben, überprüfe dies zuerst in der LocalSettings.php). Es wäre auch gut, zu dem SQL Datenbank Dump zusätzlich einen XML-Dump zu erstellen.
  • Bei MySQL ist für einen SQL- bzw. XML-Dump der mysql Befehl zu verwenden:
mysqldump --user=wikidb_user --password=wikidb_userpassword wikidb > file.sql
mysqldump --user=wikidb_user --password=wikidb_userpassword wikidb --xml > file.xml
  • Bei PostgreSQL ist für einen Datenbank-Dump der pg_restore Befehl zu verwenden:
pg_dump --create -Fc wikidb > file.db.dump
  • Bei SQLite gibt es ein MediaWiki Skript um ein Backup zu erstellen:
php wikifolder/maintenance/sqlite.php --backup-to file
  • Bilder und andere Mediendateien (der Inhalt des images Verzeichnis, benutzerdefiniertes Logo /skins/common/images/wiki.png)
  • Konfigurationsdateien, bspw LocalSettings.php und .htaccess (wenn vorhanden)
  • MediaWikis Programmdateien, inklusive allen Benutzeroberflächen (Skins) und Erweiterungen (Extensions), besonders wenn du diese modifiziert hast.

Neue Dateien entpacken

Verwendung eines Tarball Paketes (.tar)

Du kannst die neuen Dateien via FTP oder Befehlszeile einfügen. Nutze die Befehlszeile, wenn du dazu Zugang hast! Die Befehlszeile zu verwenden ist viel schneller, als jede einzelne Datei der Tausend via FTP hochzuladen.

Du solltest den entpackten tarball in ein neues und leeres Verzeichnis auf dem Server ablegen. Wenn Du den tarball stattdessen direkt in die bestehende alte Version entpackst, solltest Du die Anweisungen auf der Seite Back up existing files and the database beachten. Andernfalls, falls Du irgendwelche Anpassungen vorgenommen hast, werden diese so überschrieben, dass keine Möglichkeit mehr bleibt, diese wieder herzustellen. Wenn Du dazu die neue Version direkt über die bestehende entpackst, können Dateien zurückbleiben, welche die neue Version beim updaten beeinflussen. Es ist daher empfehlenswert, die Dateien in einem neuen Verzeichnis zu entpacken und die Anpassungen im neuen Verzeichnis vorzunehmen (LocalSettings.php, Bildverzeichnis, Erweiterungen und andere Anpassungen wie eigene Skins).

FTP oder grafisch

Falls kein Kommandozeilen-Zugriff auf den Server möglich ist (zum Beispiel bei Shared Hosting), kann das MediaWiki tarball Archiv lokal auf einen Computer heruntergladen und mittels 7zip entpackt werden.

Nachdem alle Dateien und Ordner lokal entpackt wurden, können sie mit einem beliebigen FTP Programm auf den Server hoch geladen werden.

cPanel Datei-Manager

cPanel ist eine beliebte Schnittstelle, die von vielen Webhostern bereitgestellt wird. Diese Methode ist sehr effizient, da die Dateien auf dem Server selbst entpackt werden.

  • Wechsle in das Verzeichnis, welches dein Wiki-Ordner enthält.
  • Lade die Datei mediawiki-1.xx.x.tar.gz hoch. Möglicherweise musst du „Neu laden“ anklicken, um ihn zu sehen.
  • Entpacke die Datei mediawiki-1.xx.x.tar.gz. Noch einmal „Neu laden“.
  • Überprüfe, ob der Ordner mediawiki-1.xx.x vorhanden ist.
  • Lösche die tar.gz-Datei.
  • Kopiere alle erforderlichen Skins, Erweiterungen, Bildordner, Anpassungen und die LocalSettings.php in den neuen Ordner. (Siehe unten.)
  • Wenn du bereit bist, update.php auszuführen, benenne deinen alten Wiki-Ordner und deinen neuen Wiki-Ordner um. (z. B. 'w' wird zu 'w1.34' und dann wird 'mediawiki1.35.0' zu 'w'.) Dieser Schritt kann leicht rückgängig gemacht werden, wenn du auf Probleme stößt.

Kommandozeile

Unter Umständen kann es nötig sein, das Kommando als sudo auszuführen, falls der aktuelle Benutzer auf den wiki Installationsverzeichnissen keine vollständigen Schreibrechte haben sollte. Beim enttarren (entpacken) eines tarball Pakets wird normalerweise ein neues Verzeichnis für die neue wiki Version erstellt. Danach müssen die die alten Konfigurationsdateien und das image Verzeichnis, in dem sich Bilder befinen, aus dem alten, vorherigen Installationsordner in den neuen kopiert werden:

cd /path/to/your/new/installation/ wget https://releases.wikimedia.org/mediawiki/1.41/mediawiki-1.41.1.tar.gz tar xvzf mediawiki-1.41.1.tar.gz rm mediawiki-1.41.1.tar.gz

(Open)Solaris Benutzer sollten gtar benutzen, oder:

$ gzip -dc mediawiki-1.41.1.tar.gz | tar xf -

Andere Dateien

Nach dem entpacken das tarball Archivs, sollten einige Dateien und Ordner aus dem alten Installationsverzeichnis in das neue kopiert oder verschoben werden:

  • LocalSettings.php - enthält deine alten Konfigurationseinstellungen.
  • Das images (oder uploads in älteren Versionen) Verzeichnis, das alle ins wiki hochgeladenen Dateien enthält, es sei denn es wurde ein anderes Uploadverzeichnis ausgewählt. Die Zugriffsrechte (Permissions) und der Besitzer (Ownership) müssen geändert werden. find ./images -type d -exec chmod 755 {} \; und chgrp -R apache images (beispielweise falls der web user "apache" ist).
  • Einige Erweiterungen im extensions-Verzeichnis. Du solltest immer aktualisierte Erweiterungen erhalten; Es ist nicht garantiert, dass alte Erweiterungen mit einer neueren Version von MediaWiki funktionieren.
  • Falls ein benutzerdefiniertes Logo verwendet wird, muss diese Datei ebenfalls aus der Sicherungsdatei wiederherstellt werden. In Versionen vor 1.24 befindet es sich normalerweise im Verzeichnis skins/common/images/. Ab Version 1.24 im Verzeichnis resources/assets/ oder images/, je nach dem welches zur Benutzung ausgewählt wurde. Danach dies in der LocalSettings.php hinzufügen, zum Beispiel $wgLogo = "$wgScriptPath/images/logo.png";
  • Bei 1.35 müssen die Logos ggf. aus wgLogos wiederhergestellt werden. Dann ist beispielsweise folgendes zur LocalSettings.php hinzuzufügen: $wgLogos = [ '1x' => "path/to/1x_version.png", '2x' => "path/to/2x_version.png", 'svg' => "path/to/svg_version.svg" ];
  • benutzerdefinierte Skins aus dem skins-Verzeichnis
  • jede Veränderung, die in den alten Installationsdateien oder Erweiterungen durchgeführt wurde.
  • jede .htaccess Datei (falls Apache verwendet wird und irgendwelche Regeln in der .htaccess eingetragen wurden).

Mache diesen neuen Ordner zum veröffentlichten Ordner auf dem Webserver, oder benenne das alte Installationsverzeichnis um und benenne dann das neue um, um den alten Namen zu erhalten. Ändere den Besitz und die Gruppe von allem, damit der Webserver Zugang zu dem Dateien hat.

Git verwenden

Wenn du Git verwendest, exportiere die Dateien an einen sauberen Speicherort und kopiere dann die alten benutzerdefinierten Dateien wie im vorherigen Abschnitt beschrieben an den neuen Speicherort.

Du musst auch einige externe PHP-Bibliotheken mit Composer oder einer bereitgestellten Sammlung installieren, die für die Wikimedia Wiki-Farm gepflegt wird. Weitere Details zur Installation und Aktualisierung externer Bibliotheken findest du in der Git-Download-Dokumentation.

Verwendung eines Patches

Eine kleine Patchdatei wird in der Regel für ein Minor-Versions-Upgrade zur Verfügung gestellt. Du musst patch manuell herunterladen, um dies verwenden zu können. Nach dem manuellen Download von der MediaWiki Release-Site extrahierst du sie oder folgst den Anweisungen mit wget unten. Patches sind inkrementell, du kannst keine Version überspringen.

  1. cd in dein Hauptverzeichnis von MediaWiki (das mit LocalSettings.php).
  2. Lade die Patchdatei herunter und entpacke sie mit gunzip.
  3. Verwende patch -p1 --dry-run, um zu überprüfen, was geändert wird (z.B.', patch -p1 --dry-run -i mediawiki-x.xx.x.patch).
  4. Wenn alles in Ordnung ist, führe patch erneut ohne --dry-run aus.

Überprüfe deine Special:Version und du solltest die neue Versionsnummer sehen.

Verbliebene Dateien, die Fehler verursachen können

Wenn die neue Version in eine altes, bestehendes Installationsverzeichnis entpackt wurde, können einige alte Dateien Probleme mit der neuen Version verursachen.

Erweiterungen aktualisieren

Einige Erweiterungen wurden angepasst, um mit der neuen Version der MediaWiki-Software arbeiten zu können. Stelle sicher, dass du die jeweils aktuelle Version verwendst. Eventuell musst du Updates für spezifische Erweiterungen manuell einspielen.

Verschiedene Tarball-Pakete enthalten Untergruppen von Erweiterungen mit eigener Versionierung, die dabei helfen, die passende Version für das vorhandene MediaWiki-Release zu finden.

Die Erweiterung Distributor kann dabei helfen, den richtigen Snapshot einer Erweiterung für die Zusammenarbeit mit der jeweils unterstützten MediaWiki-Version zu finden.

Falls du viele Erweiterungen herunterladen möchtest, ist vermutlich das Herunterladen von Git die beste Lösung. Wenn Git nicht zur Verfügung steht, aber eine große Zahl von Erweiterungen angepasst werden muss, sollte mwExtUpgrader zu Rate gezogen werden.

Deine LocalSettings.php anpassen

Wenn die vorhandene LocalSettings.php aus der alten Version wiederverwendet wird, muss sie vermutlich angepasst werden:

Den Skin registrieren

MediaWiki Version:
1.24

Ab MediaWiki 1.24 sind die paketierten Skins wie Vector, Monobook, Modern und CologneBlue nicht länger Bestandteil des MediaWiki-Kerns und müssen explizit in der LocalSettings.php registriert werden. Andernfalls wird MediaWiki davor warnen, dass keine Skins installiert wurden.

Folgendes muss bei einem Upgrade von einer Version vor 1.24 in die LocalSettings.php eingefügt werden, wenn eine dieser Skins verfügbar sein soll:

wfLoadSkin( 'Vector' );
wfLoadSkin( 'MonoBook' );
wfLoadSkin( 'Modern' );
wfLoadSkin( 'CologneBlue' );

Andere Skins sind eventuell noch nicht an das neue Skin Registration System angepasst. Sollte es bei der Verwendung zu Problemen kommen, ist die entsprechende Dokumentation der Skin zu beachten, um die korrekte Registrierung vorzunemen.

Erweiterungen registrieren

MediaWiki Version:
1.25

Seit MediaWiki 1.25 kommt ein neues extension registration System zum Einsatz.

Vormals erfolgte die Einbindung in LocalSettings.php in der folgenden Form:

require_once "$IP/extensions/Cite/Cite.php";
require_once "$IP/extensions/Gadgets/Gadgets.php";
require_once "$IP/extensions/ImageMap/ImageMap.php";
require_once "$IP/extensions/InputBox/InputBox.php";
require_once "$IP/extensions/Nuke/Nuke.php";
require_once "$IP/extensions/ParserFunctions/ParserFunctions.php";
require_once "$IP/extensions/Poem/Poem.php";
require_once "$IP/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php";
require_once "$IP/extensions/WikiEditor/WikiEditor.php";

Das schreibt sich jetzt so:

wfLoadExtension( 'Cite' );
wfLoadExtension( 'Gadgets' );
wfLoadExtension( 'ImageMap' );
wfLoadExtension( 'InputBox' );
wfLoadExtension( 'Nuke' );
wfLoadExtension( 'ParserFunctions' );
wfLoadExtension( 'Poem' );
wfLoadExtension( 'SyntaxHighlight_GeSHi' );
wfLoadExtension( 'WikiEditor' );

Erweiterungen werden an das neue Registrierungssystem angepasst. Erweiterungen die noch nicht angepasst sind, sollten über den alten Weg eingebunden werden. Mehr Informationen enthalten die jeweiligen Installationsanweisungen.

DefaultSettings.php-Zeile löschen (wenn nötig)

Ältere Versionen von MediaWiki hatten automatisch eine Zeile in LocalSettings.php generiert, die DefaultSettings.php abruft. Seit Version 1.38 ist diese Zeile veraltet und funktioniert mit vielen Erweiterungen nicht. Es muss entfernt werden.

Entferne die folgende Zeile:

require_once( "$IP/includes/DefaultSettings.php" );

Andere Variablen

Einige Variablen könnten obsolet geworden oder gar entfernt worden sein. Diese in LocalSettings.php zu haben wird für gewöhnlich keinen Effekt haben. Neue Variablen können in neueren Versionen hinzugefügt worden sein, oder einige existierende Variablen ihren Typ geändert haben. Normalerweise werden bei der Entwicklung vernünftige Voreinstellungen für die Variablen gewählt, und im Falle eine Typänderung wird auf Rückwärtskompatibilität geachtet. Auf jeden Fall sollten die Release-Notes beachtet werden um solche Ändernungen erkennen zu können.

Das Update-Skript ausführen

Du kannst die MediaWiki-Datenbank auf zwei Arten aktualisieren: Entweder von der Kommandozeile oder vom Webbrowser aus. Wenn du Shell-Zugang zu deinen Server hast, wird ein Upgrade von der Kommandozeile aus empfohlen, da dies das Risiko verringert, dass der Upgrade-Prozess durch einen Timeout oder einen Verbindungsreset unterbrochen wird.

Das Skript wird auch dich benachrichtigen, wenn eine der PHP-Abhängigkeiten des MediaWiki-Kerns veraltet ist.

Kommandozeile

Der Zugriff auf den Server erfolgt über eine SSH-Shell oder vergleichbares. Wenn dein PC unter Microsoft Windows arbeitet, benötigst du ein Tool wie PuTTY für den SSH-Zugriff. Aus der Kommandozeile oder Shell wechselst du ins Wartungsverzeichnis ($maint-dir) und führst das Update-Skript aus:

MediaWiki Version:
1.40
$ php maintenance/run.php update.php
MediaWiki Version:
1.39
$ php maintenance/update.php

Wenn auf einem Linux-Server eine Fehlermeldung erscheint, versuche es mit dem Benutzerkonto root (sudo). Hinweis für einfache Installationen unter Windows (z.B. mit XAMPP ): Stelle zunächst sicher, dass der Webserver (z.B. Apache) und die Datenbank (wie MySQL) laufen. Starte dann update.php: Rechts klicken, "Öffnen mit..." auswählen und dann PHP.exe auswählen. Das sich öffnende Kommandozeilenfenster wird sich selbstständig schließen, wenn das Schema-Update erfolgreich abgeschlossen ist.

Mediawiki wird das Datenbankschema überprüfen und notwendige Tabellen und Spalten hinzufügen, damit es unter dem neuen Code arbeiten kann.

Falls du eine Gemeinsame Datenbank nutzt, solltest du den --doshared Parameter übergeben, wenn die shared tables angepasst werden sollen. Andernfalls werden sie vom Update-Skript nicht berücksichtigt.

What to do if it says "MediaWiki requires PHP x.y.z or higher; you are using PHP x.w.v"

See Manual:Common errors and symptoms#MediaWiki requires PHP 7.4.3 or higher; you are using PHP 7.3.17

Was ist zu tun, wenn das update.php nach einer kurzen Pause abbricht und zum Kommandoprompt zurückkehrt?

Dies kann durch eine Fehlfunktion einer Erweiterung oder Skin verursacht werden.

  • Überprüfe, ob alle Erweiterungen, die in LocalSettings.php aufgerufen werden, auch vorhanden sind
  • Stelle sicher, dass für alle Erweiterungen die korrekten Registrierungsmethoden verwendet werden (wfLoadExtension vs. require_once)
  • Kommentiere die erste Hälfte der Erweiterungen in LocalSettings.php aus. Wenn update.php dann durchläuft, mache die Hälfte der Kommentierung rückgängig (also auf 1/4 der Erweiterungen). Läuft update.php nicht durch, versuche es mit dem anderen Viertel usw. Wiederhole den Vorgang, bis update.php funktioniert, um die fehlerhafte Stelle zu finden.

Was ist zu tun, bei der Fehlermeldung "ALTER command denied to user" (oder ähnlich)

In einigen Fällen brechen Skripte ab, mit Fehlermeldungen wie:

Error: 1142 ALTER command denied to user 'wiki'@'localhost' for table 'mytable' (localhost)
ERROR: must be the owner of the mytable relation 

Hier ist sicherzustellen, dass in der LocalSettings.php (im Hauptverzeichnis der Installation) die Variablen $wgDBadminuser und $wgDBadminpassword definiert sind. Das sind der Nutzer und sein Password, die das Skript benötigt um auf die Datenbank zuzugreifen.

In einigen Fällen wird scheinbar eine alte $wgDBmwschema Variable anstelle von $wgDBname eingelesen, insbesondere bei Verwendung von MySQL. Wenn das der Fall ist, ist die Definition des $wgDBmwschema aus der LocalSettings.php zu entfernen.

Was ist zu tun bei der Fehlermeldung 'register_argc_argv is set to false'

Wenn die folgende Fehlermeldung erscheint:

Cannot get command line arguments, register_argc_argv is set to false
  1. Im Wartungsverzeichnis (/maintenance) ist die Datei 'php.ini' entweder zu bearbeiten oder zu erstellen.
  2. Die folgende Zeile ist zu ergänzen:
register_argc_argv=true
  1. Anschließend ist php update.php erneut auszuführen

Web-Browser

MediaWiki Version:
1.17
Siehe auch update.php

Falls die Datenbank groß ist und stark produktiv genutzt wird, solltest du auf eine Nutzung des Web-Updater verzichten, weil der Update-Prozess ein Time-Out verursachen kann, wenn die maximum_execution_time erreicht wird. In diesem Fall solltest du update.php über das Kommandozeilen-Interface starten (nicht über das Web). Was genau "zu groß" bedeutet, hängt von deinem Server ab (z.B. seine Performance, die Serverlast und davon wie lange die maximale Ausführungszeit für PHP gestattet ist). Wenn dein Wiki zu groß für den Web-Updater ist und dein Hoster keinen Shell-Zugriff gestattet, dann bleibt dir nichts anderes übrig als auf ein anderes Paket oder einen anderen Anbieter zu wechseln, damit ein Shell-Zugriff möglich wird.

  1. Immer sichern bevor du eine Datenbankwartung durchführst.
  2. Navigiere im Webbrowser zu /mw-config/index.php Befindet sich dein Wiki z. B. bei http://example.org/w/index.php, dann navigiere zu http://example.org/w/mw-config/index.php.
  3. Wähle deine Sprache und klicke auf Weiter.
  4. Die vorhandene Installation sollte gefunden werden. Folge den Anweisungen auf dem Bildschirm, um das Upgrade durchzuführen.
    Wenn nach dem "Upgrade Key" gefragt wird, öffne die LocalSettings.php -Datei und suche nach dem Schlüssel, der $wgUpgradeKey zugewiesen ist.

Es kann vorkommen, dass der Web-Updater nicht zu arbeiten scheint: Anstelle der Sprachauswahl erscheint eine leere Wiki-Seite, eventuell mit einigen Fehlermeldungen. In diesem Fall ist es wahrscheinlich, dass der Server URL Rewrites nutzt (auch bekannt als Kurze URLs). Dadurch wird anstelle des Updaters im Verzeichnis "mw-config/" die leere Wiki-Seite "Mw-config/" (mit großem "M") angezeigt. In diesem Fall ist die ".htaccess"-Datei für die Dauer des Updates umzubenennen, dann sollte der Zugriff auf den Web-Updater möglich sein.

Warnung Warnung: Bei Nutzung dieser Methode ist es wichtig, die Namensänderung der .htaccess-Datei wieder rückgängig zu machen, nachdem das Upgrade-Skript durchgelaufen ist! Ansonsten werden die kurzen URLs und anderes nicht mehr funktionieren!


Das Update testen

Sobald das Upgrade fertiggestellt ist, besuche das Wiki und überprüfe, dass folgende Funtkionen wie erwartet funktionieren:

  • Seiten ansehen
  • Seiten bearbeiten
  • Dateien hochladen
  • Besuche Special:Version und überprüfe, dass die gezeigte Version korrekt ist und dass alle Extensions gelistet sind.

Entfernen der Dateien der alten Installation

Wenn die vorige Installation in einen anderen Ordner kopiert wurde, muss dieser vollständig entfernt werden oder der Zugriff aus dem Web ist zu verhindern. Wichtig ist es, keine Überreste alter Installationen zugreifbar auf dem Server zu belassen, da somit der Zweck des Upgrades verfehlt wird, und der Server angreifbar werden könnte.

Häufig gestellte Fragen

Wie schwierig ist es zu aktualisieren?

Wenn die einzige geänderte Datei die LocalSettings.php ist, und das Upgrade von Version 1.5 oder größer erfolgt, ist der Prozess recht einfach. Die reine Arbeitszeit beträgt einige Minuten. Die Anpassung des Datenbankschemas kann einige Zeit dauern, dies hängt vom Umfang der Datenbank ab. Bei großen Wikis mit Millionen von Seiten kann dies einige Stunden dauern, bei typischen Wikis mit einigen Tausend Seiten ist es in Sekunden erledigt.

Kleinere Updates innerhalb der gleichen Hauptversion, beispielsweise von 1.40.0 auf 1.40.3 erfordern keinerlei Anpassung des Datenbankschemas. Das einspielen der neuen Dateien recht aus. Die Datenbank benötigt kein Update, daher ist es nicht notwendig, das Updater-Skript auszuführen.

Aufrüsten von Version 1.4 oder früher kann kompliziert werden, da die Unterstützung für andere Zeichensätze als UTF-8 ausgebaut wurde. Außerdem wurde die Art Texte zu speichern geändert. Hinweise dazu finden sich im entsprechenden Abschnitt der UPGRADE Datei

Schwierig wird es, wenn der Quellcode geändert wurde und diese Änderungen nicht überschrieben werden sollen. Tools wie diff, patch, Meld, oder WinMerge können hier hilfreich sein. Auch nicht mehr gewartete Erweiterungen können zu Problemen führen. Erweiterungen sollten immer zusammen mit dem MediaWiki upgedatet werden.

Wird mit einer modifizierten oder kundenspezifischen Skin gearbeitet, muss diese höchstwahrscheinlich an die neue MediaWiki-Version angepasst werden.

Anstatt jedes Mal die "globalen" css und js (JavaScript) Dateien zu erneuern, kann der Code auch einfach auf den Seiten "MediaWiki:Common.css" und "MediaWiki:Common.js" der Installation untergebracht werden. Da diese Teil der Datenbank sind, die ja beim Update wiederverwendet wird, müssen die entsprechenden MediaWiki-Kerndateien nicht mehr gepatcht werden.

Kann ich ein Upgrade von einer sehr alten Version in einem Schritt durchführen?

MediaWiki Version:
1.4

Das kommt darauf an: Bei einem Upgrade von MediaWiki 1.4 oder älter sollte zunächst auf die Version 1.5 umgestellt werden. Bei einem Upgrade eines Wiki auf Basis von Latin-1 ist das Skript "upgrade1_5.php zu nutzen (findet sich in MediaWiki 1.5), um die relevanten Teile der Datenbank auf UTF-8 zu konvertieren ($wgUseLatin1 muss in den LocalSettings.php auf true gesetzt werden damit es funktioniert) Anschließend ist update.php auszuführen, und dann die $wgLegacyEncoding -Option in der LocalSettings.php auf die Codierung zu setzen, die bisher im Wiki verwendet wurde (z.B. windows-1252). Dies ist die grundsätzliche Vorgehensweise, wie von Wikipedia und anderen Wikimedia-Foundation-Seiten Upgrades von MediaWiki 1.4 auf 1.5 durchgeführt wurden - siehe hierzu auch einige relevante Anmerkungen auf Wikitech. Eventuell muss auch zunächst ein Upgrade auf MediaWiki 1.4 durchgeführt werden, bevor man das upgrade1.5-Skript ausführen kann. Soll ein Datenbank-Dump des Latin-1 Wiki durchgeführt werden (z.B. bei MySQL), muss sichergestellt sein, dass der Typ des old_text Feldes in der text Tabelle mediumblob ist, und nicht mediumtext, um Fehler bei der Zeichencodierung zu vermeiden.

MediaWiki Versions:
1.5 – 1.35

Ein Upgrade von Version 1.5 oder jünger auf 1.35 kann in einem Schritt durchgeführt werden. Die überwiegende Mehrzahl der Berichte und das automatische Testing lassen den Schluss zu, dass das Upgrade in einem Schritt gut funktioniert. Wer es nicht glaubt, lese bitte dieses Maillist Posting. Allerdings sollte beachtet werden, dass die Wahrscheinlichkeit auf PHP-Fehlermeldungen zu stoßen mit der Anzahl der Versionssprünge steigt. Du hättest diese Fehler sowieso erhalten, wenn du nicht Versionen übersprungen hättest, aber die Fehler wären mit jedem einzelnen Update verbunden gewesen. Durch die mehrfachen Versionssprünge treten sie lediglich gleichzeitig auf. Das macht das Upgrade vielleicht etwas komplizierter, aber insgesamt ist der Aufwand geringer.

MediaWiki Version:
1.35

Ein Upgrade auf MediaWiki 1.36 wird lediglich in Abständen von zwei LTS-Versionen unterstützt (phab:T259771). Das bedeutet, dass für jede ältere Version zuerst auf 1.35 und dann auf 1.36 umgestellt werden muss.

Sollte ich zuerst ein Backup vornehmen?

Kurzantwort: Ja.

Lange Antwort: Es hängt davon ab a) wie sehr du deine Daten wertschätzt, b) wie schwer es ist, ein Backup anzulegen c) wie sicher du hinsichtlich MySQL-Wartung und Administration bist.

Ein fehlerhafter Abbruch kann die Datenbank in einem inkonsistenten Zustand zwischen zwei Versionen hinterlassen. Bei einem PHP- oder MySQL-Fehler während des Upgrade wird die Datenbank eventuell nur teilweise umgestellt. In solchen Situation können aufwändige manuelle Anpassungen erforderlich werden. Auf jeden Fall wird es der einfachere Weg sein, vor dem Durchlauf von update.php ein Datenbank-Backup anzulegen. Alles andere kann Stunden nutzloser Arbeit verursachen.

Wiederherstellungen sind oft komplex. Die ehrenamtlichen Mitarbeiter im Support sind selten begeistert, wenn ein Backup unterlassen wurde und dann die Schäden aus einem fehlgeschlagenen Upgrade beseitigt werden müssen. Die bessere Variante ist, das Backup zurück zu spielen und eine Fehlermeldung beim MediaWiki-Projekt einzustellen, wenn der Upgrade-Prozess auf Fehler läuft.

Kann ich meine LocalSettings.php behalten?

Ja, aber es sind vermutlich einige kleinere Anpassungen vorzunehmen. Das Format der LocalSettings.php ist in hohem Maße rückwärtskompatibel. Änderungen, die die LocalSettings.php-Kompatibilität beeinträchtigen, werden im Abschnitt "Konfigurationsänderungen" der Versionshinweise dokumentiert.

Kann mein Wiki während des Upgrades online bleiben?

Generell ja, auch wenn Git es eventuell zeitweise (für ein paar Sekunden) unterbrechen kann, wenn das Upgrade via Git erfolgt.

Bei einem Update zwischen Unterversionen des MediaWiki müssen lediglich die Quelldateien eingespielt werden.

Anmerkung: Das Folgende setzt Zugriff per Kommandozeile voraus. Bei einem Upgrade zwischen Hauptversionen der MediaWiki-Software ist die folgende Prozedur zu bevorzugen:

  1. Auspacken der neuen Version von MediaWiki in ein neues Verzeichis
  2. Vorbereitung des neuen Verzeichnisses: Kopieren der LocalSettings.php vom alten ins neue Verzeichnis, ebenso alle vorhandenen Erweiterungen und Skins. Überprüfe die Einstellungen für $wgLogo und $wgLogos in LocalSettings.php und, wenn nötig, kopieren der Logo-Datei in das neue Verzeichnis.
  3. Anhand der Release Notes überprüfen, ob Änderungen in der LocalSettings.php notwendig sind.
  4. Bearbeite im alten Verzeichnis LocalSettings.php und füge den folgenden Code ein. Dadurch wird die Datenbank für normale Wiki-Aktivitäten in den Lesemodus versetzt, ohne dass deine eigenen Aktualisierungsaktionen eingeschränkt werden. Die Meldung wird angezeigt, wenn du versuchst, die Daten während des Upgrade-Prozesses zu bearbeiten:
    $adminTask = ( PHP_SAPI === 'cli' || defined( 'MEDIAWIKI_INSTALL' ) );
    $wgReadOnly = $adminTask ? false : 'Upgrading to MediaWiki 1.41.1';
  5. Start des Update-Skripts oder des Web Updaters im neuen Verzeichnis.
  6. Kopieren der Bilddateien im Unterverzeichnis /images vom alten in das neue Verzeichnis.
  7. Vertauschen des alten und des neuen Verzeichnisses durch umbenennen. (Dadurch wird die Datenbank wieder beschreibbar, denn $wgReadOnly wurde nur im alten Verzeichnis LocalSettings.php gesetzt).

Warum aktualisieren?

Eintragen in die mediawiki-announce Mailing-Liste um über neue Versionen informiert zu werden.

Neuere Veröffentlichungen enthalten Sicherheitsupdates, die die Wikis und die Webhoster, auf denen sich die Wikis befinden vor Vandalismus schützen. Ältere Versionen enthalten Sicherheitslücken und Bugs (siehe Versionszyklus ). Dies alles sind gute Gründe, weshalb man aktualisieren sollte.

Neue Versionen bieten neue Möglichkeiten, in den Release Notes finden sich Details. Hier eine Übersicht als Argumentationshilfe, um den Aufwand für das Upgrade eine alten Version zu rechtfertigen:


Siehe auch