Hilfe:MediaWiki-Update

Aus CMO

Stand: 2. Oktober 2026

Diese Seite beschreibt, wie CMO auf eine neue Wartungsversion innerhalb derselben MediaWiki-Hauptversion aktualisiert wird, etwa von 1.43.8 auf 1.43.10. Für einen Wechsel der Hauptversion (etwa 1.43 auf 1.47) reicht dieser Ablauf nicht.

Voraussetzungen

  • SSH-Zugang über die Windows-PowerShell mit Schlüssel. Benutzername und Rechnername stehen in der WinSCP-Sitzung.
  • Das WinSCP-Terminal eignet sich nur für kurze Befehle (siehe Hinweise).
  • MediaWiki-Wurzelverzeichnis: /www/htdocs/w0206472/christian-morgenstern-online.de/cmo
  • Arbeitsordner für Sicherung und Tarball: /www/htdocs/w0206472/christian-morgenstern-online.de/sicherung (Rechte 700, vom Web aus nicht erreichbar)

Workflow

1. Versionen festlegen

Die installierte Version steht auf Spezial:Version. Die neue Version steht in der Ankündigung auf der Mailingliste mediawiki-announce.

PowerShell öffnen, verbinden und die beiden Versionsnummern als Variablen setzen:

ssh BENUTZER@RECHNER
cd /www/htdocs/w0206472/christian-morgenstern-online.de
ALT=1.43.10
NEU=1.43.11

Die Variablen gelten nur in dieser Sitzung. Nach einem Verbindungsabbruch müssen sie neu gesetzt werden.

2. Datenbank sichern

Der Cronjob legt jede Nacht einen Dump an. Wurde seitdem nichts im Wiki geändert, reicht dieser. Sonst vorher einen frischen Dump anlegen.

3. Dateien sichern

tar -cf sicherung/cmo_$ALT.tar cmo
ls -la sicherung

Das dauert einige Minuten. Das Archiv muss ungefähr so groß sein wie der Wiki-Ordner (du -sh cmo).

4. Tarball laden und entpacken

cd sicherung
wget https://releases.wikimedia.org/mediawiki/1.43/mediawiki-$NEU.tar.gz
tar -xzf mediawiki-$NEU.tar.gz
grep "MW_VERSION'" mediawiki-$NEU/includes/Defines.php

Die letzte Zeile muss die neue Versionsnummer zeigen.

5. Neuen Code ins Wiki kopieren

Zuerst prüfen, ob der Tarball eine eigene .htaccess im Wurzelverzeichnis mitbringt:

ls -la mediawiki-$NEU | grep htaccess

Gibt der Befehl nichts aus, kopieren:

cp -r mediawiki-$NEU/. ../cmo/
grep "MW_VERSION'" ../cmo/includes/Defines.php
ls -la ../cmo/.htaccess ../cmo/LocalSettings.php

.htaccess und LocalSettings.php müssen ihr altes Datum behalten. Bilder, Cache, nachinstallierte Erweiterungen und der Skin Medik bleiben unberührt, weil der Tarball sie nicht enthält.

6. Composer prüfen

cd ../cmo
ls -la composer.local.json

Existiert die Datei, die Abhängigkeiten aktualisieren:

php ../composer.phar update --no-dev

Existiert sie nicht, diesen Schritt überspringen.

7. Update-Skript ausführen

php maintenance/run.php update --quick

Am Ende muss „Done“ stehen.

8. Prüfen

Im Browser mit Strg+F5:

  • Spezial:Version zeigt die neue Version
  • Hauptseite und eine Portalseite
  • eine Gedichtseite mit Infobox und Navigationsbox
  • Anmeldung mit Zwei-Faktor-Code
  • eine Seite im Bearbeitungsmodus, Vorschau ohne Speichern

9. Aufräumen

cd ../sicherung
rm -rf mediawiki-$NEU
rm mediawiki-$NEU.tar.gz

Das Archiv cmo_$ALT.tar eine Woche behalten und dann löschen.

Rückweg

Falls nach dem Update etwas nicht funktioniert, im Domain-Ordner:

cd /www/htdocs/w0206472/christian-morgenstern-online.de
mv cmo cmo_defekt
tar -xf sicherung/cmo_$ALT.tar

Damit ist der alte Stand wiederhergestellt. Den Ordner cmo_defekt danach löschen. Die Datenbank muss nur zurückgespielt werden, wenn das Update-Skript Tabellen verändert hat. Bei Wartungsversionen ist das selten.

Hinweise

  • Das WinSCP-Terminal bricht lange Befehle mit einer Zeitüberschreitung ab. All-inkl beendet beim Trennen auch Prozesse, die mit nohup im Hintergrund laufen. Lange Befehle deshalb immer in der PowerShell ausführen.
  • ps steht auf dem Server nicht zur Verfügung. Den Fortschritt eines Vorgangs erkennt man an der Dateigröße (ls -la).
  • Eine alte composer.lock im Wiki-Ordner führt beim Update-Skript zu der Meldung, die Abhängigkeiten seien veraltet. Zeigt vendor/composer/installed.json die neuen Versionen, ist die Meldung ein Fehlalarm. Die Datei dann umbenennen und das Skript erneut starten. Beim Update auf 1.43.10 wurde sie in composer.lock.alt-2026-06-22 umbenannt.
  • Erweiterungen, die nicht im Tarball enthalten sind, werden beim Core-Update nicht aktualisiert. Das betrifft derzeit EmbedVideo, Kartographer, JsonConfig, MyVariables, SimpleCalendar, SimpleBatchUpload, TemplateStyles und den Skin Medik. Für sie erscheinen Sicherheitshinweise getrennt.
  • Bei einem Update der Hauptversion ändert sich auch der Pfad im Download-Link (/1.43/).

Verlauf

  • 2. Oktober 2026: 1.43.8 auf 1.43.10