Hinweis: Sie sind auf den Seiten der Moodle 2.0 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
 
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Installation}}
{{Installation}}


{{Zum Übersetzen}}
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.
There may be times when you need to move your Moodle site from one server to another. For example, moving a Moodle site from shared hosting service's server to a dedicated server.


:''Tip:'' One common migration mistake is to forget to update the details in the migrated Moodle's ''[[Configuration file|config.php]]'' file.
'''Hinweis''': Vergessen Sie nicht, alle serverspezifischen Einträge in der [[Moodle-Konfigurationsdatei]] ''config.php'' anzupassen.


==Migrating a complete Moodle site - method 1==


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:
* '''Maintenance mode'''. 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.
* '''Backup your current Moodle database'''. 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.
* '''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.
* '''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.
* '''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.
* '''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.
* '''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:
:(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>yourserver.com/admin/tool/replace/index.php</nowiki> or in older versions <nowiki>http://yourserver.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. Now, take another backup of the Moodle database - this one will have the correct URLs.
==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:
:(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:
* '''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.
* '''<code>$CFG->wwwroot</code> ändern''': Ändern Sie die Variable <code>$CFG->wwwroot</code> in der [[Moodle-Konfigurationsdatei]] ''config.php'' auf dem neuen Server.
* '''Moodle-Datenverzeichnis kopieren (moodledata)''': Kopieren Sie den kompletten Inhalt des Moodle-Datenverzeichnisses (siehe Variable <code>$CFG->dataroot</code> in der Moodle-Konfigurationsdatei) in das neue Moodle-datenvrezeichnis auf dem neuen Server.
* '''Moodledata-Vrezichnisrechte 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 <code>$CFG->dataroot</code> 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 <code>$CFG->wwwroot</code> 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: <nowiki>yourserver.com/admin/tool/replace/index.php</nowiki>.
: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:


: <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 stellen Sie aus der geänderten MySQL-Dump-Textdatei die Datenbank auf dem neuen Server wieder her.
:After changing the URL, restore the mysql database
* '''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.
* '''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==
 
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.
 
It is also useful for creating snapshots or test sites.
*Set up a new empty database on the '''new''' server.
 
It mean that that you must not open the
http://example.domain/moodle/admin
webpage yet.
*Place your Moodle site into maintenance mode.
*Login to shell on the '''old''' server.
*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:
::<code>rsync -av -e ssh SOURCE/ USERNAME@NEW_SERVER.COM:/PATH/TO/DESTINATION/</code>
On the new server you must to setup permissions on '''moodledata''' directory and it's subdirectories and files.
 
Say, on a Debian operating system one can run the command:
::<code>hostname:/var/lib# chown www-data:www-data -R moodle/</code>
*Dump existing database and move and import into database on new server by executing:
::<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.
*To fix any internal Moodle links, login to your "new" Moodle install on your new server and use the [[Search and replace]] admin tool to search and replace the old uri for the new.
Say:
::<code>
Search and replace text throughout the whole database
 
Search whole database for: the.old.moodle.uri
 
Replace with this string: the.new.moodle.uri
 
*Make sure everything is working.</code>
 
Takes about 15 minutes.
 
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.
 
==Other points to consider==
===Changed URL image links set to old site===
So you built your Moodle Server with a <nowiki>http//192.168.0.1/Moodle address.  Then you changed the URL for your site to http://OurMoodle.org/Moodle .  You changed the Moodle config file so the CFGs point to the new paths.  But your images point to the old url. </nowiki> 
 
<nowiki>One simple, quick solution.  Login as admin and put  <nowiki>OurMoodle.org/admin/tool/replace/index.php</nowiki> or in older versions <nowiki>http://OurMoodle.com/admin/replace.php</nowiki> in your browser address bar.  Use the two form boxes to change http://192.168.0.1/  to  http://OurMoodle.org/ .</nowiki>
 
===Upgrade 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.


===Restoring a single course across servers===
Siehe auch [http://moodle.org/mod/forum/discuss.php?d=85812 migrating Moodle's data directory on a Windows system] - Diskussionsbeitrag auf moodle.org.


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


For example, replace <nowiki>http://yourserver.com/file.php/243/</nowiki> with <code>$@FILEPHP@$</code>
*Legen Sie eine neue, leere Datenbank auf dem neuen Server an.
*Aktivieren Sie auf Ihrer Moodle-Site den Wartungsmodus.
When the file is restored it will use the correct file path for the new course.
*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 <code>SOURCE</code> durch den Namen des Verzeichnisses, das Sie kopieren wollen):
:<code>rsync -av -e ssh SOURCE/ USERNAME@NEW_SERVER.COM:/PATH/TO/DESTINATION/</code>
: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:
:<code>hostname:/var/lib# chown www-data:www-data -R moodle/</code>
*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:
:<code>mysqldump --allow-keywords --opt -uMySQL_USERNAME -pPASSWORD DATABASE | ssh USER@DOMAIN "mysql -uMySQL_USERNAME -pPASSWORD DATABASE"</code>
*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.


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


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


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


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.
===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==
==Siehe auch==


* [[Site backup]]
* [[Sicherung der Moodle-Installation]]
* [[Site restore]]
* [[Sicherung und Wiederherstellung FAQ]]
* [[Backup and restore FAQ]]
* [http://www.youtube.com/watch?v=sFCXvRx20Bs Moving Moodle to a new server video] - Video
* [http://www.youtube.com/watch?v=sFCXvRx20Bs Moving Moodle to a new server video]


Using Moodle forum discussions:
Diskussionbeiträge im Kurs ''Using Moodle'' auf moodle.org:
* [http://moodle.org/mod/forum/discuss.php?d=62959 Changing Moodle URL]  
* [http://moodle.org/mod/forum/discuss.php?d=62959 Changing Moodle URL]  
* [http://moodle.org/mod/forum/discuss.php?d=57477 Changing site address]  
* [http://moodle.org/mod/forum/discuss.php?d=57477 Changing site address]  

Aktuelle Version vom 11. Juni 2012, 09:44 Uhr


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-datenvrezeichnis auf dem neuen Server.
  • Moodledata-Vrezichnisrechte 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: