Migration de Moodle

De MoodleDocs
Aller à :navigation, rechercher

Remarque : la traduction de cette page n'est pas terminée. N'hésitez pas à traduire tout ou partie de cette page ou à la compléter. Vous pouvez aussi utiliser la page de discussion pour vos recommandations et suggestions d'améliorations.


Parfois, il est nécessaire de déplacer un site Moodle d'un serveur à un autre. Par exemple, pour déplacer un site Moodle de votre machine vers un serveur dédié.

Astuce : une erreur habituelle lors d'une migration est d'oublier de modifier les informations du fichier config.php sur le site Moodle qui a été déplacé.

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 changez de domaine ou d'adresse IP pour votre nouveau serveur, vous devrez 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 il ne sont pas affectés par le mode de maintenance.
  • Sauvegarde de la base de données : sauvegardez votre base de donnée Moodle en suivant les instructions de la page de mise à jour. Cela vous donnera un fichier texte contenant l'export mysql.
  • 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 a 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 :
a) la première méthode a recourt 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
Nota : le chemin d'accès à ce script diffère selon les versions de Moodle :
  • ~/admin/replace/ en 2.0 et 2.1
  • ~/admin/tool/replace/ depuis 2.2
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.
b) 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.

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, copier et importer le fichier exporter dans la base de données créée ci-dessus sur le nouveau serveur, en lançant :
mysqldump --allow-keywords --opt -uMySQL_USERNAME -pPASSWORD DATABASE | ssh USER@DOMAIN "mysql -uMySQL_USERNAME -pPASSWORD DATABASE"
  • 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.

Autres éléments à prendre en considération

Changer le lien des images qui pointent vers l'ancien site

So you built your Moodle Server with a http//192.168.0.1/Moodle address. Then you changed the URL for your site to http://OurMoodle.org/Moodle. You changed the Moodle config file so the CFGs point to the new paths, but your images still point to the old url.

One simple, quick solution is to use the Replace script in Moodle to fix this. Login as admin and enter http://OurMoodle.org/admin/tool/replace/index.php in your browser address bar (or http://OurMoodle.com/admin/replace.php in older versions). Use the two form boxes to change http://192.168.0.1/ to http://OurMoodle.org/.

This replace function is only supported on Moodle sites that run on MySQL or Postgres databases. See MDL-26597 and MDL-35099.

Mettre à jour Moodle

Lorsque vous migrez Moodle, c'est souvent une bonne idée et l'opportunité de mettre à jour Moodle vers une version plus récente. Si vous gérez votre propre serveur, suivez les instructions de mise à jour, sinon, voyez si votre hébergeur peut le faire pour vous.

Restaurer un seul espace de cours entre deux serveurs

You may need to restore a single course from an old site to a new one, especially if you are testing the migration. When restoring a Moodle backup file to Moodle on a different server than the one used to create the backup, the absolute referenced links to files maybe broken. To fix this problem open the backup-coursename.zip file and edit the moodle.xml file replacing links with $@FILEPHP@$.

For example, replace http://yourserver.com/file.php/243/ with $@FILEPHP@$

When the file is restored it will use the correct file path for the new course.

Configurer le DNS & masquage d'adresse

Vous avez peut-être effectué des changements dans les entrées de DNS pour votre nouveau site Moodle. Si c'est le cas, il faudra un peu de temps pour que ces changements soient répercutés, soyez donc patient. Si votre serveur est situé derrière un pare-feu, il faudra également adapter les règles du pare-feu pour autoriser l'accès au nouveau serveur. Voyez la documentation sur masquerading.

Vérifier l'accès interne et externe

Si votre Moodle est prévu pour être accessible depuis un réseau interne et depuis internet, vérifiez que l'accès à votre site est possible, autant en interne que depuis internet.

Problème de corruption du Moodledata pendant un transfert FTP

Lors du transfert d'un site Moodle vers un autre hébergement, il est possible que les fichiers déposés et les images, stockées dans le dossier Moodledata, ne soient plus disponibles. Pour vous prémunir de ce dysfonctionnement, vous devrez effectuer le transfert de fichier en "mode binaire" (voir la configuration de votre client FTP).

Consulter ces messages : ici en français, ici en anglais

Copie d'un serveur de production, pour test

Si vous avez effectué une copie d'un serveur de production, pour faire des tests, vous ne souhaitez pas que cette copie envoie des courriels aux inscrits. Pour cela, ajoutez la ligne suivante dans le fichier config.php :

$CFG->noemailever = true;

Voir aussi

Discussions (en anglais) sur les forums de Using Moodle :