Moodle-Migration

Wechseln zu: Navigation, Suche

Hinweis: Sie sind auf den Seiten der Moodle 1.9 Dokumentation. Die Dokumentation der aktuellsten Moodle-Version finden Sie hier: Moodle-Migration.

Manchmal ist es erforderlich, mit einer Moodle-Installation von einem Server zu einem anderen umzuziehen. Dieser Vorgang wird als Moodle-Migration bezeichnet. Einer der häufigsten Fehler, der bei diesem Prozess gemacht wird, ist folgender: Es wird nicht daran gedacht, Anpassungen in der Moodle-Konfigurationsdatei config.php vorzunehmen.

Moodle-Migration - Methode 1

Wenn sich der Domain-Name und die IP-Adresse des Moodle-Servers ändert, sind folgende Schritte zu erledigen:

  • Wartungsmodus einschalten: Schalten Sie Ihre aktuelle Moodle-Installation (auf dem alten Server) in den Wartungsmodus, um zu verhindern, das neue Einträge in der Moodle-Datenbank vorgenommen werden. Auch Administratoren dürfen sich nicht mehr auf der alten Installation anmelden!
  • Moodle-Datenbank sichern: Sichern Sie Ihre Moodle-Datenbank wie in den Artikeln Aktualisierung von Moodle bzw. Sicherung der Moodle-Installation beschrieben. Sie erhalten eine Textdatei, die die Sicherung der Datenbank enthält.
  • Moodle-Quellcode kopieren: Kopieren Sie den gesamten Inhalt Ihres alten Moodle-Verzeichnisses auf den neuen Server. Oder installieren Sie auf dem neuen Server gleich die aktuellste Moodle-Version.
  • $CFG->wwwroot
    ändern
    : Öffnen Sie die Moodle-Konfigurationsdatei config.php auf dem neuen Server und ändern Sie die Variable
    $CFG->wwwroot
    , so dass sie dem neuen Server entspricht.
  • Moodle-Datenverzeichnis kopieren: Kopieren Sie das Moodle-Datenverzeichnis auf den neuen Server und prüfen Sie den entsprechenden Wert der Variable
    $CFG->dataroot
    in der Moodle-Konfigurationsdatei config.php.
  • Dateirechte prüfen: Stellen Sie sicher, dass die Dateirechte für das Moodle-Datenverzeichnis auf dem neuen Server dieselben sind wie auf dem alten.
  • Moodle-URL ändern: Wenn sich die URL Ihrer Moodle-Installation durch den Umzug auf den neuen Server geändert hat, müssen Sie diese in der Moodle-Datenbank ändern. Das ist nötig, weil Links auf Bilder, Dateien usw. als absolute Links gespeichert sind und daher den alten Server referenzieren. Es gibt zwei Möglichkeiten:
(a) Ändern Sie die Pfade in der Datenbank mit Hilfe des PHP-Skripts replace.php. Gehen Sie dazu auf Ihre alte Moodle-Installation und rufen Sie das Skript auf:
http://yourserver.com/admin/replace.php
Geben Sie die URLs des alten und des neuen Servers (
http://alterServer.com/
) und (
http://neuerServer.com/
) ein. Dann werden die Einträge in der (alten) Moodle-Datenbank geändert. Sichern Sie danach die (alte) Moodle-Datenbank (diese enthält nun schon die richtigen Pfade für den neuen Server).
(b) Alternativ können Sie auch erst die Moodle-Datenbank auf dem alten Server sichern. Anschließend öffnen Sie die Textdatei der gesicherten Datenbank in einem Editor und ersetzen mittels Suchen&Ersetzen die alte URL durch die neue. Wenn Sie z.B. den sed Editor verwenden, lautet der entsprechende Befehl:
#sed -e 's/oldserver.com/newserver.com/g' oldmysqldump.sql > newmysqldump.sql
Danach spielen Sie die geänderte Datenbankdatei auf dem neuen Server wieder ein.
  • Testen: Testen Sie die Moodle-Installation auf dem neuen Server, indem Sie die neue URL im Browser aufrufen. Prüfen Sie, ob die verschiedenen Links in den Kursen richtig funktionieren und schalten Sie anschließend den Wartungsmodus wieder aus.

Weitere Informationen finden Sie in diesem Diskussionsbeitrag im Kurs Using Moodle auf moodle.org.

Moodle-Migration - Methode 2

Wenn Sie direkten Shell-Zugriff auf den alten und den neuen Server haben, können Sie die Migration schnell und effektiv wie folgt durchführen (diese Methode eignet sich besonders für Testinstallationen oder zum Erzeugen von Snapshots des Systems):

  • Erstellen Sie eine neue, leere Datenbank auf dem neuen Server.
  • Schalten Sie die Moodle-Installation (auf dem alten Server) in den Wartungsmodus.
  • Melden Sie sich in einer Shell des alten Servers an.
  • Verwenden Sie den Befehl
    rsync
    , um das Moodle-Verzeichnis und das Moodle-Datenverzeichnis auf den neuen Server zu kopieren:
rsync -av -e ssh SOURCE/ USERNAME@NEW_SERVER.COM:/PATH/TO/DESTINATION/
  • Sichern Sie die alte Moodle-Datenbank und importieren Sie diese in die neue Datenbank auf dem neuen Server:
mysqldump --allow-keywords --opt -uMySQL_USERNAME -pPASSWORD DATABASE | ssh USER@DOMAIN "mysql -uMySQL_USERNAME -pPASSWORD DATABASE"
  • Passen Sie die Pfade in der Moodle-Konfigurationsdatei config.php auf dem neuen Server an.
  • Melden Sie sich in Ihrer neuen Moodle-Installation an und verwenden Sie das Skript admin/replace.php, um die alten Pfade in der Moodle-Datenbank durch die neuen zu ersetzen.
  • Testen Sie, ob auf der neuen Installation alles richtig funktioniert.

Dieser Prozess dauert insgesamt ca. 15 Minuten.

Wenn alles funktioniert, ändern Sie ggf. die Einträge im DNS, schalten Sie den Wartungsmodus der neuen Installation aus und nehemn Sie die alte Installation außer Betrieb.

Weitere Punkte

Aktualisierung von Moodle

Wenn Sie Ihre Moodle-Installation auf einen neuen Server migrieren, ist das ein guter Zeitpunkt, gleichzeitig auf die neueste Version zu aktualisieren.

Wiederherstellung eines Kurses auf einem neuen Server

Wenn Sie eine Kurssicherung, die auf dem alten Server erstellt wurde, auf dem neuen Server wiederherstellen, kann es passieren, dass (absolute) Links und Pfade nicht mehr richtig funktionieren. In diesem Fall entpacken Sie die *.zip-Datei der Kurssicherung. Öffnen Sie die darin enthaltene Datei moodle.xml in einem Editor und ersetzen Sie alle URLs des alten Servers, z.B.
http://yourserver.com/file.php/243/
, durch
$@FILEPHP@$
. Packen Sie danach die geänderte datei moodle.xml wieder als Kurssicherungsdatei *.zip. Wenn Sie diese Datei auf dem neuen Server wiederherstellen, werden die Pfade korrekt für den neuen Server wiederhergestellt.

Änderung im DNS und Maskierung

Es kann sein, dass Sie die Einträge im DNS für Ihre Moodle-Installation auf dem neuen Server anpassen (lassen) müssen. Es kann eine Weile dauern, bis diese Änderungen im DNS wirksam werden - haben Sie etwas Geduld. Wenn Ihr Moodle-Server hinter einer Firewall liegt, müssen Sie evtl. auch die Firewall-Regeln anpassen, um den Zugriff auf den neuen Server zu ermöglichen. Detaillierte Informationen finden Sie im Artikel Maskierung.

Interner und externer Zugriff

Wenn in Ihrer Infrastruktur der Zugriff auf die Moodle-Installation sowohl über das interne Netzwerk als auch über das Internet möglich sein soll, prüfen Sie, ob nach der Migration dieser Zugriff auf den neuen Server ebenfalls intern und extern funktioniert.

Siehe auch

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