Transfert de données

Transfert de données

par Saliha Kerireme,
Nombre de réponses : 18

Bonsoir,

J'ai installé la dernière version de Moodle sur une nouvelle machine et je veux récupérer les données de Moodle d'une ancienne machine. Quels sont les dossiers qu'il faut récupérer. Merci de répondre.


Bon courage

Moyenne des évaluations  -
En réponse à Saliha Kerireme

Re: Transfert de données

par Dominique-Alain Jan,
Avatar Testeurs Avatar Traducteurs

Bonjour

Il y a de nombreuses possibilités de faire cela. Ma première question serait avez-vous accès aux lignes de commande afin d’ accéder directement à la base donner MySQL homme est effectuer un backup avec un msqldump

En fonction de vos possibilités d’accès de haut ou bas niveau je vous mettrais sur la piste d’une ou l’autre dilution. 

Je viens de faire cela pour 3 serveurs hier


D Jan

En réponse à Dominique-Alain Jan

Re: Transfert de données

par Saliha Kerireme,
Bonjour,
Oui j'ai accès aux lignes de commande pour faire un mysqldump, quel sont les dossiers à récupérer de moodledata?

Merci
En réponse à Saliha Kerireme

Re: Transfert de données

par Luiggi Sansonetti,
Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Titulaires du Moodle Course Creator Certificate Avatar Traducteurs

Bonjour

Vaste question qui peut avoir plusieurs démarches...

Est-ce une migration ?

Faut-il passer par des restaurations de cours ?

Tout refaire (catégories, rôles...) ?

Quelques pistes/guides à voir :

https://docs.moodle.org/3x/fr/Migration_de_Moodle

Récupérer les données "utiles" de l'ancienne version :

https://docs.moodle.org/3x/fr/Mise_%C3%A0_jour#Sauvegarder_les_donn.C3.A9es_importantes

En réponse à Luiggi Sansonetti

Re: Transfert de données

par Saliha Kerireme,

Bonjour,

A vrai dire je veux récupérer les données (cours, catégorie de cours, ...) d'un serveur qui contient moodle 3.1.3+ pour les déposer dans une autre machine qui contient la dernière version de moodle.  Merci.




En réponse à Saliha Kerireme

Re: Transfert de données

par Séverin TERRIER,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Bonjour Saliha,

La question est vaste, et dépend du nombre de cours sur la plateforme d'origine, et du nombre que tu veux récupérer.

Luiggi a pointé plusieurs ressources intéressantes.

Si le but est de (presque) tout récupérer, il vaudrait mieux effectuer une mise à jour de la plateforme existante, précédée (ou suivie) d'une migration de Moodle, si le changement de serveur (et URL) impératif.

Sinon, il faudrait sauvegarder tous les cours souhaités, puis les restaurer (par lot) sur la nouvelle plateforme, après avoir recréé les catégories nécessaires ; il me semble qu'il y a eu une discussion récente à ce propos...

Séverin

En réponse à Séverin TERRIER

Re: Transfert de données

par Saliha Kerireme,

Bonjour Séverin,

Merci pour votre réponse. Justement, je n'ai pas pu faire la mise à jour de Moodle car, on m'a demandé de passer à une version supérieur du Système d'exploitation. Donc, j'ai une un nouveau serveur sous Debian 8 et je veux transférer toutes mes données. Pour le transfert par lot  (sauvegarde/restauration) je sais le faire mais ça prends beaucoup de temps.

En réponse à Saliha Kerireme

Re: Transfert de données

par Patrick GUYARD,

Bonjour Saliha,

Si j'avais à faire votre "migration", et pour éviter la lourdeur des sauvegardes/restaurations de cours trop nombreux, voici comment je procéderais :

1/ Vérifier la similitude d'environnement entre les deux serveurs, notamment :
  •     Versions serveurs web / php / base de données
  •     Serveur courriel

   
Il y a des chances que les deux configurations soient assez proches, puisque si j'ai bien compris, l'administrateur SI a fait une sorte d' "upgrade" de système.
   
2/ Placer le site en mode maintenance

3/ Dupliquer l'ensemble de votre environnement Moodle (voir la doc Moodle, ou quelques discussions récentes sur ce forum).

4/ Mettre à niveau de l'environnement dupliqué vers la dernière version de Moodle (3.3.1) , selon la procédure classique fournie dans la doc. (bien vérifier les compatibilités de vos plugins tiers et autres modules maison)

5/ "Cloner"  votre environnement dupliqué et le mettre à jour vers votre nouveau serveur (voir la doc Moodle, ou quelques discussions récentes sur ce forum) , en gros :

  •     Faire 2 fichiers archives des dossiers Moodle et Moodledata + un dump de la base
  •     Importer (copier) ces trois fichiers sur le nouveau serveur
  •     Décompresser les deux dossiers Moodle et Moodledata à des emplacements adéquats
  •     Créer la base de données correspondante sur le nouveau serveur de base de données, à l'aide du "dump"
  •     Modifier le fichier config.php pour mettre à jour les différents chemin d'accès au nouveau site
  •     Lancer le script "replace.php" (voir la doc)
  •     Faire quelques essais de bon fonctionnement, dont un essai d'envoi de courriel uniquement à l'administrateur ou à vous-même :
    • créer par exemple une activité "forum" où vous êtes la seule inscrite)
    • faire une procédure de re-génération de mot de passe ("mot de passe oublié")
  •     Configurer le programme cron
  •     Faire les redirections d'URL pour que cela pointe sur le nouveau serveur
  •     Désactiver le mode maintenance sur le nouveau site.

       
Je vous joint ici un petit retour d'expérience (c'est un peu fourre-tout, mais cela devrait vous être utile). C'est le même document fourni dans un autre fil de discussion, mais avec quelques compléments...

En soit, le temps des opérations n'est pas très long. Une heure me paraît bien, à laquelle s'ajoute le temps que nécessitent l'archivage de vos dossiers et leur importation sur le nouveau serveur ; cela dépend de la taille de votre site Moodle...

Mais pour ne mettre qu'une heure, vous avez néanmoins intérêt à bien préparer votre procédure, pourquoi pas en vous inspirant de mon document.

C'est en tout cas une durée tout à fait acceptable, pour un travail en fin de journée : l'impact d'indisponibilité de votre système ne devrait pas être rédhibitoire ! (Mais faites quand même une estimation du temps de transfert de vos données d'un serveur à l'autre : cela peut vite dépasser quelques heures si vous avez plusieurs centaines de Giga octets et un faible débit)

P.G.


Moyenne des évaluations Utile (2)
En réponse à Patrick GUYARD

Re: Transfert de données

par Saliha Kerireme,

Bonjour,

J'ai bien suivi votre procédure de transfert, malheureusement j'ai eu un problème avec le serveur apache. Voici, l'erreur :

[....] Restarting apache2 (via systemctl): apache2.serviceJob for apache2.service failed. See 'systemctl status apache2.service' and 'journalctl -xn' for details.
 failed!


Merci de répondre.

En réponse à Saliha Kerireme

Re: Transfert de données

par Nicolas Martignoni,
Avatar Développeurs Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

A priori, ce n'est pas un problème Moodle. Vous trouverez de l'aide plutôt dans la communauté Apache.

Mais avant tout, adressez-vous à votre administrateur système, qui pourra sans doute vous aider.

En réponse à Nicolas Martignoni

Re: Transfert de données

par stephane ngov,

bonjour voici les lignes à modifier sur votre nouveau serveur en gras il faudra supprimer les dièse (#) pour les activiés:


<VirtualHost *:80>
        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        #ServerName www.example.com

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
         CustomLog ${APACHE_LOG_DIR}/access.log combined

        # For most configuration files from conf-available/, which are
        # enabled or disabled at a global level, it is possible to
        # include a line for only one particular virtual host. For example the
        # following line enables the CGI configuration for this host only
        # after it has been globally disabled with "a2disconf".
        #Include conf-available/serve-cgi-bin.conf
</VirtualHost>


Quel est votre nom de domaine ? exemple:


     ServerName nomdedmaine.fr


OU mettez vous votre moodle exemple :


        DocumentRoot /var/www/html/moodle


une fois modifier il faut relancer le service serveur web apache2

service apache2 restart

le dossier moodle dans cette exemple doit avoir les droit d'écriture de lecteur et d'exécution pour apache


Normalement c'est la tâche d'un administrateur qui doit faire la config si vous en avez un .

En réponse à stephane ngov

Re: Transfert de données

par Saliha Kerireme,

Bonjour,

Merci pour votre réponse, mais j'ai déjà fait ce que vous avez proposé comme solution mais ça n'a pas marché. Merci encore.

En réponse à Saliha Kerireme

Re: Transfert de données

par Patrick GUYARD,

Bonjour Saliha,

J'étais absent quelques jours, mais je vois que beaucoup de personnes bien plus compétentes que moi vous ont déjà répondu.

Comme je l'ai écrit au point 15 de mon petit "REX" :

" Si cela ne fonctionne pas, c'est probablement que votre configuration des « hosts » n'est pas
conforme dans votre installation d'Apache (je n'en ai pas encore parlé ; on aurait pu vérifier avant,
mais là ce n'est plus du Moodle...).
◦ Faites alors une comparaison des fichiers présents sur vos deux serveurs (serveur 1 et serveur
2), dans les dossiers sites-enabled et sites-available
◦ Faites les modifications nécessaires pour configurer le « host » de votre moodle "

C'est assez succinct, je veux bien l'avouer... Mais apparemment tous les experts vous répondent un peu de cette façon : la configuration des hôtes virtuels de votre serveurs Apache est à faire en lien avec l'administrateur de votre système.


Néanmoins, si cela vous est possible (autorisé car ne mettant pas en péril d'autres sites), peut-être une simple opération de copie des éléments contenus dans le dossier "sites-enabled" de l'ancien serveur vers le nouveau suffira-t-elle :

1/ dans le nouveau serveur : faire une copie de sauvegarde des fichiers du dossier /etc/apache2/sites-enabled et du dossier /etc/apache2/sites-available (les copier en leur ajoutant un suffixe quelconque, par exemple .BAK)

2/ copier les fichiers présents sur l'ancien serveur dans /etc/apache2/sites-enabled pour les importer sur le nouveau serveur dans /etc/apache2/sites-enabled (ou /etc/apache2/sites-available, avec un lien vers "sites-enabled" , selon les préférences personnelles de votre administrateur...) . Adapter éventuellement les noms des fichiers pour qu'ils remplacent noms pour noms les fichiers initiaux du nouveau serveur.

3/ redémarrer le serveur Apache


Attention, c'est une procédure de bidouille (c'est peut-être là mon "expertise" !).

Si cela est plus facile à comprendre pour vous, ou à suivre, voici les opérations que j'avais faites lors du clonage de mon site Moodle d'un serveur 1 vers un serveur 2 , dans le but de remplacer le fichier sites-enabled du serveur 2 par celui du serveur 1 :

  • Sur serveur 2, sauvegarde des fichiers de configuration d'Apache
    • cd /etc/apache2/sites-available
    • sudo cp 000* 000-default.conf.BAK
    • sudo cp default* default-ssl.conf.BAK

  • Depuis le serveur 1, export des fichiers vers le serveur 1
    • utilisateur@serveur1.1and1.com:/etc/apache2/sites-enabled$ scp -Pxxx 000-default  administrateur@serveur2.ovh.net:/etc/apache2/sites-available
    • (je fais la copie vers le dossier "sites-available", dont le fichier à activer effectivement est "lié" à un fichier dans le dossier "sites-enabled")

  • Sur serveur 2,
    • cd /etc/apache2/sites-available
    • sudo mv 000-default 000-default.conf
    • service apache2 restart


Vous aurez compris que, initialement sur mon serveur 2, j'avais :

  • Dans le dossier "site-enabled" , un fichier Lamda qui pointe par un lien vers un fichier 000-default.conf du dossier "sites-available"
  • Dans le dossier "sites-available", j'avais deux fichiers  000-default.conf et default-ssl.conf


En pièce jointe, vous trouverez les éléments effectifs de mon fichier de configuration des "hosts" apache, si cela peut vous aider davantage. A comparer avec ce que vous avez ; mais attention à ne pas "copier" sans vous posez la question de la sécurité de votre site : moi, je ne suis loin d'être un paranoïaque, et mon serveur est une sorte de Bac à Sable....

Peut-être pouvez vous tout simplement utiliser ce fichier sur votre serveur. (le copier dans "sites-available", et "l'activer" par un lien à partir du dossier "sites-enabled")


Espérant que cela vous sera utile,

P.G.


En réponse à Patrick GUYARD

Re: Transfert de données

par Saliha Kerireme,
Bonjour,
Le contenu des fichiers présents sur mes deux serveurs (serveur 1 et serveur 2), dans les dossiers sites-enabled et sites-availabled, n'est pas le même.

Le contenu du fichier 000-default.sur l'ancien serveur est
:
<VirtualHost *:80>
        ServerAdmin webmaster@localhost
Redirect permanent "vers mon serveur1 en https"
        DocumentRoot /var/www/moodle
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>



Le contenu du fichier 000-default.conf sur le nouveau serveur est :

<VirtualHost *:80>
        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        #ServerName www.example.com

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
         CustomLog ${APACHE_LOG_DIR}/access.log combined

        # For most configuration files from conf-available/, which are
        # enabled or disabled at a global level, it is possible to
        # include a line for only one particular virtual host. For example the
        # following line enables the CGI configuration for this host only
        # after it has been globally disabled with "a2disconf".
        #Include conf-available/serve-cgi-bin.conf
</VirtualHost>


Donc, on ne trouve pas le même nom du fichier (000-default et 000-default.conf). J'ai réinstallé Apache et il fonctionne bien, mais moodle ne focntionne toujours pas. Je vous rappelle que l'ancien serveur fonctionne sous Debian Wheezy et le nouveau serveur fonctionne sous debian Jessie


Merci de répondre
                                                              1,1           To
En réponse à Saliha Kerireme

Re: Transfert de données

par Dominique-Alain Jan,
Avatar Testeurs Avatar Traducteurs

Bonjour

Defective net, vous deux fichiers - ancien et nouveau - virtualhost sont différents. Pour que votre nouveau moodle fonctionne il fait les mettre en conformité avec votre nouvelle installation.. Comme Nicolas vous le proposait, il faudrait mieux demander cela à votre responsable web, si vous en avez un. 

Personnellement le réglage des différents virtualhost chez moi, la première fois que j’ai dû m’y mettre, avait été un cauchemar avant que tout fonctionne. 

D Jan

En réponse à Dominique-Alain Jan

Re: Transfert de données

par Saliha Kerireme,

Bonjour,

Merci pour tout. J'ai réussi à faire le clonage. C’était juste un problème de php et mysql. Merci encore.

En réponse à Saliha Kerireme

Re: Transfert de données

par Séverin TERRIER,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Bonjour Saliha,

Content que ton problème soit réglé.

Par contre, il est d'usage, lorsqu'on résout un problème, d'expliquer comment il a été réglé, de façon claire et  détaillée. Ceci à la fois par respect pour les gens qui ont aidé, et pour aider les autres personnes qui seraient confrontées au même problème.

Séverin

En réponse à Séverin TERRIER

Re: Transfert de données

par Saliha Kerireme,

Bonjour Stéphane,

Effectivement, beaucoup de gens m'ont aidé à réglé mon problème, je les remercie infiniment. La méthode utilisé est celle proposé par Patrick GUYARD (https://moodle.org/pluginfile.php/239/mod_forum/attachment/1433714/Proc%C3%A9dure_clonage_moodle_V0.3.pdf).

En résumé :
1 - J'ai installé la dernière version de Moodle sur le nouveau serveur.
2 - Avec la commande mysqldump j'ai sauvegarder puis transféré la base de donnée de  l'ancien serveur au nouveau serveur.
3 - avec la commande scp j'ai copier le dossier moodledata de l'ancien serveur vers le nouveau serveur.

Remarques :
1 - Au début J'ai eu des problèmes de clonage à cause des chemins de décompression des fichiers du dossier moodledata.
2 - Il fallait aussi choisir la bonne version du php et mysql.

Je remercie encore toutes les personnes qui m'ont aidé à réglé mon problème de transfert de donnée et toute la communauté Moodle. Je reste disponibles pour plus de détails.

Bon courage.