Landesmedienzentrum Baden-WürttembergSupport-Netz-Portal

Migration von Moodle aus dem UML auf echte Hardware

In diesem Artikel möchten wir den Anwendern der paedML Novell 3 und der Novell-Musterlösung 2.7 den Umgang mit Linux näher bringen.

 

Inhalt:

 

Einleitung

paedML, die pädagogische Musterlösung für schulische Computernetzwerke wurde bereits in ihren Anfängen mit dem Ziel entwickelt, Arbeitsabläufe im Unterricht abzubilden und organisatorisch zu vereinfachen. Mit der paedML können multimediale Inhalte schneller bereitgestellt und der fächerintegrative Einsatz von neuen Medien stärker gefördert werden. Ein Großteil der weiterführenden Schulen in Baden-Württemberg setzen bereits erfolgreich die paedML ein, um vom Mehrwert durch neue Medien im Unterricht profitieren zu können. Parallel dazu gewinnen E-Learning-Plattformen zunehmend an Bedeutung. Das Landesinstitut für Schulentwicklung fördert daher schon seit Jahren "Moodle", eine inzwischen weltweit verbreitete Lernplattform.

 

Eine der Stärken von Moodle ist die große Vielfalt an Authentifizierungsmethoden. Es verfügt über diverse Schnittstellen, um Benutzer aus einem fremden System legitimieren zu können. So ist es beispielsweise über eine LDAP-Schnittstelle möglich, die Benutzer vom paedML Novell Server auszulesen, und sie zu verwalten. Auf diese Art und Weise wird vermieden, dass die Benutzer einer Schule "doppelt" - das heißt einmal in einer Moodle eigenen und in einer paedML eigenen Benutzerdatenbank – verwaltet werden. Eben aus diesem Grund ist in der paedML Novell 3 Moodle bereits im Auslieferungszustand integriert. Da es jedoch in einem UML – User Mode Linux (eine Art virtuelle Maschine) – integriert ist, unterliegt es aber auch einigen Einschränkungen. So ist zum Beispiel der Datenbereich für Moodle auf etwa 4GB begrenzt, was bei einer intensiven Nutzung schnell zu einem Engpass führen kann.

 

In diesem Artikel beschreiben wir daher in einer Schritt-für-Schritt Anleitung, wie Sie Ihr Moodle aus dem UML "herausnehmen" und auf echte Hardware übertragen können. Als Basis dafür dient openSuSE von Novell in der aktuellen Version 10.3.

 

Aufgrund des paedML Novell spezifischen Inhalts richtet sich der Artikel vorrangig an diejenigen Netzwerkberater, die paedML Novell in der Version 3.0 oder 3.0.1 an ihren Schulen einsetzen. Die hier vorgestellten Schritte zur Migration von Moodle auf einen LAMP-Server auf Basis von openSuSE 10.3 lassen sich jedoch ohne große Mühe auf ihren Vorgänger, die Novell Musterlösungen 2.7 (NML 2.7), übertragen. Das Einzige, worauf ein Anwender der NML 2.7 achten muss, ist die IP-Adresse des Moodle-Servers. Sie muss freilich an die Gegebenheit des eigenen Netzwerks angepasst werden.

Hinweis zum Support

Der Artikel ist ein Teil einer Serie von How-To-Anleitungen für die Anwender der paedML Novell beziehungsweise der Novell Musterlösung, die das Ziel hat, Ihnen den Einstieg in die Linux-Welt aus dem Hause Novell zu erleichtern. Sollten Sie eine Frage zum Inhalt haben oder auf einen Fehler im Artikel stoßen, möchten wir Sie daher bitten, sich nicht an die Novell-Hotline des Projekts Support-Netz am Landesmedienzentrum Baden-Württemberg zu wenden. Richten Sie bitte alle Fragen direkt an die Entwickler der ZEN-Novell-Gruppe unter der E-Mail-Adresse:kim@lmz-bw.de

Voraussetzungen

Damit Sie das nachfolgend beschriebene Beispiel nachvollziehen können, setzen wir folgendes voraus:

  • paedML Novell3;
  • Auf dem GServer03 müssen alle auf unserem Portal veröffentlichten Patches installiert sein. Nähere Informationen zu den einzelnen Patches finden Sie unter Aktualisierungen;
  • PC mit einer Netzwerkkarte, 1 GB Arbeitsspeicher und genügend Speicherkapazität auf der Festplatte;
  • Installations-DVD für openSuSE 10.

Die Installationsanleitung der Moodle-Entwickler nennt als Minimalvoraussetzung 256MB Arbeitsspeicher und 160MB Speicherplatz auf der Festplatte. Die Speicherkapazität auf der Festplatte hängt jedoch stark von der Größe der eingesetzten Lernmaterialien ab. Sie müssen daher zunächst überlegen, wie groß die vorhandenen Daten sind und wie viel noch dazu kommen werden, um die benötigte Speicherkapazität berechnen zu können. Für die Größe der Arbeitsspeicher gilt laut der Anleitung die Daumenregel: etwa 50 gleichzeitig angemeldete Benutzer pro 1 GB.

 

Die zur Installation benötigte DVD können Sie von einem der zahlreichen Spiegel-Server unter http://www.opensuse.org herunterladen.

 

Kenntnisse im Umgang mit MySQL und openSuSE erleichtern, das Beispiel zu verstehen. Das Gleiche gilt ebenfalls für PHP und APACHE. Wenn Sie Linux noch nie installiert haben, hilft Ihnen unsere Schritt-Für-Schritt Anleitung zur Installation für openSuSE 10.3.

Vorbereitung

Zur Migration vorhandener Moodle-Daten müssen diese zuerst vom laufenden Moodle-Server exportiert werden. Damit während eines Exportvorgangs keine Daten verloren gehen - etwa deshalb, weil noch Benutzer angemeldet sind - sollten Sie den Moodle-Server zuvor offline stellen.

 

1. Daten exportieren

Um den gesamten Bestand der Moodle-Daten zu exportieren, sind zwei Schritte notwendig:

A) Der Export der MySQL-Datenbank

B) Auslagern der Moodle-Verzeichnisse /srv/www/htdocs/moodle und /srv/www/htdocs/moodledata

 

A) Datenbank-Export

Für den Export der Datenbank moodle aus MySQL gibt es eine Vielzahl von Möglichkeiten und Tools. Wer sich also in einem der zahlreichen MySQL-Clients gut auskennt, kann damit die Datenbank moodle exportieren. Für unser Beispiel verwenden wir das Kommandozeilen-Tool mysqldump.

  • Melden Sie sich als Benutzer root am GServer03 an;
  • Stellen Sie zunächst sicher, dass UML auf dem GServer03 läuft. Sie können dafür den Befehl rcuml status verwenden. Falls keine positive Rückmeldung erscheint, sollten Sie UML mit dem Befehl rcuml start starten;
  • Stellen Sie eine SSH-Verbindung zu UML her: ssh 192.168.1.3;
    Prüfen Sie zunächst, ob MySQL-Daemon läuft. Am einfachsten geht das mit: rcmysql status.Falls der Daemon erst geladen werden muss, führen Sie den Befehl rcmysql start aus;
  • Nachdem wir den Status von MySQL überprüft haben, werden wir nun mit mysqldump die Datenbank moodle exportieren. Der nachfolgende Befehl erzeugt dabei eine SQL-Datei im Homeverzeichnis des Benutzers root:
    mysqldump –p moodle > /root/moodledb_dump.sql.

h

Hinweis:

Sowohl im Schritt 3 als auch im Schritt 5 werden Sie nach einem Passwort gefragt. Falls Sie und Ihr Händler das Passwort nicht geändert haben, sind sie identisch zu dem Standardpasswort des Benutzers root von GServer03.

continue

 
B) Datenarchiv

Neben der Moodle-Datenbank müssen wir noch zwei Moodle-Verzeichnisse kopieren, um Moodle auf dem neuen Moodle-Server einsetzen zu können. Damit sie leichter portiert werden können, erstellen wir in unserem Beispiel ein Archiv. Wir verwenden dabei drei sehr nützliche Tools: find, cpio und gzip. find ist ein Tool zur Suche nach Dateien; mit cpio lassen sich aus unterschiedlichen Quellen ein Archiv erstellen. Mit gzip werden die erstellten Archive komprimiert. Da eine ausführlichere Beschreibung dieser Tools den Umfang sprengen würde, gehen wir in diesem Artikel nicht näher darauf ein. Sie werden jedoch in einem anderen Artikel, der in einer späteren Newsletter-Ausgabe erscheinen wird, zusammen mit anderen nützlichen Tools näher beschrieben.

  • Zuerst erstellen wir ein Archiv des Verzeichnis /srv/www/htdocs/moodle:
    find /srv/www/htdocs/moodle | cpio -ocv | gzip -9 > /root/moodle.cpio.gz
  • Das zweite Verzeichnis moodledata archivieren wir mit:
    find /srv/www/htdocs/moodledata | cpio -ocv | gzip -9 > /root/moodledata.cpio.gz

 

2. Kopieren der Daten auf GServer03

Damit Sie die exportierten Daten später leicht auf den neuen Moodle-Server übertragen können, müssen sie nun nach GServer03 kopiert werden. Das wird mithilfe des Secure Copy (scp) erledigt:
scp /root/moodle* 192.168.1.2:

 

Mit dem oben genannten Befehl kopieren Sie nun alle in den vorangegangenen Schritten erstellten Dateien nach /root auf dem GServer03. Vergessen Sie dabei bitte nicht den Doppelpunkt nach der IP-Adresse des GServer03 zu setzen, und zwar ohne ein Leerzeichen dazwischen. Der Doppelpunkt sorgt dafür, dass die gewünschten Dateien im Homeverzeichnis des Benutzers root, also /root, abgelegt werden.

 

3. Herunterfahren und Deaktivieren des UML

Bevor wir mit der Installation eines neuen Moodle-Servers fortfahren, ist noch ein sehr wichtiger Schritt zu tun: das Deaktivieren des UML. Wie Sie im nächsten Abschnitt sehen werden, erhält der Moodle-Server dieselbe IP-Adresse wie das UML selbst. Indem wir UML ganz deaktivieren, sorgen wir dafür, dass es zu keiner Kollision aufgrund identischer IP-Adressen kommt. Führen Sie dazu auf dem GServer03 folgende Befehle aus:

1. rcuml stop
2. chkconfig –d uml

Installation von openSuSE 10.3

Ein Wort noch zu MySQL: Beim ersten Start von MySQL werden Sie daran erinnert, das Passwort des MySQL-Administrators zu ändern. Dieser Bitte sollten Sie unbedingt nachkommen, da sonst jeder, der einen Zugang auf den Server hat, MySQL nach Belieben manipulieren kann.

 

1. Installation

Da eine ausführliche Beschreibung der Installation an dieser Stelle den Rahmen des Artikels sprengen würde, stellen wir Ihnen die Schritt-für-Schritt-Anleitung openSuSE 10.3 als LAMP-Server.pdf zum Download bereit. Darin finden Sie alle Installationsschritte detailliert beschrieben.

 

2. Konfiguration

Wenn Sie während der Installation die Standardwerte übernommen haben, müssen noch ein paar Anpassungen nachgeholt werden. Diese sind:

  • SuSE-Firewall;
  • Startmodi von APACHE2 und MySQL;
  • Konfiguration von PHP und MySQL.

Die Default-Einstellungen der SuSE-Firewall sieht vor, dass alle eingehenden Verbindungen unerlaubt sind. Da wir aber zumindest Zugriff auf den Webserver APACHE2 und damit auch Moodle gewährleisten wollen, müssen wir die Ports 80 und 443 frei schalten. Außerdem wollen wir noch für administrative Zwecke den Port 22 für ein SSH-Verbindung öffnen.

 

A) Konfiguration der SuSE-Firewall
  • Starten Sie als Benutzer root YaST;
  • Wählen Sie die Option Security and Users | Firewall aus;
  • Wählen Sie im Konfigurationsfenster der Firewall die Option Allowed Services aus;
  • Fügen Sie nacheinander HTTP Server, HTTPS Server und SSH hinzu. Wählen Sie dazu aus dem Drop-Down-Menü unter Service to Allow einen der Dienste aus und drücken Sie auf Add.

Abbildung 1: Konfiguration des LAMP-Servers

  • Next;
  • Kontrollieren Sie, ob alle drei Dienste in der Zusammenfassung als Open Services aufgelistet werden;
  • Drücken Sie auf Finish, um die Konfiguration abzuschließen.

 

B) Startmodi von APACHE und MySQL

Beide Serverdienste sind standardmäßig deaktiviert, sodass sie nach einem Serverstart nicht automatisch zur Verfügung stehen. Damit die beiden Serverdienste künftig automatisch gestartet werden, werden wir sie nun aktivieren. Führen Sie dazu nachfolgende Befehle nacheinander aus:


1. chkconfig --add apache2
2. chkconfig --add mysql

 

C) Konfigurationsdateien für PHP und MySQL

Eine angepasste Version der Dateien php5.ini für APACHE2 und my.cnf für MySQL können Sie hier herunterladen.

  • php_mysql_config.cpio.gz
  • Entpacken Sie die heruntergeladene Datei, indem Sie folgenden Befehl ausführen:

    gzip –cd php_mysql_config.cpio.gz | cpio –iduvm –absolute-files

Nachdem nun die Basis-Konfigurationen angepasst wurden, sollten die beiden Serverdienste neu gestartet werden. Führen Sie dazu nacheinander rcapache2 restart und rcmysql restart aus.

 

3. Dateien kopieren

Bevor wir die beiden Dienste APACHE2 und MySQL starten, müssen wir noch die im Abschnitt Konfiguration der SuSE-Firewall exportierten Dateien und die Konfigurationsdateien für PHP und MySQL auf den neuen Server kopieren.
Da die exportierten Dateien bereits im Homeverzeichnis des Benutzers root liegen, kopieren wir sie mithilfe von Secure Copy (scp): scp /root/moodle* root@192.168.1.3:


Vergessen Sie dabei bitte den Doppelpunkt nach der IP-Adresse nicht!

Moodle importieren

Nachdem der neue Moodle-Server installiert und für den ersten Einsatz konfiguriert ist, können wir nun die Moodle-Daten und die Datenbank importieren. Dazu führen wir die folgenden Schritte aus:

  1. Melden Sie sich als Benutzer root am Moodle-Server an;
  2. Kontrollieren Sie, ob MySQL tatsächlich läuft: rcmysql status. Sollte eine Rückmeldung in etwa unused oder dead erscheinen, muss MySQL mit rcmysql start gestartet werden;
  3. Stellen Sie mit mysql –p und dem zuvor erstellten Passwort eine Verbindung zu MySQL her. Nach der erfolgreichen Anmeldung befinden Sie sich dann in einer Shell-Umgebung, wo Sie die MySQL-Datenbanken direkt bearbeiten können;
  4. Als erstes legen Sie eine Datenbank mit dem Namen moodle an:
    CREATE DATABASE MOODLE;
  5. Nun müssen wir für den Benutzer moodleuser einige Rechte definieren:
    GRANT SELECT, INSERT, DELETE, CREATE, CREATE TEMPORARY TABLES, DROP, INDEX, ALTER ON moodle.* TO moodleuser IDENTIFIED BY ’Geheim’;
    Ersetzen Sie das Wort Geheim durch Ihr eigenes Passwort!
  6. Verlassen Sie die Shell mit quit;
  7. Nun wird die exportierte Datenbank importiert:
    mysql –p moodle < moodledb_dump.sql;
  8. Damit ist der Import der Datenbank moodle beendet;
  9. Die zwei Archive der Moodle-Verzeichnisse entpacken wir, indem wir den folgenden Befehl ausführen:
    gzip –cd moodledata.cpio.gz | cpio –iduvm –absolute-filenames && gzip –cd moodle.cpio.gz | cpio –iduvm –absolute-filenames.

 

Damit ist die gesamte Migration von Moodle abgeschlossen. Starten Sie den Webserver APACHE2 neu und prüfen Sie auf einer Arbeitsstation nach, ob die Startseite von Moodle über einen Browser aufgerufen wird.

 

Abbildung 2: Startseite von Moodle nach Aufruf über den Browser

 

h

Hinweis:

Beim Versuch, die Datenbank moodle zu importieren, trat gelegentlich das Problem auf, dass die Tabelle mdl_choice nicht angelegt und der Import folglich nicht erfolgreich zu Ende geführt werden konnte. Wir haben die Störung dadurch gelöst in dem wir die Zeile, die die Störung verursacht hat angepasst haben.

continue 2

 

Sollten Sie ebenfalls auf die gleiche Störung stoßen, könnte Ihnen das folgende Work-Around helfen:

  • Öffnen Sie die Datei moodledb_dump.sql mit einem Editor, wie zum Beispiel Kate (für KDE), GEdit (für GNOME) oder mcedit als Konsoleneditor;
  • Suchen Sie nach dem Begriff mdl_choice;
  • Setzen Sie den Cursor zu Beginn der Zeile, die mit release tinyint(4) beginnt;
  • Umschließen Sie das Wort release in Backticks ( ` ).

Abbildung 3: Ansicht der Datenbank moodle

  • Melden Sie sich an MySQL mit mysql -p an;
  • Löschen Sie die Datenbank moodle: DROP DATABASE moodle;
    CREATE DATABASE MOODLE;
  • GRANT SELECT, INSERT, DELETE, CREATE, CREATE TEMPORARY TABLES, DROP, INDEX, ALTER ON moodle.* TO moodleuser IDENTIFIED BY ’Geheim’;
  • quit.

Fazit und Ausblick

Wie eingangs erwähnt, handelt es sich bei diesem Artikel um einen Teil einer Artikelserie. Wir hoffen, dass wir mit diesem und weiteren Artikeln beziehungsweise HowTos den Anwendern der paedML Novell 3 und der Novell-Musterlösung 2.7 den Umgang mit Linux näher bringen, da die paedML Novell 3 nicht mehr auf Netware-Basis, sondern auf der Basis Novells Open Enterprise Server Linux erscheint.

 

Mit diesem HowTo Migration von Moodle von einem auf einen anderen Server hoffen wir, dass wir an einem praxisbezogenen Beispiel Ihr Interesse für die Linux-Varianten aus dem Hause Novell wecken konnten.

 

Links:

openSUSE

MySQL

Moodle

 

Soo-Dong Kim, 8. Mai 2008

 

Zum KundenloginZum Kundenlogin
Diese Website durchsuchen
KleinMittelGroß Schriftgröße wählen