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

Moodle-Migration: Unterschied zwischen den Versionen

Aus MoodleDocs
Wechseln zu:Navigation, Suche
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
{{Zum Übersetzen}}
Siehe [[:en: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 [[Konfigurationsdatei|Moodle-Konfigurationsdatei]] ''config.php'' vorzunehmen.
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 [[Konfigurationsdatei|Moodle-Konfigurationsdatei]] ''config.php'' vorzunehmen.


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


* '''Wartungsmodus''': 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!
* '''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!
* '''Sicherung der Moodle-Datenbank''': Do this by following the instructions in the [[Upgrading | upgrading Moodle]] or [[Site backup]] page. This will give you a text file containing the mysql dump.
* '''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.  
* '''Copy the Moodle software'''. You will need to copy the Moodle code itself to the new server - upgrade the code to the latest version if you can.
* '''Moodle-Quellcode kopieren''': Kopieren Sie den gesamten Inhalt Ihres alten [[Moodle-Verzeichnis]]ses auf den neuen Server. Oder installieren Sie auf dem neuen Server gleich die aktuellste Moodle-Version.
* '''Change <code>$CFG->wwwroot</code>'''. In your (possibly new) Moodle directory, change the <code>$CFG->wwwroot</code> variable in the ''config.php'' file for the new server.
* '''<code>$CFG->wwwroot</code> ändern''': Öffnen Sie die [[Konfigurationsdatei|Moodle-Konfigurationsdatei]] ''config.php'' auf dem neuen Server und ändern Sie die Variable <code>$CFG->wwwroot</code>, so dass sie dem neuen Server entspricht.
* '''Copy data directory contents (moodledata)'''. Copy the contents of your data directory (check for the value in <code>$CFG->dataroot</code>) to the new server.
* '''Moodle-Datenverzeichnis kopieren''': Kopieren Sie das [[Moodle-Datenverzeichnis]] auf den neuen Server und prüfen Sie den entsprechenden Wert der Variable <code>$CFG->dataroot</code> in der [[Konfigurationsdatei|Moodle-Konfigurationsdatei]] ''config.php''.
* '''Review moodledata permissions'''. 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.
* '''Dateirechte prüfen''': Stellen Sie sicher, dass die Dateirechte für das [[Moodle-Datenverzeichnis]] auf dem neuen Server dieselben sind wie auf dem alten.
* '''Change your Moodle URL'''. If you have a new URL, you'll need to change this in the Moodle database to 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. There are two methods of doing this:
* '''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) The first method changes the Moodle URL using the Moodle script ''replace.php'' while your site is currently running just before you backup the Moodle database. Point your browser to <nowiki>http://yourserver.com/admin/replace.php</nowiki>
:(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:


: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. Now, take another backup of the Moodle database - this one will have the correct URLs.
::<code>http://yourserver.com/admin/replace.php</code>


:(b) The second method is to backup the Moodle database first, then 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. Here is an example sed command:
:Geben Sie die URLs des alten und des neuen Servers (<code>http://alterServer.com/</code>) und (<code>http://neuerServer.com/</code>) 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 [http://de.wikipedia.org/wiki/Sed_%28Unix%29 sed] Editor verwenden, lautet der entsprechende Befehl:


: <code>#sed -e 's/oldserver.com/newserver.com/g' oldmysqldump.sql > newmysqldump.sql</code>
::<code>#sed -e 's/oldserver.com/newserver.com/g' oldmysqldump.sql > newmysqldump.sql</code>


:''TIP:'' You may want to check the mysqldump file to see how the old server was referenced.
:Danach spielen Sie die geänderte Datenbankdatei auf dem neuen Server wieder ein.
:After changing the URL, restore the mysql database
* '''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.
* '''Test the migration'''. 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.
'''See also''': Forum discussion on [http://moodle.org/mod/forum/discuss.php?d=85812 migrating Moodle's data directory on a Windows system].


==Migrating a complete Moodle site - method 2==
Weitere Informationen finden Sie in [http://moodle.org/mod/forum/discuss.php?d=85812 diesem Diskussionsbeitrag] im Kurs ''Using Moodle'' auf moodle.org.


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.
==Moodle-Migration - Methode 2==


It is also useful for creating snapshots or test sites.
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):
*Set up a new empty database on the '''new''' server.
*Erstellen Sie eine neue, leere Datenbank auf dem neuen Server.
*Place your Moodle site into maintenance mode.
*Schalten Sie die Moodle-Installation (auf dem alten Server) in den Wartungsmodus.
*Login to shell on the '''old''' server.
*Melden Sie sich in einer Shell des alten Servers an.
*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:
*Verwenden Sie den Befehl <code>rsync</code>, um das [[Moodle-Verzeichnis]] und das [[Moodle-Datenverzeichnis]] auf den neuen Server zu kopieren:
::<code>rsync -av -e ssh SOURCE/ USERNAME@NEW_SERVER.COM:/PATH/TO/DESTINATION/</code>
::<code>rsync -av -e ssh SOURCE/ USERNAME@NEW_SERVER.COM:/PATH/TO/DESTINATION/</code>
*Dump existing database and move and import into database on new server by executing:
*Sichern Sie die alte [[Moodle-Datenbank]] und importieren Sie diese in die neue Datenbank auf dem neuen Server:
::<code>mysqldump --allow-keywords --opt -uMySQL_USERNAME -pPASSWORD DATABASE | ssh USER@DOMAIN "mysql -uMySQL_USERNAME -pPASSWORD DATABASE"</code>
::<code>mysqldump --allow-keywords --opt -uMySQL_USERNAME -pPASSWORD DATABASE | ssh USER@DOMAIN "mysql -uMySQL_USERNAME -pPASSWORD DATABASE"</code>
*On the '''new server''', update '''config.php''' with relevant details.
*Passen Sie die Pfade in der [[Konfigurationsdatei|Moodle-Konfigurationsdatei]] ''config.php'' auf dem '''neuen Server''' an.  
*To fix any internal Moodle links, login to your "new" Moodle install on your new server and use '''admin/replace.php''' to search and replace the old uri for the new.
*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.
*Make sure everything is working.
*Testen Sie, ob auf der neuen Installation alles richtig funktioniert.


Takes about 15 minutes.
Dieser Prozess dauert insgesamt ca. 15 Minuten.


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.
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.


==Other points to consider==
==Weitere Punkte==


===Upgrade Moodle===
===Aktualisierung von 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 | upgrading moodle]], otherwise check if your host can upgrade for you.
Wenn Sie Ihre Moodle-Installation auf einen neuen Server migrieren, ist das ein guter Zeitpunkt, gleichzeitig auf die neueste Version zu [[Aktualisierung von Moodle|aktualisieren]].


===Restoring a single course across servers===
===Wiederherstellung eines Kurses auf einem neuen Server===


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>.
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. <code>http://yourserver.com/file.php/243/</code>, durch <code>$@FILEPHP@$</code>. 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.


For example, replace <nowiki>http://yourserver.com/file.php/243/</nowiki> with <code>$@FILEPHP@$</code>
===Änderung im DNS und Masquerading===
When the file is restored it will use the correct file path for the new course.


===DNS & Masquerading changes===
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]].


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 | masquerading docs]].
===Interner und externer Zugriff===


===Internal and external access===
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.   
 
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.   


==Siehe auch==
==Siehe auch==

Version vom 3. Februar 2010, 15:34 Uhr

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 Masquerading

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: