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

De MoodleDocs
Aller à :navigation, rechercher
(Page créée avec « {{Installation}} 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 serv... »)
 
m (Modèle traduction)
Ligne 1 : Ligne 1 :
{{Installation}}
{{Installation}}{{Traduction}}
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é.
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é.


Ligne 34 : Ligne 34 :
* '''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.
* '''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.


==Migrating a complete Moodle site - method 2==
== Migrer un site Moodle complet – méthode 2 ==


Do you have shell access on both servers? If so, the following method is a very quick and efficient method to migrate a Unix based site.
Do you have shell access on both servers? If so, the following method is a very quick and efficient method to migrate a Unix based site.

Version du 27 août 2014 à 17:40

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.php en 1.9 (et au moins depuis 1.5),
  • ~/admin/replace/ en 2.0 et 2.1, et
  • ~/admin/tool/replace depuis 2.2 et jusqu'au moins 2.7 ;
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

Do you have shell access on both servers? If so, the following method is a very quick and efficient method to migrate a Unix based site.

It is also useful for creating snapshots or test sites.

  • Set up a new empty database on the new server.
  • Place your existing Moodle site into maintenance mode.
  • Login to shell on the old existing server.
  • Use rsync to copy moodledata and public_html (or whatever directory your Moodle install is in) to the new server - execute (replacing caps with your details; SOURCE = the directory you want to copy) for each directory:
rsync -av -e ssh SOURCE/ USERNAME@NEW_SERVER.COM:/PATH/TO/DESTINATION/
  • Dump existing database and move and import into database on new server by executing:
mysqldump --allow-keywords --opt -uMySQL_USERNAME -pPASSWORD DATABASE | ssh USER@DOMAIN "mysql -uMySQL_USERNAME -pPASSWORD DATABASE"
  • On the new server, update config.php with relevant details.
  • To fix any internal Moodle links, login to your "new" Moodle install on your new server and use the Search and replace admin tool to search and replace the old uri for the new.
  • Make sure everything is working.

Takes about 15 minutes.

When you are happy all has gone well, set up redirects/make DNS changes if required, take new site out of maintenance mode and "switch off" old site.

Other points to consider

Changed URL image links set to old 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.

Upgrade Moodle

When migrating Moodle it is often a good idea to take the opportunity to upgrade Moodle to the latest version. If you manage your own server, follow the instructions in upgrading moodle, otherwise check if your host can upgrade for you.

Restoring a single course across servers

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.

DNS & Masquerading changes

You may have had to change the DNS entries for the new Moodle site. If you have done so, it will take some time for the changes to replicate, so be patient. If your server is located behind a firewall, you may also have to change your firewall rules to allow access to the new server. See the masquerading docs.

Internal and external access

If you have a set up where your Moodle site can be accessed via a network and via the internet, ensure you check that the new site can be accessed internally and externally.

See also

Using Moodle forum discussions: