Vous êtes sur la page 1sur 3

Migration de Moodle

Une plateforme Moodle est constituée de 3 éléments qui devront être


déplacés ou recopiés :
 Le code de Moodle (les fichiers PHP, JS, CSS,...) ;
 Le contenu de la base de données stocké dans une autre application type
MySQL, PostgreSQL,... ;
 Et le dossier Moodledata !
Sans l'un de ces 3 éléments, la plateforme ne sera pas complète. Il faudra
ajuster certaines valeurs dans config.php pour indiquer tout ce qui a changé entre le
serveur 1 et le serveur 2 (adresse Internet, dossiers moodledata,...). Notons qu'il
pourra être nécessaire de transformer certaines valeurs en base de données pour
les liens qui seraient brisés. Pour une migration réussie, suivons les instructions ci-
dessous...

a) Migrer un site Moodle complet – méthode 1


Il s'agit ici de migrer un site Moodle complet d'un serveur vers un
autre. Si vous changiez de domaine ou d'adresse IP pour votre nouveau serveur,
vous deviez suivre les étapes suivantes :
 Mode de maintenance : placez votre site Moodle actuel en mode de
maintenance pour empêcher toute modification dans la base de données. Ne
laissez pas les administrateurs se connecter durant la migration, car ils ne
sont pas affectés par le mode de maintenance.
 Sauvegarde de la base de données : sauvegardez votre base de données
Moodle en suivant les instructions de la page de mise à jour. Cela vous
donnera un fichier texte contenant l'export mysql.
 Importation de la base de données : importez ces données sur le nouveau
serveur. En cas de changement dans le nom de la base, de l'utilisateur ou du
mot de passe,... pensez à adapter les paramètres du fichier config.php
($CFG->dbtype, $CFG->dblibrary, $CFG->dbhost, $CFG->dbname, $CFG-
>dbuser, $CFG->dbpass, $CFG->prefix et/ou $CFG->dboptions).
 Copie du code source Moodle : copiez le code de Moodle vers le nouveau
serveur - profitez-en éventuellement pour faire une mise à jour à la dernière
version.
 Modification de $CFG->wwwroot : dans votre dossier Moodle, modifiez la
variable $CFG->wwwroot dans le fichier config.php pour votre nouveau
serveur.
 Copie du dossier de données (moodledata) : déposez le contenu de votre
dossier de données (vérifiez en la valeur dans $CFG->dataroot) sur le
nouveau serveur.
 Vérification des permissions : vérifiez que les permissions sur les fichiers
restent les mêmes dans le nouveau dossier, et modifiez la valeur dans le
fichier config.php si vous avez changé l'emplacement sur le nouveau serveur.
 Changement de l'URL du site Moodle : si votre site à une nouvelle URL, il
est nécessaire de substituer dans la base de données l'adresse de votre
ancien site par la nouvelle. Ceci est rendu indispensable par le fait que les
liens vers les images, les fichiers, etc. sont enregistrés en tant que liens
absolus, reposants donc sur la valeur issue de $CFG->wwwroot de votre
ancien site. De sorte qu'en déposant la copie de votre base de données de
l'ancien site vers le nouveau, les liens seront brisés. Ceci peut être aisément
résolu de deux manières différentes :
 La première méthode a recouru au script replace.php. Après avoir
déposé et mis en place la base de données sur le nouveau serveur,
allez avec votre navigateur internet vers l'adresse http://[nom-de-votre-
propre-serveur.com]/admin/tool/replace/index.php. Saisissez l'URL de
votre ancien serveur (http://ancienserveur.com/) et celle de votre
nouveau serveur (http://nouveauserveur.com/) et cela corrigera les
tables mysql. Vous devrez également réinitialiser les liens mis en cache
en redémarrant votre serveur web.
 La deuxième méthode utilise la fonction rechercher/remplacer d'un
simple éditeur de texte afin de substituer à l'ancienne URL la nouvelle
adresse dans la sauvegarde de votre ancienne base de données, avant
de déposer cette sauvegarde modifiée dans la base de votre nouveau
site. Par exemple, avec sed :
sed -e 's/ancienserveur.com/nouveauserveur.com/g' oldmysqldump.sql
> newmysqldump.sql

Nota : cette méthode ne remplace pas les URLs dans les blocs, car ils y sont
stockés en forme base64 et ne peuvent donc pas être détectés.
Astuce : pensez à consulter le fichier sql de votre ancienne base de données
afin d'y vérifier comment était référencée l'URL de votre ancien site.
Astuce : si la restauration du fichier de la base de données ne se termine pas
correctement, à cause des timeout liés à un trop gros fichier, vous pouvez
utiliser le script BigDump, disponible à l'adresse :
http://www.ozerov.de/bigdump.php
 Test de la migration : pour tester votre nouvelle installation, accédez à
Moodle avec votre navigateur internet, à l'adresse du nouveau serveur.
Lorsque vous avez vérifié qu'un certain nombre de liens dans les cours
fonctionnent correctement, désactivez le mode de maintenance.

b) Migrer un site Moodle complet – méthode 2


Vous avez accès en ligne de commande sur les deux serveurs ? Dans ce cas,
la méthode ci-dessous est très rapide et efficiente pour migrer un site Moodle.
Elle est également utile pour créer des « instantanés » d'une installation
Moodle.
 Configurer une base de données vide sur le « nouveau » serveur.
 Mettre votre site Moodle existant en mode de maintenance.
 Se connecter en ligne de commande sur le serveur du Moodle existant.
 Utiliser rsync pour copier le dossier moodledata et le dossier contenant
l'installation de Moodle (par exemple public_html ou htdocs) vers le
nouveau serveur. Lancer pour cela la commande suivante (en
remplaçant les termes en majuscules par vos propres données ;
SOURCE = le dossier que vous voulez copier), pour les deux dossiers :
rsync -av -e ssh SOURCE/USERNAME@NEW_SERVER.COM:/PATH/TO/DESTINATION/

 Exporter la base de données existante, en lançant :


mysqldump --allow-keywords --opt -uMySQL_USERNAME -pPASSWORD
DATABASE | ssh USER@DOMAIN "mysql -uMySQL_USERNAME -pPASSWORD
DATABASE"
 Copier le fichier exporté sur le nouveau serveur, et l'importer dans la
base de données créée.
 Sur le nouveau serveur, modifier le fichier config.php avec les
informations adéquates.
 Afin de corriger les liens internes à Moodle, se connecter au Moodle sur
le nouveau serveur en tant qu'administrateur et utiliser l'outil de
recherche et de remplacement pour remplacer l'ancienne URL par la
nouvelle.
 Vérifier que tout fonctionne correctement.

Le tout prend environ 15 minutes.


Une fois tout ceci terminé, il reste à configurer l'éventuelle redirection DNS,
quitter le mode de maintenance du nouveau site et d'éteindre l'ancien.

Vous aimerez peut-être aussi