Moodle Migration

Aus MoodleDocs
Wechseln zu:Navigation, Suche


Manchmal kann es nötig sein, dass Sie mit Ihrer Moodle-Site auf einen neuen Server umziehen müssen, z.B. wenn Sie von einem Provider auf einen eigenen Server wechseln.

Hinweis: Vergessen Sie nicht, alle serverspezifischen Einträge in der Moodle-Konfigurationsdatei config.php anzupassen.


Migration einer Moodle-Site - Methode 1

Bei dieser Methode ziehen Sie eine vollständige Moodle-Site von einem Server auf einen anderen um. Wenn sich die Domain bzw. die IP-Adresse ändert, sind folgende Schritte nötig:

  • Wartungsmodus einschalten: Schalten Sie Ihre aktuelle Moodle-Site in den Wartungsmodus, damit keine weiteren Änderungen in der Moodle-Datenbank erfolgen können. Stellen Sie sicher, dass sich auch keine Administrator/innen anmeldungen und Änderungen vornehmen (da diese vom Wartungsmodus nicht betroffen sind).
  • Moodle-Datenbank sichern: Sichern Sie die Moodle-Datenbank wie in den Artikeln Aktualisierung von Moodle bzw. Sicherung der Moodle-Installation beschrieben. Sie erhalten eine Textdatei, die den MySQL Dump enthält.
  • Moodle-Code kopieren: Sie müssen alle PHP-Skripte von Moodle auf den neuen Server kopieren. Aktualisieren Sie den Code auf die neueste Version, wenn möglich.
  • $CFG->wwwroot ändern: Ändern Sie die Variable $CFG->wwwroot in der Moodle-Konfigurationsdatei config.php auf dem neuen Server.
  • Moodle-Datenverzeichnis kopieren (moodledata): Kopieren Sie den kompletten Inhalt des Moodle-Datenverzeichnisses (siehe Variable $CFG->dataroot in der Moodle-Konfigurationsdatei) in das neue Moodle-datenverzeichnis auf dem neuen Server.
  • Moodledata-Verzeichnisrechte prüfen: Prüfen Sie, dass die Rechte im neuen Moodle-Datenverzeichnis auf dem neuen Server dieselben sind, wie auf dem alten Server. Prüfen Sie die Variable $CFG->dataroot in der Moodle-Konfigurationsdatei config.php auf dem neuen Server.
  • Moodle URL ändern: Wenn sich die URL der Moodle-Site auf dem neuen Server geändert hat, müssen Sie diese Änderung in der Moodle-Datenbank auf dem neuen Server eintragen. Das betrifft alle Links zu Grafiken, Bildern, Dateien usw., die als absolute Links gespeichert sind (diese verweisen auf die alte Adresse, die in $CFG->wwwroot angegeben ist). Wenn Sie die alte Datenbank (mit den alten Links) in eine neue Datenbank auf dem neuen Server hochladen, funktionieren diese absoluen Links nicht mehr. Um die Links für den neuen Server anzupassen, gehen Sie wie folgt vor:
(a) Die erste Methode verwendet das Moodle-Skript replace.php. Rufen Sie im Browser folgende Adresse auf: yourserver.com/admin/tool/replace/index.php.
Geben Sie die URL des alten Servers und des neuen Servers in den entsprechenden Textfeldern ein und starten Sie das Skript. Sie müssen auch alle gecachten Links löschen - am besten, indem Sie den Webserver neu starten.
(b) Bei der zweiten Methode sichern Sie die Moodle-Datenbank und ersetzen dann in dem MySQL-Dump-Textdatei mittels der Suchen&Ersetzen Funktionalität Ihres bevorzugten Texteditors die alte Server-URL durch die neue Server-URL. Der entsprechende Befehl im sed lautet:
#sed -e 's/oldserver.com/newserver.com/g' oldmysqldump.sql > newmysqldump.sql
Danach stellen Sie aus der geänderten MySQL-Dump-Textdatei die Datenbank auf dem neuen Server wieder her.
  • Migration testen: Testen Sie die neue Moodle-Site, indem Sie die neue Server-URL im Browser aufrufen. Prüfen Sie einige/alle Links und schalten Sie dann in der neuen Site den Wartungsmodus wieder aus.

Siehe auch migrating Moodle's data directory on a Windows system - Diskussionsbeitrag auf moodle.org.

Migration einer Moodle-Site - Methode 2

Wenn Sie Shell-Zugriff auf beide Server haben, dann können Sie auf Unix-basierten Systemen folgende effektive Methode verwenden. Diese Vorgehensweise eignet sich auch für das Erstellen von Snapshots oder Test-Sites.

  • Legen Sie eine neue, leere Datenbank auf dem neuen Server an.
  • Aktivieren Sie auf Ihrer Moodle-Site den Wartungsmodus.
  • Melden Sie sich auf einer Shell des alten Servers an.
  • Verwenden Sie rsync, um das Moodle-Datenverzeichnis moodledata und das Moodle-Verzeichnis moodle (das die Moodle-PHP-Skripte enthält) vom alten auf den neuen Server zu kopieren (ersetzen Sie alle Großbuchstaben durch Ihre Serverdaten und SOURCE durch den Namen des Verzeichnisses, das Sie kopieren wollen):
rsync -av -e ssh SOURCE/ USERNAME@NEW_SERVER.COM:/PATH/TO/DESTINATION/
Auf dem neuen Server müssen Sie die alten Dateirechte für das Moodle-Datenverzeichnis moodledata (und alle Unterverzeichnisse) wiederherstellen. Unter Debian geht das z.B. mit folgendem Befehl:
hostname:/var/lib# chown www-data:www-data -R moodle/
  • Erstellen Sie einen Dump der Moodle-Datenbank auf dem alten Server und spielen Sie diesen in die neue Datenbank auf dem neuen Server wieder ein:
mysqldump --allow-keywords --opt -uMySQL_USERNAME -pPASSWORD DATABASE | ssh USER@DOMAIN "mysql -uMySQL_USERNAME -pPASSWORD DATABASE"
  • Aktualisieren Sie alle server-spezifischen Daten in der Moodle-Konfigurationsdatei config.php auf dem neuen Server.
  • Um alle internen Links anzupassen, melden Sie sich als Administrator/in in der neuen Installation auf dem neuen Server an und ändern die Moodle URL wie im vorherigen Abschnitt unter Methode (a) beschrieben.
  • Testen Sie das neue System.

Das dauert ungefähr 15 Minuten, je nach Größe Ihrer Moodle-Site. Wenn alles läuft, schalten Sie den Wartungsmodus in der neuen Site wieder aus und nehmen Sie die alte Site außer Betrieb.

Weitere Punkte

Moodle aktualisieren

Wenn Sie Moodle migrieren, ist es immer eine gute Idee, gleichzeitig auf die neueste Version zu aktualisieren. Siehe Aktualisierung von Moodle.

DNS & Masquerading Änderungen

Es kann sein, dass Sie die DNS-Einträge für die neue Moodle-Site ändern müssen. Wenn das der Fall ist, dauert es eine Weile, bis die Änderungen wirksam werden. Wenn Ihr Server durch eine Firewall geschützt ist, müssen Sie u.U. auch die Firewall-Regeln anpassen, um Zugriff auf den neuen Server zu gewährleisten.

Interner und externer Zugriff

Wenn Ihre Moodle-Site über ein internes Netzwerk und über Internet erreichbar ist, prüfen Sie, ob der neue Server wie gewünscht intern und extern erreichbar ist.

Siehe auch

Diskussionbeiträge im Kurs Using Moodle auf moodle.org: