MediaWiki/Update: Unterschied zwischen den Versionen

Aus Foxwiki
Zeile 55: Zeile 55:


= Aktualisierungsskript =
= Aktualisierungsskript =
== Das Update-Skript ausführen ==


Sie können die MediaWiki-Datenbank auf zwei Arten aktualisieren: Entweder von der Kommandozeile oder vom Webbrowser aus. Wenn Sie Shell-Zugang zu Ihrem Server haben, 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.  
Sie können die MediaWiki-Datenbank auf zwei Arten aktualisieren: Entweder von der Kommandozeile oder vom Webbrowser aus. Wenn Sie Shell-Zugang zu Ihrem Server haben, 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.  
Zeile 63: Zeile 61:


=== Kommandozeile ===
=== Kommandozeile ===
 
$ php update.php
Access the command line of your server or an SSH shell or similar. You can access the command line by connecting to your server via SSH. If the local PC you are working on runs Microsoft Windows, you will need a tool like [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html PuTTY] to use SSH. From the command line or the Shell, change to the <tt>maintenance</tt> directory and execute the [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:update.php update script]:
 
$ php update.php
 
On a Linux server if you get an error try performing the same command as root (<tt>sudo php update.php</tt>). Note for simple installations on Windows (e.g. with [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Installing_MediaWiki_on_XAMPP XAMPP]): First make sure that your web server (such as Apache) and your database (such as MySQL) are running. Then run <tt>update.php</tt>: right-click it, select Open With, and browse to PHP.exe. The resulting command prompt window will likely autoclose when the schema upgrade completes.
 
You might see a message that your PHP version is too old and that MediaWiki needs a newer version. After that message the update aborts. Reason for this error is that the command line can use another PHP version than that one which you have when you execute MediaWiki from the web server. When you get this message you should check, if you can execute a newer PHP version on the shell by using a different command: That might e.g. be php5 or php56. If another version is available and - if so - under which name, depends on the setup of your server. If it does not work, ask your hoster; they will surely know.
 
MediaWiki will inspect the existing schema and update it to work with the new code, adding tables and columns as needed.
 
If you use a [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Shared_database Shared database], you should pass the <tt>--doshared</tt> parameter if you want the shared tables to be updated. Otherwise they won't be touched by the update script.
 
==== What to do if php update.php fails to do anything, resulting in a quick pause and then return to command prompt ====
 
This can be caused by a malfunctioning extension or skin. * Check that all extensions and skins called for in LocalSettings.php are present
 
* Check that extensions are using the correct registration method (wfLoadExtension vs. require_once)
 
* Comment out extensions one by one in local settings until update.php works to find the one that is failing
 
 
 
==== What to do in case of "ALTER command denied to user" error (or similar) ====
 
In case the scripts abort with a message similar to:
 
Error: 1142 ALTER command denied to user 'wiki'@'localhost' for table 'mytable' (localhost)
ERROR: must be the owner of the mytable relation
 
This means that you should check that you have defined [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgDBadminuser $wgDBadminuser] and [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgDBadminpassword $wgDBadminpassword] in your [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:LocalSettings.php LocalSettings.php] file (in the main directory). These are the user and password needed by this script in order to access to the database.
 
In some cases, an old $wgDBmwschema variable (for Postgres) seems to be read for the table name to update instead of $wgDBname, even when mysql is used. If this is the case, just get rid of the $wgDBmwschema definition in LocalSettings.php.
 
==== What to do in case of "unexpected T_STRING" error ====
 
Individuals running update.php from the command line may encounter the following error:
 
syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' \
in ~/maintenance/commandLine.inc on line 13
 
Dieser Fehler tritt auf, wenn update.php unter php4 ausgeführt wird.
 
Individuals who have their site hosted by providers who provide both php4 and php5 should take the following steps: # from the command line, enter the command 'whereis php5'
 
# once you have discerned the location of the php5 path, list the contents of php5/bin directory
 
# once you've determined the name of the php executable (either php or php5), type in the entire path to execute update.php
 
 


Unten ist ein Beispiel:  
Unten ist ein Beispiel:  
Zeile 119: Zeile 68:
$ ls -la /usr/local/php5/bin
$ ls -la /usr/local/php5/bin
$ /usr/local/php5/bin/php update.php
$ /usr/local/php5/bin/php update.php
==== What to do in case of 'register_argc_argv is set to false' error ====
You may encounter the error:
Cannot get command line arguments, register_argc_argv is set to false# Go to ~/maintenance. Either edit an existing 'php.ini' file, or create one.
# Add a line as follows:
register_argc_argv=true# Re-run php update.php


=== Web-Browser ===
=== Web-Browser ===
{| style="border-spacing:0;width:4.962cm;"
{| style="border-spacing:0;width:4.962cm;"
|- style="border:none;padding:0.049cm;"
|- style="border:none;padding:0.049cm;"

Version vom 26. Februar 2021, 11:49 Uhr

Gründe für ein Update

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.

  • vorhandene Sicherheitslücken beheben
  • Bug-Fixes


Unterschied Update / Upgrade

Backup

SQL Datenbank Dump

mysqldump --user=wikidb_user --password=wikidb_userpassword wikidb > file.sql

Download

https://www.mediawiki.org/wiki/Download/de

Entpacken

Archiv entpacken

$ wget https://releases.wikimedia.org/mediawiki/1.35/mediawiki-1.35.1.tar.gz
$ tar -xzf mediawiki-1.35.1.tar.gz

Zugriffsrechte anpassen

# chown -R web7.client3 mediawiki-1.35.1

Daten von alter Installation übertragen

  • LocalSettings.php
  • images
  • extensions
  • skins/common/images/
  • resources/assets/
  • Danach dies in der LocalSettings.php hinzufügen, zum Beispiel $wgLogo = "$wgScriptPath/images/logo.png";
  • benutzerdefinierte Skins aus dem skins Verzeichnis
  • jede .htaccess Datei (falls Apache verwendet wird und irgendwelche Regeln in der .htaccess eingetragen wurden).

Deine LocalSettings.php anpassen

If you use the same LocalSettings.php from the old version, you may need to adapt it to how new versions handle it:

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. We usually try to use sane defaults for them, and in case of type change, be backwards compatible. In any case, take a look at the release notes to see those changes.

Extensions-Updates

Certain extensions have been updated in order to work with the new version of MediaWiki. Be sure to upgrade to the latest versions of such extensions. You might need to perform manual updates to custom extensions.

Different tarballs include some subsets of extensions and have versioning which helps you upgrade choosing the right one for your MediaWiki core release.

Extension Distributor works well for most people who want a snapshot of extensions that will work with their supported versions of MediaWiki.

If you want a lot of extensions then downloading from Git is probably best. If you don't have Git but you want to upgrade a lot of extensions, you might consider using mwExtUpgrader.

Aktualisierungsskript

Sie können die MediaWiki-Datenbank auf zwei Arten aktualisieren: Entweder von der Kommandozeile oder vom Webbrowser aus. Wenn Sie Shell-Zugang zu Ihrem Server haben, 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 versuchen jede fehlende Abhängigkeit herunterzuladen, welche MediaWiki benötigt.

Kommandozeile

$ php update.php

Unten ist ein Beispiel:

$ whereis php5 $ ls -la /usr/local/php5/bin $ /usr/local/php5/bin/php update.php

Web-Browser

MediaWiki Version: ≥ 1.17
Siehe auch update.php

If your database is already big and in high production usage, then you should not be using the Web updater, e.g. because the update process will time out when the maximum_execution_time is reached. In that case you should use update.php from the command-line interface (not from the web). What exactly is "too big" depends on your server (e.g. on its performance, the load and on how long the maximum execution time of PHP allows the script to run). If your wiki is too big for the web updater and your hosting provider does not allow command-line access, then you need to migrate your wiki to another hosting account, preferably to one that does have shell access.

Vor jeder Änderung an der Datenbank sollte eine Datensicherung vorgenommen werden. # Navigate your webbrowser to /mw-config/. For example, if your wiki is at http://example.org/w/index.php, then navigate to http://example.org/w/mw-config/.

  1. Select your language and click continue.
  1. The existing installation should be detected. Follow the instructions on the screen to upgrade it.If asked for the "upgrade key", open your LocalSettings.php file and look for the key assigned to $wgUpgradeKey.


It might happen that the web-updater does not seem to work: Instead of seeing the initial language selection screen, you might see an empty wiki page, possibly with some error message. In this case it is most likely that your webserver uses Rewrite Rules (most likely for short URLs), which do not show you the updater at mw-config/, but a wiki page at Mw-config/, with capital "M". In this case, rename the .htaccess file for the time of the update. Then you should be able to access the web-updater.


"Warnung"Warnung: If you use this method, make sure to change the name of the .htaccess file back after running the upgrade script! Otherwise short URLs and possibly other stuff will be broken!


Prüfen

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.

Remove leftovers from old installations

If you have copied your previous installation to another folder on the server, be sure to remove it or make it completely inaccessible from the web. It is very important to not leave old installations accessible from the web, since it completely defeats the purpose of upgrading, and leaves your server open to attacks.

Links

Intern

Extern

Übersicht

Dateiübertragung

Eine Methode zur Übertragung der Dateien auswählen: * wget


Vorbereitung

Lesen Sie die UPGRADE Textdatei, die zum MediaWiki gehört. # Überprüfen Sie die Voraussetzungen.

  1. Lesen Sie die Versionshinweise.
  2. Sichern Sie die vorhandenen Dateien und die Datenbank.
  3. Entpacken Sie die neuen Dateien.
  4. Aktualisierung der Erweiterungen
  5. Starten Sie das Update-Skript, um die Datenbank zu überprüfen.
  6. Testen Sie das Update.
  1. Remove leftovers from old installations


Anforderungen

MediaWiki 1.35 erfordert: * PHP 7.3.19+

  • Eines der folgenden:
    • MySQL 5.5.8+ (oder entsprechendes MariaDB)
    • PostgreSQL 9.2+
    • SQLite 3.8+


Wenn Sie PostgreSQL benutzen, lesen Sie bitte auch Manual:Upgrading Postgres.

Für weitere Informationen lesen Sie bitte Manual:Installation requirements/de und Kompatibilität.

Lesen Sie 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.

Öffnen Sie diese jetzt und finden Sie heraus, was in diesem Release geändert wurde.

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. Verwenden Sie runJobs.php, um alle ausstehenden Aufträge auszuführen und die Warteschlange zu löschen, bevor Sie das Upgrade durchführen.

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, SQL- und XML-Dump verwende den mysql Befehl:


mysqldump --user=wikidb_user --password=wikidb_userpassword wikidb > file.sql

mysqldump --user=wikidb_user --password=wikidb_userpassword wikidb --xml > file.xml*

Bei PostgreSQL, Datenbank-Dump verwende den pg_restore Befehl:


pg_dump --create -Fc wikidb > file.db.dump*

Bei SQLite, verwende ein MediaWiki Skript um eine 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 File Manager

cPanel is a popular interface provided by many web hosts. This method is efficient because the files are uncompressed on the server itself. * Navigate to the directory that holds your wiki folder.

  • Upload the mediawiki-1.xx.x.tar.gz file. You may need to hit "Reload" to see it.
  • Extract the mediawiki-1.xx.x.tar.gz file. Reload again.
  • Confirm that the mediawiki-1.xx.x folder is present.
  • Delete the tar.gz file.
  • Copy all necessary skins, extensions, image folders, customizations, and the LocalSettings.php into the new folder. (see below)
  • When you are ready to run update.php, rename your old wiki folder and your new wiki folder. (e.g. "w" becomes "w1.34" and then "mediawiki1.35.0" becomes "w") This step is easily reversible if you run into problems.


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: When untarring a tarball package normally a new directory for the new wiki version will be created and you will have to copy the old configuration files and images directory from your old installation directory:

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

(Open)Solaris Benutzer sollten gtar benutzen, oder:

$ gzip -dc mediawiki-1.35.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, die die alten Konfigurationseinstellungen enthält.

  • 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. Es sollten immer die aktuellen Erweiterungen installiert und verwendet werden, veraltete Erweiterungen funktionieren eventuell nicht korrekt oder gar nicht mit neueren MediaWiki Versionen.
  • 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";
  • 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).


Machen Sie diesen neuen Ordner zum veröffentlichten Ordner auf dem Webserver, oder benennen Sie das alte Installationsverzeichnis um und benennen Sie dann das neue um, um den alten Namen zu erhalten.

Git verwenden

Wenn Sie Git verwenden, exportieren Sie die Dateien an einen sauberen Speicherort und kopieren Sie dann die alten benutzerdefinierten Dateien wie im vorherigen Abschnitt beschrieben an den neuen Speicherort.

Müssen Sie 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 finden Sie in der Git download documentation.

Verwendung eines Patches

Eine kleine Patchdatei wird in der Regel für ein Minor-Versions-Upgrade zur Verfügung gestellt. Laden Sie die Patchdatei manuell herunter und extrahieren Sie sie von the dumps site oder folgen Sie den Anweisungen mit wget unten. Patches sind inkrementell, Sie können keine Version überspringen. # cd in Ihr Hauptverzeichnis von MediaWiki (das mit LocalSettings.php).

  1. Laden Sie die Patchdatei herunter und entpacken gunzip es.
  2. Verwenden Sie patch -p1 --dry-run, um zu überprüfen, was geändert wird (z.B.', patch -p1 --dry-run -i mediawiki-x.xx.x.patch).
  3. Wenn alles in Ordnung ist, führen Sie patch erneut ohne --dry-run aus.


Überprüfen Sie Ihre Special:Version und Sie sollten 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.


MediaWiki Version: ≥ 1.18

Wenn Sie profiling nicht verwenden, aber eine StartProfiler.php-Datei im MediaWiki-Stammordner haben, erhalten Sie möglicherweise Fehler, die sich auf /includes/Profiler.php beziehen. Löschen oder umbenennen der StartProfiler.php Datei behebt den Fehler. Die StartProfiler.sample Datei, die sich ebenfalls im MediaWiki Wurzelverzeichnis befindet, kann als Vorlage dafür dienen, falls profiling zukünftig aktiviert werden soll.


MediaWiki Version: ≥ 1.23

Mediawiki 1.23 verwendet nicht mehr den skin autodiscovery Menchanismus. Nachdem auf diese Version aktualisiert wurde, sollte sicher gestellt werden, die die alten s Chick.php, Nostalgia.php, Simple.php und Standard.php Dateien direkt im skins/ Verzeichnis sowie die entsprechenden Unterordner im skins/ Verzeichnis gelöscht werden. MediaWiki wird als Erinnerung eine Warnung aufzeichnen und ggf. ausgeben, falls diese alten Skins immer noch gefunden werden. (Benutzerdefinierte Skins müssen ebenfalls entsprechend angepasst und mit ihnen verfahren werden.) Siehe Manual:Skin autodiscovery für mehr Informationen.


MediaWiki Version: ≥ 1.24

MediaWiki 1.24 ändert die Pfade von Kern-Skin-Dateien. Nach dem Upgrade auf diese Version sollten Sie sicherstellen, dass die alten Dateien CologneBlue.php, Modern.php, MonoBook.php und Vector.php direkt im Verzeichnis skins/ nicht mehr vorhanden sind. Siehe Manual:Skin autodiscovery für Details.

Erweiterungen aktualisieren

Certain extensions have been updated in order to work with the new version of MediaWiki. Be sure to upgrade to the latest versions of such extensions. You might need to perform manual updates to custom extensions.

Different tarballs include some subsets of extensions and have versioning which helps you upgrade choosing the right one for your MediaWiki core release.

Extension Distributor works well for most people who want a snapshot of extensions that will work with their supported versions of MediaWiki.

If you want a lot of extensions then downloading from Git is probably best. If you don't have Git but you want to upgrade a lot of extensions, you might consider using mwExtUpgrader.

Deine LocalSettings.php anpassen

If you use the same LocalSettings.php from the old version, you may need to adapt it to how new versions handle it:

Skin registration

Since MediaWiki 1.24, bundled skins like Vector, Monobook, Modern and CologneBlue are no longer part of MediaWiki core, and they need to be registered explicitly in LocalSettings.php to use them, otherwise MediaWiki will warn that you don't have installed skins.

This is what you need to add to LocalSettings.php when upgrading from versions older than 1.24 and want to have available one of those skins:

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

Other skins may still not be adapted to the new skin registration system, so refer to the documentation page about each skin to see how to register it properly in case of problems.

Extension registration

Since MediaWiki 1.25, extensions use a new extension registration system.

Previously your LocalSettings.php would include something like:

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";

This can be converted to:

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

Extensions are being adapted to use the new extension registration system. Extensions that are not adapted should use the old way of installing them. Refer to the installation instructions on the extension's page for more information.

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. We usually try to use sane defaults for them, and in case of type change, be backwards compatible. In any case, take a look at the release notes to see those changes.

Das Update-Skript ausführen

Sie können die MediaWiki-Datenbank auf zwei Arten aktualisieren: Entweder von der Kommandozeile oder vom Webbrowser aus. Wenn Sie Shell-Zugang zu Ihrem Server haben, 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 versuchen jede fehlende Abhängigkeit herunterzuladen, welche MediaWiki benötigt.

Kommandozeile

Access the command line of your server or an SSH shell or similar. You can access the command line by connecting to your server via SSH. If the local PC you are working on runs Microsoft Windows, you will need a tool like PuTTY to use SSH. From the command line or the Shell, change to the maintenance directory and execute the update script:

$ php update.php

On a Linux server if you get an error try performing the same command as root (sudo php update.php). Note for simple installations on Windows (e.g. with XAMPP): First make sure that your web server (such as Apache) and your database (such as MySQL) are running. Then run update.php: right-click it, select Open With, and browse to PHP.exe. The resulting command prompt window will likely autoclose when the schema upgrade completes.

You might see a message that your PHP version is too old and that MediaWiki needs a newer version. After that message the update aborts. Reason for this error is that the command line can use another PHP version than that one which you have when you execute MediaWiki from the web server. When you get this message you should check, if you can execute a newer PHP version on the shell by using a different command: That might e.g. be php5 or php56. If another version is available and - if so - under which name, depends on the setup of your server. If it does not work, ask your hoster; they will surely know.

MediaWiki will inspect the existing schema and update it to work with the new code, adding tables and columns as needed.

If you use a Shared database, you should pass the --doshared parameter if you want the shared tables to be updated. Otherwise they won't be touched by the update script.

What to do if php update.php fails to do anything, resulting in a quick pause and then return to command prompt

This can be caused by a malfunctioning extension or skin. * Check that all extensions and skins called for in LocalSettings.php are present

  • Check that extensions are using the correct registration method (wfLoadExtension vs. require_once)
  • Comment out extensions one by one in local settings until update.php works to find the one that is failing


What to do in case of "ALTER command denied to user" error (or similar)

In case the scripts abort with a message similar to:

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

This means that you should check that you have defined $wgDBadminuser and $wgDBadminpassword in your LocalSettings.php file (in the main directory). These are the user and password needed by this script in order to access to the database.

In some cases, an old $wgDBmwschema variable (for Postgres) seems to be read for the table name to update instead of $wgDBname, even when mysql is used. If this is the case, just get rid of the $wgDBmwschema definition in LocalSettings.php.

What to do in case of "unexpected T_STRING" error

Individuals running update.php from the command line may encounter the following error:

syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' \ in ~/maintenance/commandLine.inc on line 13

Dieser Fehler tritt auf, wenn update.php unter php4 ausgeführt wird.

Individuals who have their site hosted by providers who provide both php4 and php5 should take the following steps: # from the command line, enter the command 'whereis php5'

  1. once you have discerned the location of the php5 path, list the contents of php5/bin directory
  1. once you've determined the name of the php executable (either php or php5), type in the entire path to execute update.php


Unten ist ein Beispiel:

$ whereis php5 $ ls -la /usr/local/php5/bin $ /usr/local/php5/bin/php update.php

What to do in case of 'register_argc_argv is set to false' error

You may encounter the error:

Cannot get command line arguments, register_argc_argv is set to false# Go to ~/maintenance. Either edit an existing 'php.ini' file, or create one.

  1. Add a line as follows:


register_argc_argv=true# Re-run php update.php


Web-Browser

MediaWiki Version: ≥ 1.17
Siehe auch update.php

If your database is already big and in high production usage, then you should not be using the Web updater, e.g. because the update process will time out when the maximum_execution_time is reached. In that case you should use update.php from the command-line interface (not from the web). What exactly is "too big" depends on your server (e.g. on its performance, the load and on how long the maximum execution time of PHP allows the script to run). If your wiki is too big for the web updater and your hosting provider does not allow command-line access, then you need to migrate your wiki to another hosting account, preferably to one that does have shell access.

Vor jeder Änderung an der Datenbank sollte eine Datensicherung vorgenommen werden. # Navigate your webbrowser to /mw-config/. For example, if your wiki is at http://example.org/w/index.php, then navigate to http://example.org/w/mw-config/.

  1. Select your language and click continue.
  1. The existing installation should be detected. Follow the instructions on the screen to upgrade it.If asked for the "upgrade key", open your LocalSettings.php file and look for the key assigned to $wgUpgradeKey.


It might happen that the web-updater does not seem to work: Instead of seeing the initial language selection screen, you might see an empty wiki page, possibly with some error message. In this case it is most likely that your webserver uses Rewrite Rules (most likely for short URLs), which do not show you the updater at mw-config/, but a wiki page at Mw-config/, with capital "M". In this case, rename the .htaccess file for the time of the update. Then you should be able to access the web-updater.


"Warnung"Warnung: If you use this method, make sure to change the name of the .htaccess file back after running the upgrade script! Otherwise short URLs and possibly other stuff will be broken!


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.


Remove leftovers from old installations

If you have copied your previous installation to another folder on the server, be sure to remove it or make it completely inaccessible from the web. It is very important to not leave old installations accessible from the web, since it completely defeats the purpose of upgrading, and leaves your server open to attacks.

Häufig gestellte Fragen

Wie schwierig ist es zu aktualisieren?

If the only file you have modified is LocalSettings.php, and you are upgrading from 1.5 or later, the process is very simple. The amount of human work involved is only a few minutes. The database schema changes will take an amount of time proportional to the size of your database — potentially hours for wikis with millions of pages, but for a more typical size of a few thousand pages, it is usually done in seconds.

Minor upgrades, within the same major version, say from 1.31.0 to 1.31.12, do not require any schema changes at all. You can just update the files. The database needs no update, hence it is not necessary to run the updater script.

Upgrading from 1.4 or earlier is potentially complicated because support for character sets other than UTF-8 was dropped, and the schema for storing bulk text changed. Please read the relevant section in the UPGRADE file.

Upgrading becomes difficult if you have modified our source code, and you don't want your changes to be overwritten. Tools such as diff, patch, Meld or WinMerge may be useful. There is also potential for trouble if you are using unmaintained extensions. Upgrade your extensions at the same time as you upgrade MediaWiki.

If you have modified the skin or use a custom skin you very likely will have to adjust it to work again with the new version of MediaWiki.

Instead of patching your "global" css and js (javascript) files every time, you can simply add the code to your MediaWiki:Common.js and MediaWiki:Common.css pages. As these are part of the database which will be reused when you upgrade, you will not have to patch the MediaWiki core files any more.

How do I upgrade from a really old version? In one step, or in several steps?

It depends: If you are upgrading from MediaWiki 1.4 or older, you should upgrade to MediaWiki 1.5 first. If you are upgrading from a Latin-1 wiki, use upgrade1_5.php (found in MediaWiki 1.5) to convert the relevant parts of the database to UTF-8 ($wgUseLatin1 needs to be set to true in your LocalSettings.php for this to work). Next, run update.php, and then set the $wgLegacyEncoding option in LocalSettings.php to the encoding previously used by the wiki (e.g. windows-1252). This is basically how Wikipedia and other Wikimedia Foundation sites were upgraded from MediaWiki 1.4 to 1.5 – see the relevant settings file (warning: huge page!) and some related notes at Wikitech. You may need to upgrade to MediaWiki 1.4 before running the upgrade1.5 script. If you want to make a database dump (e.g. MySQL) of your Latin-1 wiki, make sure the type of the old_text field in the text table is mediumblob, not mediumtext, to avoid character encoding issues.

If you are upgrading from MediaWiki 1.5 or newer, you can upgrade in one step, from your old version to the latest stable version. The vast majority of reports, as well as automated testing, indicate that doing it in one step works just fine. If you have trouble believing this, read this mailing list post. However, please note that when you update from old versions, chances that you will encounter PHP errors are bigger than when you upgrade from the version directly previous to the new version. You would have received these errors anyway, also if you had not skipped versions, but if you had each time done each single update. Only will you - when you skipped versions - get them all at the same time. This will make the upgrade more difficult, but do not forget that you did not have the trouble updating to the intermediate versions, which you skipped!

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.

An upgrade failure may leave your database in an inconsistent state, in between two versions. A PHP or MySQL error might happen during upgrade leaving your database partly upgraded. In such situations it may be possible to somehow fix this problem with much manual work. However, it will be way easier to just put a database backup from before running update.php in place and to continue with that. Otherwise you might have hours of - needless - work.

Recovery is often complex. Volunteers on the support forums are unlikely to be impressed if you neglect to make a backup and then need help to recover from upgrade-related corruption. A better outcome is if you can revert to your backup, and then report the bug against the corresponding MediaWiki project in the upgrade process which caused the corruption.

Kann ich meine LocalSettings.php behalten?

Yes, but you may have to make some minor changes. The format of LocalSettings.php is largely backwards compatible. Changes which break LocalSettings.php compatibility will be documented in the "configuration changes" section of the release notes.

Can my wiki stay online while it is upgrading?

Generally yes, however Git may temporarily (for a few seconds) break it.

If you are upgrading between minor releases of MediaWiki, all you need to do is update the source files.

Note: the following assumes you have command line access. If you are upgrading between major releases of MediaWiki, the preferred procedure is as follows: # Unpack the new version of MediaWiki into a new directory

  1. Prepare that new directory: copy your current LocalSettings.php from the old directory, copy any installed extensions and custom skins (if any). Check $wgLogo setting in LocalSettings.php and if necessary copy logo file from the old directory to the new directory.
  1. In the release notes for the new version, see if any changes need to be made to LocalSettings.php.
  1. Place the database in read-only mode by inserting the following variable into LocalSettings.php in the old directory - users will see this message if they attempt an edit during the upgrade process:


$wgReadOnly = 'Upgrading to MediaWiki 1.35.1'; #

    • This no longer works since MediaWiki 1.27, which also prevents running the update script. A workaround for versions since MediaWiki 1.27 can be found in Manual:$wgReadOnly#Upgrading. See also task T151833.
  1. Run the update script or the web updater in the new directory.
  1. Copy the images from the images sub-directory from the old directory to the new directory.
  1. Swap the old directory and the new directory.


Warum aktualisieren?

Subscribe to mediawiki-announce to be notified of new releases.

Because it's usually easy enough, a single step from your version to latest and also via web.

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.

New major releases come with new features, which you might want to use: see the release notes for details. In case you need additional arguments to convince your bosses to let you upgrade from a pretty old version, here is a summary: * Since 1.5, edits can be previewed before saving also as diff.

  • Since 1.13, you can rename (move) files.
  • If you have appropriate caching, since 1.17 ResourceLoader optimizes pageload speeds a lot.
  • Since 1.18 and 1.19, users of all languages and genders are correctly addressed by the interface and logs (before 1.15, no gender at all).
  • In 1.19 the skinning system was reworked making it easier to reuse parts of existing skins in your own skins.
  • In 1.21 and 1.23, email notifications become clearer and more predictable, making your wiki more effective.
  • Since 1.22, vandal fighting (patrolling) is less time-consuming.
  • In 1.24, password storage was improved to allow for better security.
  • In 1.27, the session management was reworked as well as the user authentication management completely modernized.
  • Since 1.29, the Action API was reworked and improved. Also user group assignments may now be done for a selectable period.


Mit MediaWiki 1.18 wurde begonnen, einige unverzichtbare Erweiterungen, wie beispielsweise eine besserer Editor und die Anti-Vandalismus Werkzeuge wie ConfirmEdit und Nuke mit der Basisinstallation zu bündeln. Dadurch müssen diese Erweiterungen nicht mehr separat heruntergeladen und installiert werden. Weitere Erweiterungen folgten in späteren MediaWiki Versionen.


Siehe auch