Mise à jour

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

Présentation générale

Transfert de fichiers

Choisissez une méthode pour transférer les fichiers :

Prérequis

Lisez le fichier texte UPGRADE inclus dans MediaWiki.

  1. Vérifiez les prérequis
  2. Lire le fichier RELEASE-NOTES
  3. Lire le fichier UPGRADE
  4. Sauvegardez les fichiers existants et la base de données
  5. Décompressez les nouveaux fichiers
  6. Mettez à jour les extensions
  7. Exécutez le script de mise à jour pour vérifier la base de données
  8. Testez la mise à jour
  9. Supprimer ce qui reste des anciennes installations

Vérifier les paramètres nécessaires

  Avertissement : MediaWiki présente un problème de sécurité pour les versions 1.37.0, 1.36.2 et celles de 1.32 à 1.35.4 : il permet la modification non privilégiée d'une page quelconque et l'exécution arbitraire de code JavaScript. Si vous utilisez l'une de ces versions et ne pouvez pas faire la mise à jour vers une version plus récente, veuillez lire Version de sécurité 2021-12/FAQ pour contourner le problème.
  Avertissement : 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 tâche T326071.

MediaWiki 1.41 nécessite :

  • PHP 7.4.3+
  • L'une des options suivantes :
    • MariaDB 10.3.0+
    • MySQL 5.7.0+
    • PostgreSQL 10.0+
    • SQLite 3.8.0+
Depuis MediaWiki 1.36, il ne prend en charge que les mises à jour effectuées depuis au plus, les deux dernières versions LTS uniquement (voir phab:T259771). Les mises à niveau à partir d'anciennes versions de MediaWiki devront être effectuées en plusieurs étapes. Ceci signifie que si vous voulez mettre à niveau avec 1.41 depuis 1.34 ou une version antérieure, vous devrez d'abord mettre à jour votre wiki 1.34 à 1.35 (ou 1.39), et, de 1.35 (ou 1.39), vous pourrez passer à 1.41.

Si vous utilisez PostgreSQL, veuillez lire également Manual:Upgrading Postgres .

Pour plus d'information, lisez Manuel:Instructions d'installation et Compatibilité .

Lisez les notes de version

Dans l'archive de l'installation ou dans les fichiers copiés/exportés de Git sont présents des fichiers nommés en majuscules dont l'un contient les notes de version RELEASE-NOTES (wiki). Il est maintenant temps de l'ouvrir et de rechercher ce qui a changé dans cette version. Lisez également les instructions dans le fichier UPGRADE.

Vider la file des tâches en attente d'exécution

Pour des raisons de performance, certaines actions sur la base de données sont retardées, et gérées par la file des travaux. Ces tâches sont rangées dans la base de données et contiennent des paramètres avec les informations indiquant les actions à réaliser. Il est vivement conseillé d'exécuter ces tâches en attente avant de faire la mise à jour du wiki, pour éviter qu'elles n'abortent dans le cas où la spécification des paramètres viendrait à changer d'une version à l'autre. Utilisez runJobs.php pour exécuter toutes les tâches en attente et vider la file d'attente avant de réaliser la mise à jour.

Sauvegarder les fichiers existants et la base de données

Instructions complètes : Manuel:Faire la sauvegarde d'un wiki

Même si les scripts de mise à jour sont maintenus et robustes, les choses peuvent mal tourner. Avant de procéder à la mise à jour du schéma de base de données, faites une sauvegarde complète du wiki, incluant à la fois la base de données et les fichiers :

  • le contenu du wiki, en commençant par la base de données (assurez-vous de spécifier correctement le jeu de caractères, vérifiez d'abord dans Localsettings.php). Il peut être utile de générer un export XML en plus de l'export SQL de la base de données.
  • MySQL, les deux exports SQL et XML sont à utiliser avec la commande mysql :
mysqldump --user=wikidb_user --password=wikidb_userpassword wikidb > file.sql
mysqldump --user=wikidb_user --password=wikidb_userpassword wikidb --xml > file.xml
  • PostgreSQL, un export de la base de données à utiliser avec la commande pg_restore :
pg_dump --create -Fc wikidb > file.db.dump
  • SQLite, utilisez un script MediaWiki pour créer la sauvegarde :
php wikifolder/maintenance/sqlite.php --backup-to file
  • les images et autres fichiers multimédia (le contenu du dossier images, logo personnalisé /skins/common/images/wiki.png)
  • les fichiers de configuration, comme par exemple Localsettings.php et .htaccess (si présent)
  • les fichiers du programme MediaWiki, en incluant tous les habillages et les extensions en particulier si vous les avez modifiés.

Décompresser les nouveaux fichiers

Utiliser le paquet d'archive

Vous pouvez ramener les nouveaux fichiers en utilisant FTP ou la ligne de commande. Privilégiez la ligne de commande si vous y avez accès ! Celle-ci sera beaucoup plus rapide que de transférer les fichiers un à un parmi les milliers via FTP.

Vous devriez extraire les fichiers de l'archive tarball dans un répertoire vide sur votre serveur. Si vous choisissez d'extraire l'archive de la nouvelle version directement à la racine de votre ancienne version, plutôt que dans un nouveau répertoire, suivez les instructions dans Sauvegarde des fichiers existants et de la base de données sinon, les adaptations préalablement effectuées pourraient être perdues sans possibilité de les retrouver pour les ré-appliquer. Extraire l'archive à la racine de votre copie de production de MediaWiki risque de laisser derrière des fichiers de l'ancienne version de MediaWiki qui peuvent interférer avec le code mis à jour. Il est recommandé de décompresser les nouveaux fichiers dans un nouveau répertoire, et ensuite d'appliquer les modifications sur le nouveau répertoire (restaurer LocalSettings.php, le dossier des images, les extensions, et autres modifications comme les apparences personnalisées)

Client FTP ou interface graphique

Si vous ne pouvez pas utiliser le mode ligne sur votre serveur, téléchargez l'archive MediaWiki en local sur votre ordinateur et utilisez 7zip pour extraire l'archive sur votre PC local.

Une fois les fichiers extraits localement, utilisez le client FTP de votre choix pour téléverser les dossiers et fichiers sur le serveur.

Gestionnaire de fichiers cPanel

cPanel est une interface populaire fournie par plusieurs hébergeurs web. Cette méthode est efficace car les fichiers sont décompressés sur le serveur lui-même.

  • Allez dans le répertoire qui contient votre dossier wiki.
  • Téléverser le fichier mediawiki-1.xx.x.tar.gz. Vous devrez peut-être cliquer sur Recharger pour le voir.
  • Extraire le fichier mediawiki-1.xx.x.tar.gz. Recharger à nouveau.
  • Confirmer que le répertoire mediawiki-1.xx.x est présent.
  • Supprimer le fichier tar.gz.
  • Copiez dans le nouveau répertoire tous les habillages nécessaires, les extensions, les répertoires d'images, les personnalisations ainsi que LocalSettings.php. (voir ci-dessous).
  • Dès que vous êtes prêt à exécuter update.php, renommez l'ancien répertoire de votre wiki ainsi que le nouveau. (c'est à dire que 'w' devient 'w1.34' puis 'mediawiki1.35.0' devient 'w'.) Vous pouvez annuler cette étape facilement pour revenir en arrière si vous rencontrez des problèmes.

Ligne de commande

Il est possible que vous ayez à exécuter les commandes en tant que sudo si votre compte courant n'a pas toutes les permissions d'écriture dans le dossier d'installation du wiki. Lors de l'extraction de l'archive tarball de MediaWiki normalement un nouveau dossier va se créer pour la nouvelle version de MediaWiki et vous devrez y copier les anciens fichiers de configuration et le dossier 'images' depuis le dossier où se trouve l'ancienne installation :

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

Les utilisateurs d'(Open)Solaris doivent utiliser gtar ou :

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

Autres fichiers

Après avoir extrait les archives, vous devez copier ou déplacer certains fichiers et dossiers depuis l'ancien répertoire d'installation vers le nouveau :

  • LocalSettings.php - contient vos anciens paramètres de configuration.
  • Le répertoire images (ou uploads dans des versions antérieures), qui contient tous les fichiers hébergés sur le wiki, sauf si vous avez spécifié un dossier différent pour le téléversement des fichiers. Vous devrez changer le propriétaire et les permissions de façon appropriée, par exemple avec find ./images -type d -exec chmod 755 {} \; et chgrp -R apache images si l'utilisateur web est apache.
  • Certaines extensions du répertoire extensions. Vous devriez toujours utiliser des versions actualisées des extensions ; il n'est pas garanti que les anciennes extensions fonctionnent avec une version plus récente de MediaWiki.
  • Si utilisez un logo personnalisé, ce fichier doit aussi être restauré à partir de la sauvegarde. Avant la version 1.24 il se trouve habituellement dans skins/common/images/. À partir de la version 1.24 il se trouve dans le dossier resources/assets/ ou dans images/ si vous avez préféré l'utiliser. Dans ce cas ajoutez-le dans Localsettings.php, par exemple avec $wgLogo = "$wgScriptPath/images/logo.png";
  • Pour la 1.35 vous devrez peut-être restaurer les logos depuis wgLogos . Ensuite ajoutez à LocalSettings.php par exemple $wgLogos = [ '1x' => "path/to/1x_version.png", '2x' => "path/to/2x_version.png", 'svg' => "path/to/svg_version.svg" ];
  • Les habillages personnalisés au sein du répertoire skins.
  • Toutes modifications réalisées sur les anciens fichiers d'installation ou aux extensions.
  • Les éventuels fichiers .htaccess (si vous utlisez Apache et que vous y avez défini des règles).

Une fois fait ceci, faites de ce nouveau dossier le dossier publié sur le serveur, ou renommez l'ancien dossier d'installation, et ensuite renommez le nouveau dossier pour qu'il coïncide avec l'ancien nom. Modifiez le propriétaire et le groupe de chaque élément pour que le serveur web puisse accéder aux fichiers.

En utilisant Git

Si vous utilisez Git , exportez les fichiers dans un dossier vide et ensuite copiez uniquement les fichiers modifiés dans le nouveau répertoire comme détaillé dans la section précédente.

Vous devrez aussi installer certaines bibliothèques PHP externes en utilisant Composer ou une archive fournie maintenue pour la ferme de wikis Wikimedia. Plus de détails sur l'installation et l'actualisation des bibliothèques externes se trouvent dans la documentation de téléchargement Git.

Utilisation de patch

Un petit fichier de patch est habituellement disponible pour une mise à jour de version mineure. Vous devrez télécharger patch pour utiliser ceci. Téléchargez et extrayez manuellement le fichier patch depuis le site des archives ou bien suivez les instructions utilisant wget ci-dessous. Les patchs sont incrémentaux, vous ne pouvez pas ignorer une version.

  1. cd à votre répertoire principal MediaWiki (celui avec LocalSettings.php).
  2. Téléchargez le fichier de patch et faites un gunzip dessus.
  3. Utilisez patch -p1 --dry-run pour vérifier ce qui sera changé (par exemple, patch -p1 --dry-run -i mediawiki-x.xx.x.patch)
  4. Si tout va bien, lancez patch à nouveau sans --dry-run.
  5. Vérifiez votre Special:Version et vous devriez voir le nouveau numéro de version en place.

Fichiers restants susceptibles de provoquer des erreurs

Si vous installez dans le même répertoire que l'ancienne version, il est possible que les anciens fichiers causent des problèmes avec la nouvelle version.

Mettre à jour les extensions

Certaines extensions ont été mises à jour pour fonctionner avec la nouvelle version de MediaWiki. Vérifiez de que vous utilisez bien la dernière version de ces extensions. Il est possible que vous ayez à faire les mises à jour manuellement pour les extensions personnalisées.

Les différentes archives de distribution .tar contiennent quelques sous-ensembles des extensions ainsi qu'un numéro de version pour vous aider à mettre à jour en choisissant celui compatible avec la version de votre coeur de système MédiaWiki.

L'extension Distributor fonctionne bien pour la plupart des personnes qui veulent une capture des extensions compatible avec les versions que leur MédiaWiki peut supporter.

Si vous désirez beaucoup d'extensions alors le téléchargement à partir de Git est probablement la meilleure chose. Si vous ne possédez pas Git et voulez mettre à jour un grand nombre d'extensions, vous pouvez utiliser mwExtUpgrader.

Adaptez votre LocalSettings.php

Si vous utilisez le LocalSettings.php de l'ancienne version, il est possible que vous deviez l'adapter en fonction de l'utilisation qu'en fait la nouvelle version :

Enregistrement de l'habillage

Version de MediaWiki :
1.24

Depuis MediaWiki 1.24, les habillages embarqués tels que Vector, Monobook, Modern et CologneBlue ne font plus partie du coeur de MediaWiki, et ils doivent être enregistrés explicitement dans LocalSettings.php pour pouvoir être utilisés, sinon MediaWiki vous avertira que vous n'avez pas installé ces habillages.

Voici ce que vous devez ajouter à LocalSettings.php quand vous mettez à jour à partir d'une version plus ancienne que la 1.24 et que vous voulez mettre à disposition l'un des habillages suivants :

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

Les autres habillages peuvent encore ne pas avoir été adaptés au nouveau système d'enregistrement des habillages, aussi reportez-vous à la page de documentation de chacun d'eux pour voir comment l'enregistrer proprement en cas de problème.

Enregistrement des extensions

Version de MediaWiki :
1.25

Depuis MediaWiki 1.25, les extensions utilisent un nouveau système d'enregistrement des extensions .

Auparavant votre LocalSettings.php aurait inclus quelque chose comme :

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

Cela peut être converti en :

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

Nous sommes en train d'adapter les extensions pour utiliser le nouveau système d'enregistrement. Les extensions qui ne sont pas adaptées doivent utiliser l'ancienne méthode d'installation. Reportez-vous aux instructions d'installation sur la page des extensions pour plus d'information.

Supprimer la ligne DefaultSettings.php (si nécessaire)

Les anciennes versions de MediaWiki généraient automatiquement une ligne dans LocalSettings.php appelant DefaultSettings.php . Depuis la version 1.38, cette ligne est obsolète et ne fonctionne pas avec plusieurs extensions. Elle doit être supprimée.

Supprimer la ligne suivante :

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

Autres variables

Certaines variables peuvent être obsolètes ou même avoir été retirées. Le fait de les avoir dans LocalSettings.php n'a habituellement pas de conséquences. De nouvelles variables peuvent être ajoutées dans les versions les plus récentes, ou certaines variables peuvent voir leur type modifié. D'ordinaire, nous essayons d'utiliser pour elles, des valeurs saines par défaut, et dans le cas d'une modification de type, de conserver la compatibilité ascendante. Dans tous les cas, lisez les notes de livraison pour voir ces changements.

Exécuter le script de mise à jour

Vous pouvez mettre à jour la base de données MediaWiki de deux manières : soit à partir de la ligne de commande, soit à partir du navigateur web. Si vous avez accès au shell de votre serveur, la mise à jour à partir de la ligne de commande est recommandée, car cela réduit le risque que le processus de mise à jour soit interrompu par un dépassement de temps ou par la reinitialisation de la connexion.

Le script vous notifiera également si des dépendances PHP quelconques du noyau MediaWiki sont obsolètes.

Ligne de commande

Allez sur la ligne de commande sur votre serveur, ou d'un shell SSH ou équivalent. Vous pouvez accéder à la ligne de commande en vous connectant sur votre serveur par SSH. Si le PC local à partir duquel vous travaillez est sous Microsoft Windows, vous aurez besoin d'un outil tel que PuTTY pour utiliser SSH. A partir de la ligne de commande ou du shell, exécutez le script de mise à jour :

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

Sur un serveur Linux, si vous obtenez une erreur, essayez d'exécuter la même commande en tant que root (en utilisant la commande sudo). Notez pour les installations simples sous Windows (par exemple avec XAMPP ): D'abord s'assurer que votre serveur web (comme Apache) et que votre base de données (comme MySQL) sont montés (accessibles). Ensuite exécutez update.php : cliquez-droit dessus, sélectionnez « Ouvrir avec », et accédez à PHP.exe . La fenêtre de dialogue de la commande résultante se fermera vraisemblablement automatiquement quand la mise à jour du schéma sera terminée.

MediaWiki va scruter le schéma existant et le mettre à jour pour qu'il puisse travailler avec le nouveau code, en ajoutant des tables et des colonnes en fonction des besoins.

Si vous utilisez une base de données partagée, vous devez passer le paramètre --doshared si vous voulez que les tables partagées soient mises à jour. Sinon elles ne resteront inchangées par le script de mise à jour.

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

Que faire si le fichier php update.php échoue dans une action, résultant en un bref arrêt avant de retourner à l'invite de commande

Ceci peut être causé par une extension ou un habillage défaillant.

  • Vérifiez que toutes les extensions ainsi que tous les habilages appelés dans LocalSettings.php sont présents
  • Vérifiez que les extensions utilisent la méthode d'enregistrement correcte (wfLoadExtension avec require_once)
  • Commentez la première moitié des extensions en LocalSettings.php. Si cela fait fonctionner update.php, décommentez la moitié de cette moitié (donc 1/4 des extensions). Si cela ne fait PAS fonctionner update.php, décommentez la première moitié mais commentez la seconde moitié, puis commentez la moitié de la seconde moitié, etc. Recommencer jusqu'à ce que update.php fonctionne pour trouver celui qui échoue.

Que faire en cas d'erreur "ALTER command denied to user" (ou similaire)

Dans le cas où le script échoue avec un message similaire à :

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

Cela signifie que vous devez vérifier d'avoir bien défini $wgDBadminuser et $wgDBadminpassword dans votre fichier LocalSettings.php (dans le répertoire principal). C'est l'utilisateur et le mot de passe nécessaire au script pour accéder à la base de données.

Dans certains cas, une ancienne variable $wgDBmwschema (pour Postgres) semble être lue pour le nom de la table au lieu de $wgDBname, même quand MySQL est utilisé. Dans ce cas, supprimez simplement la définition de $wgDBmwschema dans LocalSettings.php.

Que faire en cas d'erreur 'register_argc_argv is set to false'

Vous pouvez rencontrer cette erreur :

Cannot get command line arguments, register_argc_argv is set to false
  1. Allez dans ~/maintenance. Modifiez un fichier 'php.ini' existant, ou créez-en un.
  2. Ajoutez une ligne comme ceci :
register_argc_argv=true
  1. Réexécutez php update.php

Navigateur web

Version de MediaWiki :
1.17
Voir aussi update.php

Si votre base de données est déja imposante et utilisée à un haut niveau, alors il ne faut pas utiliser la mise à jour par le web, par exemple parceque le processus de mise à jour vas échouer faute de temps suffisant quand le maximum_execution_time sera atteint. Dans ce cas vous devez utiliser update.php à partir de l'interface ligne de commande (pas à partir du web). Que signifie exactement "imposante", cela dépend de votre serveur (par exemple de ses performances, de la charge et du temps maximal d'exécution que PHP attribue à l'exécution du script). Si votre wiki est trop gros pour la mise à jour par web et que votre fournisseur d'hébergement n'autorise pas l'accès aux commandes en mode ligne, alors vous devez migrer votre wiki vers un autre compte d'hébergement possédant - lui - un accès réel au shell.

  1. Faites toujours une copie de sauvegarde (back up) avant la maintenance de la base de données.
  2. Allez sur /mw-config/index.php dans votre navigateur Web. Par exemple, si votre wiki est à http://example.org/w/index.php, alors naviguez jusqu'à http://example.org/w/mw-config/index.php.
  3. Choisissez votre langue et cliquez sur continuer.
  4. L'installation existante devrait être détectée. Suivez les instructions à l'écran pour en faire la mise à jour.
    Si la "clé de mise à jour" est demandée, ouvrez votre fichier LocalSettings.php et cherchez la valeur assignée à $wgUpgradeKey .

Il peut arriver que la mise à jour par web semble ne pas fonctionner : au lieu de voir le menu initial de l'écran de sélection de langue, vous pouvez obtenir une page wiki vide, avec éventuellement des messages d'erreur. Dans ce cas il est probable que votre serveur web utilise les règles de réécriture (- Rewrite Rules - probablment pour les URLs courtes), qui ne vous montrent pas le moteur de mise à jour dans mw-config/, mais sur une page wiki à Mw-config/, avec un "M" majuscule. Dans ce cas, renommez le fichier .htaccess pour le temps de la mise à jour. Vous devriez ensuite pouvoir accéder à la mise à jour par web.

  Avertissement : Si vous suivez cette méthode, assurez-vous de re-changer le nom du fichier .htaccess après avoir lancé le script de mise à jour! Sinon les URLs courtes et peut être aussi d'autres éléments pourraient être cassés.

Tester la mise à jour

Une fois que la mise à jour s'est terminée, explorez le wiki et vérifiez que les opérations suivantes s'exécutent comme désiré :

  • afficher des pages
  • modifier des pages
  • téléverser un fichier
  • consultez Special:Version et vérifiez que la version affichée est correcte et que les extensions sont présentes.

Supprimer ce qui reste des anciennes installations

Si vous avez recopié votre ancienne installation dans un autre répertoire du serveur, vérifiez que vous avez bien supprimé le dossier initial ou rendez le complètement inaccessible du web. Il est très important de ne pas laisser les anciennes installations accessibles à partir du web parce que cela nuit au principe de la mise à jour et laisse votre serveur ouvert aux attaques.

Foire aux questions

Quelles sont les difficultés lors de la mise à jour ?

Si le seul fichier que vous avez modifié est LocalSettings.php , et que vous faites la mise à jour de la 1.5 ou ultérieure, le processus est très simple. La quantité de travail à fournir par un humain n'est que de quelques minutes. Les modifications du schéma de la base de données prendront un temps proportionnel à la taille de votre base de données — potentiellement des heures pour les wikis avec des millions de pages, mais pour des tailles plus typiques de quelques milliers de pages, cela prendra habituellement quelques secondes.

Les mises à jour mineures, à l'intérieur de la même version majeure, disons de la 1.40.0 vers la 1.40.3, ne nécessitent aucune modification du schema. Il vous suffit de mettre à jour les fichiers. La base de données n'a pas à être mise à jour, et donc il n'est pas nécessaire de lancer le script de mise à jour.

Faire la mise à jour de la 1.4 ou antérieure est potentiellement compliqué car la prise en charge des familles de caractères autres que UTF-8 a été sautée, et le schéma pour ranger du texte en masse a changé. Veuillez lire la section correspondante du fichier UPGRADE .

La mise à jour devient difficile si vous avez modifié notre code source, et que vous ne voulez pas que vos modifications soient écrasées. Les outils tels que diff, patch, Meld ou WinMerge peuvent vous être utiles. Il y a aussi des risques de perturbation si vous utilisez des extensions qui n'ont pas été maintenues. Mettez à jour vos extensions au même moment que vous mettez à jour MediaWiki.

Si vous avez modifié l'habillage, ou si vous utilisez un habillage personnalisé, vous devrez probablement l'ajuster pour le rendre compatible avec la nouvelle version de MédiaWiki.

Au lieu de patcher votre css "global" et les fichiers js (javascript) à chaque fois, vous pouvez simplement ajouter le code à votre MediaWiki:Common.js et vos pages MediaWiki:Common.css. Comme ceux-ci font partie de la base de données qui sera réutilisée dans la mise à jour, vous n'aurez plus à patcher les fichiers du coeur de MediaWiki.

Que faire si je mets à jour à partir d'une très ancienne version ? En une étape ou en plusieurs ?

Version de MediaWiki :
1.4

Cela dépend : si vous effectuez une mise à niveau à partir de MediaWiki version 1.4 ou antérieure, vous devez d'abord effectuer la mise à niveau vers MediaWiki 1.5. Si vous faites la mise à jour à partir d'un wiki Latin-1, utilisez upgrade1_5.php (qui se trouve dans MediaWiki 1.5) pour convertir les parties concernées de la base de données en UTF-8 ($wgUseLatin1 doit être mis à true dans votre LocalSettings.php pour que cela fonctionne). Ensuite exécutez update.php, puis mettez l'option $wgLegacyEncoding de LocalSettings.php à la valeur de l'encodage que vous aviez précédemment pour le wiki (par exemple windows-1252). C'est principalement la manière dont Wikipedia et les autres sites de la Fondation Wikimedia ont été mis à jour pour le passage de MediaWiki 1.4 à 1.5 – voir les notes associées sur Wikitech. Il est possible que vous ayez à passer en MediaWiki 1.4 avant d'exécuter le script upgrade1.5 . Si vous voulez faire un vidage des tables de la base de données (par exemple MySQL) de votre wiki Latin-1, assurez-vous que le type du champ old_text de la table text vaut mediumblob, et non pas mediumtext, pour éviter les problèmes d'encodage de caractères.

Versions de MediaWiki :
1.5 – 1.35

Si vous effectuez une mise à niveau à partir de MediaWiki 1.5 (ou plus récent) vers 1.35, vous pouvez faire la mise à niveau en une passe, de votre ancienne version vers la dernière version stable. La grande majorité des rapports, ainsi que des tests automatisés, indiquent que le faire en une seule étape fonctionne parfaitement. Si vous avez du mal à le croire, lisez cet article de la liste de diffusion. Cependant, veuillez noter que lorsque vous mettez à jour à partir d'anciennes versions, les chances de rencontrer des erreurs PHP sont plus grandes que lorsque vous effectuez une mise à jour à partir de la version qui précède la nouvelle version. Vous auriez de toute façon reçu ces erreurs si vous n'aviez pas sauté les versions, mais les erreurs auraient été associées à chaque mise à jour individuelle. En revanche, si vous passez plusieurs versions d'un coup, vous obtiendrez les mêmes erreurs toutes en même temps. Cela rendra la mise à jour plus difficile, mais n'oubliez pas que vous n'aurez pas de problème si vous mettez à jour les versions intermédiaires, que vous avez sautées!

Version de MediaWiki :
1.35

Si vous faites la mise à jour vers MediaWiki 1.36 ou ultérieure, seules les mises à jour à partir des deux dernières versions LTS sont prises en charge (phab:T259771). Cela signifie que pour les versions très anciennes, vous devrez d'abord passer en MediaWiki 1.35 puis en MediaWiki 1.36.

Dois-je faire une sauvegarde préalable ?

Réponse courte : oui.

Réponse plus longue : cela dépend de a) la valeur que vous prêtez à vos données, b) la difficulté à créer une sauvegarde et c) l'expérience que vous avez en entretien et administration de MySQL.

Une faute dans la mise à jour peut laisser votre base de données dans un état instable, entre deux versions. Une erreur PHP ou MySQL pourrait survenir durant la mise à jour en laissant votre base de données partiellement traitée. Dans de telles situations il est possible qu'une personne puisse corriger ce problème avec beaucoup de travail manuel. Néanmoins, il serait plus facile de faire simplement une sauvegarde de la base de données juste avant de lancer update.php et de continuer avec. Sinon vous y passeriez - inutilement - toutes vos heures de travail.

La récupération est souvent complexe. Les bénévoles des forums de support ne se sentiront pas trop concernés si vous avez négligé de faire une sauvegarde et qu'ensuite vous avez besoin d'aide pour récupérer tout ce qui a été cassé par la mise à jour. Une meilleure solution est de réinstaller votre sauvegarde, puis de signaler le bogue sur le projet MediaWiki correspondant dans le processus de mise à jour qui a causé le dysfonctionnement.

Puis-je conserver mon fichier LocalSettings.php ?

Oui, mais il se peut que vous deviez faire quelques petits changements. Le format de LocalSettings.php est fondamentalement compatible avec les versions précédentes. Les changements qui peuvent casser la compatibilité de LocalSettings.php seront documentés dans la section "Changements dans la configuration" des notes de version.

Est-ce que mon wiki peut rester en ligne pendant la mise à jour ?

En général oui, néanmoins si vous faites vos mises à jour avec Git, il peut le casser temporairement (pendant quelques secondes).

Si vous mettez à jour entre des versions mineures de MediaWiki, il est uniquement nécessaire de mettre à jour les fichiers source.

Note : ce qui suit suppose que vous avez accès à la ligne de commande. Si vous êtes en train de mettre à jour entre des versions majeures de MediaWiki, la procédure recommandée est la suivante :

  1. Décompressez la nouvelle version de MediaWiki dans un nouveau dossier
  2. Préparez ce nouveau dossier : copiez votre LocalSettings.php actuel de l'ancien répertoire, ainsi que les extensions et les habillages personnalisés que vous pouvez avoir installés (s'il y en a). Vérifiez les paramètres $wgLogo et $wgLogos dans LocalSettings.php et, si nécessaire, copiez le fichier logo de l'ancien répertoire vers le nouveau répertoire.
  3. Dans les notes de version pour la nouvelle version, vérifiez s'il faut faire des modifications dans LocalSettings.php.
  4. Dans l'ancien répertoire, modifiez LocalSettings.php en insérant le code suivant : Ceci va mettre la base de données en mode lecture seule pour les activités régulières du wiki sans restreindre vos propres actions de mise à jour. Les utilisateurs verront le message fourni s'ils essaient de modifier pendant le processus de mise à jour.
    $adminTask = ( PHP_SAPI === 'cli' || defined( 'MEDIAWIKI_INSTALL' ) );
    $wgReadOnly = $adminTask ? false : 'Upgrading to MediaWiki 1.41.1';
  5. Exécutez le script de mise à jour ou via l'interface web dans le nouveau dossier.
  6. Copiez les images du sous-dossier d'images de l'ancien répertoire vers le nouveau.
  7. Permutez l'ancien répertoire avec le nouveau. (Cela va rendre la base de données de nouveau accessible en écriture, car $wgReadOnly n'était positionné que dans LocalSettings.php de l'ancien répertoire).

Pourquoi mettre à jour ?

Abonnez-vous à la liste mediawiki-announce pour être notifié des nouvelles versions.

Les versions récentes reçoivent des correctifs de sécurité pour protéger votre wiki et votre hôte des vandales, ce qui n'est pas le cas des anciennes versions (voir Cycle de vie des versions ).

Les nouvelles versions majeures sont livrées avec de nouvelles fonctions que vous pourriez utiliser : voir les notes de mise à jour pour plus de détails.

Voir aussi