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.)
 
(15 versions intermédiaires par 5 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
{{En cours de traduction}}
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 <code>$CFG->wwwroot</code> dans votre fichier ''config.php''. La migration est découpée en plusieurs phases, détaillées ci-dessous :
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 <code>$CFG->wwwroot</code> dans votre fichier ''config.php''. La migration est découpée en plusieurs phases, détaillées ci-dessous :


Ligne 8 : Ligne 7 :
== Restaurer un cours ==
== Restaurer un cours ==


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 <code>$@FILEPHP@$</code>.
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 <code>$@FILEPHP@$</code>.


For example, replace <nowiki>http://yourserver.com/file.php/243/</nowiki> with <code>$@FILEPHP@$</code>
Par exemple, remplacez <nowiki>http://votre-serveur.com/file.php/243/</nowiki> par <code>$@FILEPHP@$</code>
   
   
When the file is restored it will use the correct file path for the new course.
Lorsque le fichier sera restauré, cela utilisera le bon chemin pour le nouveau cours.


== Migrer un site Moodle complet ==
== Migrer un site Moodle complet ==


This involves moving a whole site from one server to another. If you are changing the domain/IP address to the new server you need to do these steps:
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 :
* Place your current Moodle site in maintenance mode to prevent any further additions to the Moodle database. Don't let administrators login during the migration as they are not affected by the maintenance mode setting.
* 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.
* Backup your current Moodle database by following the instructions in the [[Mise à jour| upgrading Moodle]] page. This will give you a text file containing the mysql dump.
* Sauvegardez votre base de donnée Moodle en suivant les instructions de la page de [[Mise à jour|mise à jour]]. Cela vous donnera un fichier texte contenant l'export mysql.
* Copy the Moodle software code itself to the new server - upgrade the code to the latest version if you can.
* Copiez le code de Moodle vers le nouveau serveur - profitez-en éventuellement pour faire une [[Mise à jour|mise à jour]] à la dernière version.
* In your (possibly new) Moodle directory, change the <code>$CFG->wwwroot</code> variable in the ''config.php'' file for the new server.
* Dans votre dossier Moodle, modifiez la variable <code>$CFG->wwwroot</code> dans le fichier ''config.php'' pour votre nouveau serveur.
* Copy the contents of your data directory (check for the value in <code>$CFG->dataroot</code>) to the new server. Check also that permissions remain the same on the new dataroot folder and change the value if you have changed its location on the new server.
* Déposez le contenu de votre répertoire de données (vérifiez en la valeur dans <code>$CFG->dataroot</code>) 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.
* Copy your current Moodle database to the new server. You may need to zip the file to reduce the time taken for this process.
* 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).
* Change your Moodle database on the new server. This is needed as links to pictures, files, etc are stored as absolute links and will reference the old <code>$CFG->wwwroot</code> value. So when loading a mysql backup dump of the Moodle server into mysql on another server the absolute referenced links will be broken. This can be most easily fixed with the program ''replace.php''. After uploading the mysql dump file point your browser to <nowiki>http://yourserver.com/admin/replace.php</nowiki>
* 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 <code>$CFG->wwwroot</code> 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 <nowiki>http://[nom-de-votre-propre-serveur.com]/admin/replace.php</nowiki>


:Enter the url for your old server (<nowiki>http://oldserver.com/</nowiki>) and new server (<nowiki>http://newserver.com/</nowiki>) and it will fix the mysql tables. You will also need to clear out any cached links by restarting your webserver.
: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.


'''Warning''': Before using ''replace.php'' make a backup of your Moodle database and test this this backup is OK by restoring it to a test install (say on a PC).
:''Nota : le chemin d'accès au script "replace" a [[:fr:Migration de Moodle|changé depuis Moodle 2.0]]."


An alternative is to use the search and replace feature of your text editor (or use a unix tool like sed) to replace the old URL with the new one in the mysql backup file. Once you have done this, restore the database.
'''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).
#sed -e 's/oldserver.com/newserver.com/' mysqldump.sql


'''Tip''': You may want to check the mysqldump file to see how the old server was referenced.
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.
* To test the new install, access Moodle using your browser and the new server's URL. When you have tested that a number of links in the courses work, take the new Moodle site out of maintenance mode.
 
#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 [[Salage de mot de passe|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é ===
 
# Installez une version de Moodle sur votre nouveau serveur, identique à celle de votre ancien site
# Sauvegardez le dossier de données de l'ancien site (via votre connexion ftp)
# Sauvegardez la base de données de l'ancien site (via phpmyadmin)
# Déposez le dossier de données sauvegardé dans le dossier de données du nouveau site (via votre connexion ftp)
# Substituez à la base de données du nouveau site celle de l'ancien à partir d'un "dump" de celle-ci (via phpmyadmin)
# Adaptez votre fichier [[config.php]], en vous basant sur celui du site d'origine (pensez notamment à conserver les [[Salage de mot de passe|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 ==
== Changements dans le DNS ==
Ligne 41 : Ligne 62 :
== Accès interne et externe ==
== Accès interne et externe ==
Pour finir, vérifiez que l'accès à votre site est possible, autant en interne que depuis internet.
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 ==
{{Moodle 1.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 ==
== Voir aussi ==
Ligne 50 : Ligne 76 :


[[en:Moodle migration]]
[[en:Moodle migration]]
[[nl:Moodle verhuizen]]

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