Manuel:Restaurer un wiki à partir d'une sauvegarde

From mediawiki.org
This page is a translated version of the page Manual:Restoring a wiki from backup and the translation is 100% complete.

Le wiki doit être sauvegardé régulièrement, même s'il vous n'avez jamais besoin de le restaurer : les sauvegardes rassurent. D'un autre côté la sauvegarde est inutile si vous ne pouvez pas restaurer , et s'entraîner à restaurer enlève l'angoisse à venir. D'où ces instructions.

Versions et mise à jour

Les instructions de cette page sont en majorité applicables à pratiquement toutes les versions de MediaWiki. Vous pouvez restaurer la base de données vers une version plus récente de MediaWiki, mais assurez-vous de bien exécuter le script de mise à jour. Par contre il ne vous est pas permis de restaurer une base de données issue d'une version récente, dans une version plus ancienne du logiciel.

Transfert de fichiers

A moins que vous ayez un accès direct au serveur qui héberge votre wiki (et même dans ce cas) il vous faudra choisir une méthode pour transférer les fichiers :

Vue d’ensemble

  1. recréer la base de données, l'utilisateur avec ses droits
  2. importer la sauvegarde de la base de données
  3. importer les fichiers MediaWiki
  4. vérifier le fichier de configuration
  5. tester

Recréer la base de données, les utilisateurs et les droits

Sur le serveur où vous restaurez MediaWiki, assurez-vous d'avoir

  1. une instance fonctionnelle de MySQL
  2. un utilisateur MySQL avec les droits suffisants dans le cas où vous ne pourriez pas utiliser l'utilisateur root de MySQL

Si vous restaurez à partir d'une sauvegarde suite à une base de données corrompue, vous devez réinstaller MySQL ! Une fois que MySQL fonctionne correctement, créez une nouvelle base de données MySQL et attribuez les droits de votre compte utilisateur sur la base de données comme listés ci-dessous. Vous pouvez consulter la documentation MySQL, la documentation du panneau de contrôle de votre fournisseur d'hébergement, ou la documentation de tout autre utilitaire que vous utilisez, pour vous renseigner sur la manière de faire cela. A partir de l'invite MySQL et en tant qu'utilisateur MySQL root, entrez :

CREATE DATABASE wikidb;
CREATE USER wikidb_user IDENTIFIED BY 'wikidb_userpassword';

USE wikidb;
GRANT SELECT, UPDATE, INSERT, DELETE, ALTER, CREATE, INDEX, DROP, LOCK TABLES, USAGE ON wikidb.* TO wikidb_user;
Il n'est pas important que la base de données ait un nom différent; bien sûr, dans un environnement d'hébergement commercial où les noms des bases de données sont habituellement préfixés avec un nom d'utilisateur du compte de l'hébergeur, un nom de base de données différent est quasiment garanti. En plus, le nom utilisateur peut être différent, de même pour le mot de passe. Vous devrez aligner respectivement le fichier LocalSettings.php sur le nouvel emplacement.

Importer la sauvegarde d'une base de données

See also Manual:Importing XML dumps

Puis importez la sauvegarde de votre base de données. Cela va créer les tables de la base de données et les remplir avec les données. L'import requiert un temps variable, qui dépend du nombre de pages, d'utilisateurs, de modifications, etc. réalisées dans votre wiki.

Méthodes

A partir de la ligne de commande en utilisant mysqladmin

S'il existe déjà une base de données et que vous souhaitez la remplacer entièrement par le contenu de la sauvegarde. Pour supprimer la base de données :

mysqladmin -u wikidb_user -p drop wikidb

Adaptez wikidb_user et wikidb selon le cas. Le paramètre -p sert à vous demander le mot de passe.

Ensuite pour créer une nouvelle base de données :

mysqladmin -u wikidb_user -p create wikidb

Par exemple après avoir sauvegardé avec mysqldump :

# Ne faites pas ceci maintenant: c'est la manière dont vous auriez pu faire la sauvegarde.
mysqldump --default-character-set=binary --user=wikidb_user --password=wikidb_userpassword wikidb > dump_of_wikidb.sql
# La base de données sauvegardée du wiki wikidb peut avoir un nom différent
# de celui de la base de données du wiki wikidb créée ci-dessus. Bien sur wikidb_user et
# wikidb_userpassword peuvent aussi être différents.

Assurez-vous d'avoir spécifié le bon ensemble de caractères sinon la restauration peut échouer, vérifier LocalSettings.php pour connaître l'ensemble des caractères utilisé.

Pour importer dump_of_wikidb.sql à partir de la ligne de commande faites simplement :

mysql -u wikidb_user -p wikidb < dump_of_wikidb.sql

Puis si nécessaire faites :

php wikifolder/maintenance/update.php
# wikifolder est souvent appelé 'w', pour donner un chemin 
# semblable à 'htdocs/w/maintenance/update.php'
Après avoir utilisé dump, il ne faut pas utiliser mysqlimport pour restaurer la base de données de votre wiki mais sql. Ceci parce que mysqlimport demande à ce que les données soient chargées sous format texte avec des délimiteurs, comme par exemple CSV, alors que la sortie de mysqldump est une séquence de déclarations SQL.
Si vous ne recopiez pas l'ancien LocalSettings.php dans la nouvelle installation, vérifiez-bien avant d'exécuter php update.php, que le préfixe de la nouvelle base de données est initialisé à la valeur de l'ancienne

Voir aussi Exécuter les commandes SQL à partir d'un fichier texte

Si votre site est lent après avoir importé un dump de la base de données, vous devrez peut être reconstruire les index. Voir Après avoir importé les index des fichiers SQL et non encore indexé

Avec le navigateur pour phpMyAdmin

Ouvrir le navigateur de phpMyAdmin, se connecter, sélectionner la base de données du wiki (voir le fichier LocalSettings.php si vous n'êtes pas sûr). Suivez les instructions de la documentation phpMyAdmin.

A partir d'un dump XML

Article principal : Manuel:Importer les dumps XML

Pour importer un dump XML dans un wiki, utiliser l'outil en mode ligne de commande importDump.php . Faire :

php wikifolder/maintenance/importDump.php --dbpass wikidb_userpassword --quiet --wiki wikidb path-to-dumpfile/dumpfile.xml
php wikifolder/maintenance/rebuildrecentchanges.php

Remplacer wikidb_userpassword, wikidbet path-to-dumpfile/dumpfile.xml selon les besoins.

Puis utiliser ImportImages.php pour importer les images :

php wikifolder/maintenance/importImages.php wikifolder_backup/images

Importer les fichiers MediaWiki

See also Manual:importImages.php

Puis restaurez la sauvegarde de votre système de fichiers MediaWiki : c'est l'étape finale assez conséquente du processus de restauration.

  • Si vous avez suivi les instructions du manuel de sauvegarde, et que vous avez enregistré le répertoire entier, celui-ci comprendra les répertoires d'images, les extensions, les habillages personnalisés, etc. et le fichier de configuration.
  • Si vous n'avez sauvegardé que des répertoires individuels, comme les images, les extensions, etc. alors il faudra d'abord téléverser ou copier une nouvelle installation des fichiers MediaWiki, puis transférer ces répertoires avec leurs fichiers dans la nouvelle arborescence à leur emplacement respectif.

Pour effacer et restaurer le système de fichiers du wiki

N'oubliez pas non plus de restaurer les composants du système de fichiers qui pourraient être nécessaires, par exemple les images, le logo et les extensions. Particulièrement de corriger LocalSettings.php s'il comporte des incohérences. Une séquence de commandes Linux pour effacer et restaurer le système de fichiers du wiki pourrait être :

wget http://download.wikimedia.org/mediawiki/1.41/mediawiki-1.41.0.tar.gz
tar -xvzf mediawiki-1.41.0.tar.gz
rm mediawiki-1.41.0.tar.gz
rm -fR wikifolder/
mv mediawiki-1.41.0 wikifolder
rm -fR wikifolder/extensions/
cp -R wikifolder_backup/extensions wikifolder/extensions

Ouvrir le wiki dans le navigateur et cliquer sur le lien Set up the wiki first permettant de configurer le wiki. Voir Manuel:script Config pour les détails. Si besoin, vous pouvez exécuter l'installeur php wikifolder/maintenance/install.php en mode ligne de commande. Une fois ceci réalisé, modifier LocalSettings.php pour l'adapter à la nouvelle installation, en restituant les lignes des extensions, etc. Restaurer à partir de la sauvegarde tout autre fichier tel que le logo personnalisé et l'icône favorite avec leur chemin correct.

Si vous n'avez pas fait l'installation en tant qu'utilisateur root sous Linux/Unix et que les images et les vignettes ne fonctionnent pas, vous devrez en corriger le propriétaire ou répercuter les droits d'accès de manière récursive à partir du répertoire contenant les images téléversées (habituellement wikifolder/images).

Notes

  • Si vous suivez le dernier processus, assurez-vous que votre nouvelle installation a la même version de MediaWiki que l'ancienne
  • Vérifiez le cas échéant, que le répertoire utilisé pour les téléversements (comme images en version 13) possède les droits d'accès suffisants; il doit être accessible en écriture par le serveur web.
  • Assurez-vous aussi que les répertoires des extensions ont les droits d'accès appropriés (par exemple sous linux : chmod -R o=rx extensions ou chmod -R o=rx includes)
  • La meilleure méthode à utiliser pour le transfert manuel d'un wiki à partir d'une plateforme Windows vers une plateforme Linux consiste à :
    1. installer manuellement MediaWiki sur la plateforme Linux à partir d'une archive tar comme indiqué dans Installation manuelle du Wiki (c'est à dire n'essayez pas d'utiliser l'installation automatique à partir d'un paquet)
    2. remplacer le répertoire MediaWiki nouvellement installé (par exemple /var/www/mediawiki...) sur votre machine Linux par le répertoire de base MediaWiki de votre machine Windows
    3. mettre à jour la base de données MySQL de votre machine Linux (par exemple wikidb) avec la base de données du wiki provenant de la machine Windows (c'est à dire utiliser la sauvegarde et les fonctions de restauration de mysql comme évoqué ci-dessus)
  • Après avoir importé la base de données d'un wiki, même si celle-ci est opérationnelle, quelques problèmes mineurs peuvent apparaître :
    1. Il faudra peut être réparer Searchindex : dans phpMyAdmin, entrer REPAIR TABLE wikidb.searchindex; pour reconstruire l'index de recherche. wikidb est le nom de votre base de données.
    2. Le classement de certaines lignes a pu être modifié. Vérifiez-le avec la base de données d'origine.

Vérification du fichier de configuration

La tâche finale comprend la vérification et éventuellemnt la modification du fichier LocalSettings.php .

  • Si vous faites la restauration sur le même serveur qui a servi à la sauvegarde, vous n'aurez vraisemblablement rien à modifier.
  • Si vous restaurez sur un nouveau serveur (par exemple lorsque vous déplacez ou dupliquez MediaWiki), il est probable que certaines entrées seront forcément à corriger, de même que pour les informations de connexion à la base de données.

Vérifiez les options de configuration suivante :

Option de configuration Action à faire Valeur par défaut ou exemple
$IP Doit correspondre aux chemins sur le nouveau serveur

(habituellement conservé, modification non demandée)

Par défaut :
 if( defined( 'MW_INSTALL_PATH' ) ) {
 	$IP = MW_INSTALL_PATH;
 } else {
 	$IP = dirname( __FILE__ );
 }
$wgScriptPath Doit correspondre au chemin sur le nouveau serveur

$wgScriptPath = "wikifolder";
Exemple :
$wgScriptPath = "/w";

$wgArticlePath Doit correspondre au chemin sur le nouveau serveur

Exemples :
$wgArticlePath = "$wgScriptPath/$1";
$wgArticlePath = "/wiki/$1";

$wgDBserver Vérifiez que le nom du serveur de la base de données est correct

Exemple :
$wgDBserver = "localhost";

$wgDBname Peut changer dans un environnement d'hébergement partagé

$wgDBname = "wikidb";

$wgDBuser Peut changer dans un environnement d'hébergement partagé

$wgDBuser = "wikidb_user";

$wgDBpassword Vérifiez que ceci est correct pour le nouvel utilisateur

$wgDBpassword = "wikidb_userpassword";

Pensez aussi à vérifier les chemins vers diff3, ImageMagick, etc.

Test

À ce stade, essayez d'utiliser le wiki du nouveau serveur. Connectez-vous en tant que sysop et qu'utilisateur régulier pour vérifiez que l'affichage, la création et l'édition des pages et le téléversement des fichiers fonctionnent toujours. Corrigez tous les problèmes signalés par PHP ou MediaWiki lui-même.

Problèmes fréquents

Après avoir fait le transfert, des avertissements PHP peuvent apparaître disant que certains fichiers ne sont pas accessibles. Il est probable que ce soit le plus souvent causé par phabricator:T37472 : La colonne md_deps de la table module-deps contient les chemins absolus des fichiers; ils sont utilisés pour localiser les images et les fichiers LESS desquels dépend le CSS. Ces chemins seront cassés si le wiki est déplacé vers un autre répertoire ou mis sur un autre serveur.

En attendant que ce bogue soit résolu, vous pouvez utiliser ce contournement pour corriger manuellement les entrées erronnées de la table module_deps :

SET @old='wiki.old-domain.org';
SET @new='wiki.new-domain.org';

UPDATE `module_deps` SET `md_deps` = REPLACE( `md_deps`, @old, @new );

Cela peut être utilisé pour actualiser les segments erronés du chemin et corriger l'erreur.

Voir aussi

Références