Attention : vous consultez actuellement la documentation dédiée aux versions 1.x de Moodle. La documentation pour les versions 2.x de Moodle est consultable ici : Migration de Moodle, celle pour les versions 3.x de Moodle est consultable ici : Migration de Moodle et celle pour Moodle 4.x est consultable là : Migration de Moodle.

« Migration de Moodle » : différence entre les versions

De MoodleDocs
Aller à :navigation, rechercher
Aucun résumé des modifications
(Suppression informations liées à Moodle 2.x, existants dans la doc dédiée.)
 
(Une version intermédiaire par un autre utilisateur non affichée)
Ligne 25 : Ligne 25 :


:Entrez l'url de votre ancien serveur (<nowiki>http://ancienserveur.com/</nowiki>) et de votre nouveau serveur (<nowiki>http://nouveauserveur.com/</nowiki>) et cela corrigera les tables mysql. Vous devrez également réinitialiser les liens mis en cache en redémarrant votre serveur web.
:Entrez l'url de votre ancien serveur (<nowiki>http://ancienserveur.com/</nowiki>) et de votre nouveau serveur (<nowiki>http://nouveauserveur.com/</nowiki>) et cela corrigera les tables mysql. Vous devrez également réinitialiser les liens mis en cache en redémarrant votre serveur web.
:''Nota : le chemin d'accès au script "replace" a [[:fr:Migration de Moodle|changé depuis Moodle 2.0]]."


'''Attention''' : avant d'utiliser ''replace.php'', faites une sauvegarde de votre base de donnée Moodle et vérifiez que cette sauvegarde est correcte en la restaurant sur une installation de test (par exemple, sur votre ordinateur local).
'''Attention''' : avant d'utiliser ''replace.php'', faites une sauvegarde de votre base de donnée Moodle et vérifiez que cette sauvegarde est correcte en la restaurant sur une installation de test (par exemple, sur votre ordinateur local).

Dernière version du 28 août 2014 à 09:07

Parfois, vous devez déplacer votre site Moodle d'un emplacement à un autre. Cela s'appelle une migration, lorsque vous devez modifier la valeur de $CFG->wwwroot dans votre fichier config.php. La migration est découpée en plusieurs phases, détaillées ci-dessous :

Mise à jour de 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 cours

Vous pouvez avoir besoin de restaurer un seul cours d'un ancien site vers un nouveau, notamment si vous testez la migration. Lorsque vous restaurez un fichier de sauvegarde Moodle sur un autre serveur que celui qui a servi à créer la sauvegarde, les liens absolus vers les fichiers peuvent être brisés. Pour corriger ce problème, ouvrez le fichier backup-coursename.zip et modifiez le fichier moodle.xml en remplaçant les liens par $@FILEPHP@$.

Par exemple, remplacez http://votre-serveur.com/file.php/243/ par $@FILEPHP@$

Lorsque le fichier sera restauré, cela utilisera le bon chemin pour le nouveau cours.

Migrer un site Moodle complet

Cela signifie 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 :

  • 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.
  • 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.
  • Copiez le code de Moodle vers le nouveau serveur - profitez-en éventuellement pour faire une mise à jour à la dernière version.
  • Dans votre dossier Moodle, modifiez la variable $CFG->wwwroot dans le fichier config.php pour votre nouveau serveur.
  • Déposez le contenu de votre répertoire de données (vérifiez en la valeur dans $CFG->dataroot) sur le nouveau serveur. 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.
  • Déposez également la copie de votre base de données SQL sur votre nouveau serveur (vous pouvez recourir à une version .zip pour gagner du temps dans le transfert).
  • Substituez à la base de données de votre nouveau site Moodle, la sauvegarde de la base de votre ancien site. 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 l'ancienne 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 en recourant au programme 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/replace.php
Entrez l'url de votre ancien serveur (http://ancienserveur.com/) et 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.
Nota : le chemin d'accès au script "replace" a changé depuis Moodle 2.0."

Attention : avant d'utiliser replace.php, faites une sauvegarde de votre base de donnée Moodle et vérifiez que cette sauvegarde est correcte en la restaurant sur une installation de test (par exemple, sur votre ordinateur local).

Vous pouvez également utiliser 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 rectifiée dans la base de votre nouveau site.

#sed -e 's/ancienserveur.com/nouveauserveur.com/' mysqldump.sql

Astuce : pensez à consulter le fichier sql "dump" 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

  • Adaptez votre fichier config.php, en vous basant sur celui du site d'origine (pensez notamment à conserver les sels de mot de passe)
  • 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.

En résumé

  1. Installez une version de Moodle sur votre nouveau serveur, identique à celle de votre ancien site
  2. Sauvegardez le dossier de données de l'ancien site (via votre connexion ftp)
  3. Sauvegardez la base de données de l'ancien site (via phpmyadmin)
  4. Déposez le dossier de données sauvegardé dans le dossier de données du nouveau site (via votre connexion ftp)
  5. Substituez à la base de données du nouveau site celle de l'ancien à partir d'un "dump" de celle-ci (via phpmyadmin)
  6. Adaptez votre fichier config.php, en vous basant sur celui du site d'origine (pensez notamment à conserver les sels de mot de passe)

Pensez à remplacer l'adresse de l'ancien site par celle du nouveau soit :

  • au sein même du fichier sql, avant de l'installer sur le nouveau site (fonction chercher/remplacer dans un éditeur de texte)
  • en recourant au script replace.php (depuis votre navigateur)

Remarque : conserver le même nom de dossier pour les données de Moodle d'une part, et pour la base de données d'un site à l'autre diminuera un peu plus les possibles difficultés de transfert.

Changements dans le DNS

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.

Accès interne et externe

Pour finir, vérifiez que l'accès à votre site est possible, autant en interne que depuis internet.

Copie d'un serveur de production, pour test

Moodle1.9

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 (à partir de Moodle 1.9) :

$CFG->noemailever = true;

Voir aussi