Manual:Upgrading/fr



Survol
Tout d'abord, lisez le fichier texte UPGRADE inclus dans MediaWiki.


 * 1) Vérifier les prérequis
 * 2) Lire les notes de version
 * 3) Sauver les fichiers et la base de données
 * 4) Mettre en place les nouveaux fichiers
 * 5) Faire tourner le script de la mise à jour de la base données
 * 6) Mettre à jour les extensions
 * 7) Vérifier la mise à jour

Vérifier les prérequis
MediaWiki requiert :

PHP

 * PHP 5.2.3 ou ultérieur
 * Plusieurs versions précédentes supportaient PHP 5.2.3 et ultérieur, à l'exception de la version 5.3.1, qui a des bogues empêchant MediaWiki de fonctionner correctement.

SGBD

 * MySQL ou ultérieur
 * La version 3.x n'est plus supportée depuis MediaWiki 1.6.x
 * La version 4.x n'est plus supportée depuis MediaWiki 1.19

Ou


 * PostgreSQL 8.3 ou ultérieur
 * Voir aussi Mise à jour de Postgres

Lire les notes de version
Dans le fichier compressé qui contient MediaWiki, ou les fichiers exportés depuis Git, il y a un certain nombre de fichiers nommés avec des lettres capitales, un de ceux-là contient les Notes de version (wiki). C'est le moment de l'ouvrir et de découvrir tout ce qui a changé dans cette version.

Sauvegarder les fichiers et la base de données

 * Instructions complètes : Manuel sur la sauvegarde de wiki

Bien que les scripts de mise à jour soient bien maintenus et robustes, les choses peuvent malgré tout tourner au vinaigre. Avant de procéder à la mise à jour du script de base de données, faites une sauvegarde du wiki qui comprendra la base de données et les fichiers :


 * le contenu du wiki, depuis la base de données. C'est une bonne idée de créer un dump XML en plus du dump SQL de la base de données.
 * MySQL :
 * dump SQL : mysqldump --user=xxx --password=xxx --all-databases > fichier.sql
 * dump XML : mysqldump --user=xxx --password=xxx --all-databases --xml > fichier.xml
 * PostgreSQL :
 * sortie pour pg_restore : pg_dump --create -Fc -i votrewiki > votrewiki.db.dump
 * SQLite :
 * php maintenance/sqlite.php --backup-to nomfichier
 * les images et les autres fichiers média (tout le contenu du répertoire images)
 * les fichiers de configuration LocalSettings.php et AdminSettings.php (si présent)
 * les fichiers programme de MediaWiki, y compris tous les habillages et extension, surtout si vous les avez modifiés.

Utilisation d'un package tarball
Si vous utilisez un package tarball, décompressez le fichier sur le serveur où tourne l'ancienne version de MediaWiki. Il se peut que vous ayez besoins de taper les lignes de commande en tant que sudo si vous n'avez pas les pleins privilèges de gestion des répertoires d'installation du wiki sous votre compte courant. Quand vous décompressez le package tarball, normalement un nouveau répertoire pour la nouvelle version du wiki sera créé et vous devrez copier les nouveaux fichiers et répertoires dans votre répertoire wiki actuel. Si vous voulez tout faire en une seule fois, faites plutôt ceci :

$ tar xvzf mediawiki-.tar.gz -C /chemin/de/votre/wiki/ --strip-components=1

Sur les anciennes distributions Linux (par exemple RHEL/CentOS 4.x), faites ceci :

$ tar xvzf mediawiki-.tar.gz -C /chemin/de/votre/wiki/ --strip-path=1

Les personnes qui utilisent une ancienne version de tar (par exemple GNU tar 1.13.x) qui ne dispose pas des drapeaux --strip-components</tt> ou --strip-path</tt> peuvent décompresser l'archive sans l'option -C</tt> puis copier de façon récursive le contenu du dernier package dans la structure précédente du répertoire wiki, comme suit :

$ tar xvfz mediawiki-.tar.gz $ cp -r mediawiki-/* /chemin/de/votre/wiki/

Les utilisateur d'(Open)Solaris devront utliser gstar, ou :

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

Utilisateurs Windows : utilisez 7zip pour extraire le tarball.

Utilisateurs FTP : Extrayez les fichiers localement et téléversez les répertoires et fichiers vers le serveur.

Utilisation de Git
Si vous utilisez Git, exportez les fichiers dans un endroit propre. Remplacez tous les fichiers existants avec les nouvelles versions, en préservant la structure des répertoires. Le code du noyau est maintenant à jour.

Fichiers restants qui pourraient provoquer des erreurs
Si vous n'utilisez pas les profils, mais disposez d'un fichier  dans le répertoire racine de MediaWiki, vous pouvez recevoir des erreurs faisant référence à. L'effacement ou le renommage du fichier  devrait corriger cette erreur. Le fichier, situé aussi dans le répertoire racine de MediaWiki, peut servir en tant que modèle que vous pouvez activer si vous voulez définir des profils à l'avenir.

Lancez le script de la mise à jour
Vous pouvez mettre à jour MediaWiki soit depuis l'invite de commande ou depuis le web. Si vouis avez un accès sur votre serveur, la mise à jour depuis l'invite de commande est recommandé, étant donné que cela réduit le risque que le processus de mise à jour soit interrompu par un timeout ou un réinitialisation de la connexion.

Ligne de commande
Depuis un invite de ligne de commandes ou un shell SSH ou similaire, changer le répertoire courant pour être dans le dossier maintenance</tt> et exécuter le script suivant :

$ php update.php

Notez que pour des installations simples sur Windows (par exemple avec XAMPP) : assurez-vous tout d'abord que votre serveur web (Apache par exemple) et votre base de données (MySQL par exemple) tournent. Puis lancez update.php : faites un clic droit dessus, sélectionnez Ouvrir avec, et sélectionnez PHP.exe. L'invite de commande qui en résulte se fermera sans doute automatiquement quand le processus de mise à jour sera terminé.

MediaWiki va inspecter le schéma de la base de données, et le mettre à jour pour qu'il puisse être utilisable avec le nouveau code de MediaWiki, en ajoutant des tables et des colonnes si nécessaire.

Que faire si vous avez l'erreur "No superuser credentials"
Dans le cas où le script s'interrompt avec le message suivant :

"No superuser credentials could be found. Please provide the details of a user with appropriate permissions to update the database. See AdminSettings.sample for more details" (Aucun crédit super-utilisateur n'a été trouvé. Fournissez SVP les détails d'un utilisateur disposant des autorisations nécessaires pour mettre à jour la base de données. Voir AdminSettings.sample pour plus de détails.)

Ceci veut dire que vous devrez vérifier que vous avez défini $wgDBadminuser and $wgDBadminpassword dans votre fichier LocalSettings.php (dans le répertoire principal). Il s'agit de l'utilisateur et du mot de passe nécessaire au script pour qu'il puisse accéder à la base de données. (Note : avant MediaWiki 1.16, ces variables étaient situées dans . Ce fichier a été retiré dans la 1.16 et les variables concernées ont été déplacées dans LocalSettings.php.)

Que faire si vous avez l'erreur "unexpected T_STRING"
Des lancements individuels de Update.php depuis l'invite de commande peut donner l'erreur suivante : syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' \ in ~/maintenance/commandLine.inc on line 13

Cette erreur se produit si update.php est lancé depuis php4.

Ceux qui ont leur site hébergé par des fournisseurs qui propose à la fois php4 et php5 doivent suivre les étapes suivantes :
 * 1) depuis l'invite de commande, entrez la commande 'whereis php5'
 * 2) une fois que vous avez trouvé l'emplacement du chemin vers php5, listez les contenus du répertoire php5/bin
 * 3) une fois que vous avez déterminé le nom de l'exécutable php (soit php, soit php5), tapez le chemin complet pour exécuter update.php

Ci-dessous un exemple : $ whereis php5 $ ls -la /usr/local/php5/bin $ /usr/local/php5/bin/php update.php

Que faire si vous avez l'erreur 'register_argc_argv is set to false'
Quelquefois, vous pouvez avoir cette erreur :

Cannot get command line arguments, register_argc_argv is set to false

register_argc_argv=true
 * 1) Allez sur ~/maintenance. Soit vous éditez le fichier 'php.ini' existant, soit vous le créez.
 * 2) Ajoutez une ligne comme suit :
 * 1) Relancez php update.php

Utilitaire de mise à jour Web

 * Voir aussi update.php

Si votre base de données est déjà importante et est utilisée largement en production, vous ne devriez pas utiliser l'utilitaire de mise à jour Web. Dans ce cas, vous devriez utiliser update.php depuis l'interface de ligne de commande (et non depuis le web). La notion de "trop gros" dépend de votre serveur (par exemple sur ses performances, le chargement et le temps de réponse maximum de l'exéctution PHP permet au script de se lancer). Si votre wiki est trop gros pour l'utilitaire de mise à jour web et que votre fournisseur n'autorise pas l'accès à la ligne de commande, vous aurez besoin de migrer votre wiki vers un compte d'hébergement qui dispose d'un accès au shell;


 * 1) Faites toujours une sauvegarde avant d'exécuter la maintenance de la base de données.
 * 2) Naviguez sur /mw-config/</tt>. Par exemple, si votre wiki se trouve à  http://exemple.org/w/index.php </tt>, naviguez sur  http://exemple.org/w/mw-config/ </tt>.
 * 3) Sélectionnez votre langue et cliquez sur continuer.
 * 4) L'installation existance devrait être détectée. Suivez les instruction affichées à l'écran pour la mettre à jour. Si l'on demande l'"upgrade key" (clé de mise à jour), ouvrez votre fichierLocalSettings.php et recherchez la clé assignée à $wgUpgradeKey.

Mise à jour des extensions
Certaines extensions ont été mises à jour afin de fonctionner avec la nouvelle version de MediaWiki. Assurez-vous de mettre à jour ces extensions avec leurs dernières versions. Il se peut que vous ayez à faire des mises à jour manuelles pour personnaliser les extensions.

Vérification de la mise à jour
Une fois la mise à jour terminées, parcourez le wiki et vérifez que les opérations suivantes fonctionnent comme prévu :


 * la visualisation des pages
 * la modification des pages
 * le téléversement d'un fichier

Allez sur Special:Version et vérifiez que le numéro de version affiché est correct et que les extensions sont bien présentes.

Est-ce que c'est vraiment difficile de mettre à jour ?
Si le seul fichier que vous avez modifié est le LocalSettings.php et que vous effectuez une mise à jour depuis une version 1.5 ou ultérieure, alors le processus est très simple. La quantité de travail à fournir de vos propres mains ne prendra que quelques instants. Les changements de schéma de la base de données prendront un temps proportionnel à la taille de votre base de données &mdash; certainement des heures pour des wikis qui comprennent des millions de pages, mais pour des wikis qui font une taille moyenne de quelques milliers de pages, cela se fait généralement en quelques secondes.

Les mises à jour mineures, dans une même version majeure (comme par exemple de la version 1.13.0 à la 1.13.1) ne nécessitent pas de changement de schéma. Vous n'avez qu'à mettre à jour les fichiers. La base de données ne nécessite pas de mise à jour, il n'est donc pas nécessaire de lancer le script d'installation.

La mise à jour depuis une version 1.4 ou antérieure est potentiellement plus complexe du fait que le support des jeux de caractères autres que UTF-8 a été abandonné et que le schéma de stockage du texte brut a changé. Veuillez lire la section appropriée dans le fichier UPGRADE</tt>

La mise à jour devient plus complexe si vous avez modifié le code source de votre configuration et que vous ne souhaitez pas voir vos modifications écrasées par les fichiers de mise à jour. Des outils comme diff, patch, Meld ou WinMerge peuvent être bien utiles. Il peut aussi y avoir d'autres problèmes si vous utilisez des extensions qui ne sont plus maintenues. Mettez à jour vos extensions en même temps que MediaWiki.

Si vous avez modifié l'habillage ou utilisé un habillage personnalisé, vous voudrez très certainement l'ajuster afin qu'il fonctionne à nouveau avec la nouvelle version de MediaWiki.
 * Astuce : Au lieu de mettre à jour vos fichiers css et js (javascript) « globaux » à chaque fois, vous pouvez tout simplement ajouter le code sur vos pages MediaWiki:Common.js et MediaWiki:Common.css. Étant donné qu'elles font partie intégrante de la base de données qui sera réutilisée quand vous appliquez la mise à jour, vous n'aurez plus à mettre à jour vos fichiers du noyau MediaWiki.

De quelle façon dois-je mettre à jour une très vieille version ? En une seule fois, ou en plusieurs fois ?
En une seule fois, depuis votre vieille version directement vers la dernière version stable. L'immense majorité des rapports ainsi que les tests automatiques indiquent que le faire en une seule fois marche à merveille.

Si vous avez du mal à la croire, lisez cet envoi à la liste de distribution.

Est-ce que je dois d'abord sauvegarder ?
Réponse courte : oui.

Réponse longue : tout dépend de a) la valeur que vous attribuez à vos données, b) la difficulté de créer une sauvegarde et c) combien vous êtes à l'aise pour faire de la maintenance et de l'administration avec MySQL.

L'échec lors d'une mise à jour peut laisser votre base de données dans un état aléatoire, se retrouvant entre deux versions. Il peut être préférable de renommer temporairement une table importante et échouer avant de recréer la table correctement. Cela peut changer une définition de champ vers un type de donnée incorrect. Il est extrêmement rare qu'une mise à jour provoque une perte de données irréversible. La plupart du temps, les corruptions de données qui se sont produites pourront être inversées par un administrateur talentueux.

La récupération est souvent complexe. Les volontaires des forums de support ne seront pas pressés de vous aider si vous négligez de faire une sauvegarde et que vous ayez ensuite besoin de faire une récupération suite à une corruption liée à une mise à jour. Une meilleure approche est celle-ci : pouvoir revenir sur votre sauvegarde puis rapporter le bogue lié au processus de mise à jour qui a provoqué la corruption.

Est-ce que je peux garder mon fichier LocalSettings.php ?
Oui, mais il est possible que vous ayez à faire quelques changement mineurs. Le format de LocalSettings.php est largement retro-compatible. Les modifications qui cassent la compatibilité de LocalSettings.php seront documentés dans la section "configuration changes" des notes de version.

Est-ce que mon wiki peut rester en ligne lors de sa mise à jour ?
En temps normal, oui, cependant Git peut temporairement (pendant quelques secondes) le mettre hors service.

Lorsque vous faites une mise à jour d'une version mineure de MediaWiki, tout ce que vous avez à faire est de mettre à jour les fichiers source.

Note : Les points suivant supposent que vous disposez d'un accès aux lignes de commande. Si vous effectuez une mise à jour entre deux versions majeures de MediaWiki, il est préférable de suivre la procédure suivante :


 * 1) Extrayez la nouvelle version de MediaWiki dans un nouveau répertoire.
 * 2) Préparez ce nouveau répertoire : copiez votre LocalSettings.php depuis votre ancien répertoire, copiez toutes les extensions et habillages installés (s'il y en a).
 * 3) Dans les notes de release de la nouvelle version, regardez si certaines modifications sont nécessaires au niveau du LocalSettings.php.
 * 4) Placez la base de données en mode lecture seule en insérant la variable suivant dans le LocalSettings.php de l'ancien répertoire - les utilisateurs verront ce message s'ils tentent de faire une modification lors du processus de mise à jour :