Fortsetzen nach einer Moodle-Migration

Aufgaben nach der Migration

Nach der Migration von Moodle müssen Sie einige Aufgaben durchführen, um die Konfiguration zu vervollständigen. Diese Aufgaben sind unter anderem:

  • Aktualisieren von Protokollpfaden in VM-Skalierungsgruppeninstanzen.
  • Neustarten von Servern in VM-Skalierungsgruppeninstanzen.
  • Aktualisieren von Zertifikaten.
  • Aktualisieren von Zertifikatspeicherorten.
  • Aktualisieren der lokalen HTML-Kopie.
  • Neustarten der PHP- und NGINX-Server.
  • Zuordnen des DNS-Namens zur Azure Load Balancer-IP-Adresse.

VM-Skalierungsgruppe des Controllers

Führen Sie die folgenden Schritte aus, um die Konfiguration der VM-Skalierungsgruppe abzuschließen. Sie müssen unter Verwendung der privaten IP-Adresse eine SSH-Verbindung mit der VM-Skalierungsgruppe herstellen, wie unter Zugreifen auf die VM-Skalierungsgruppe beschrieben.

Aktualisieren der Protokollpfade

Protokolldateien werden in Ihrer lokalen Umgebung und in Azure möglicherweise an verschiedenen Speicherorten gespeichert. Beispielsweise müssen Sie die folgenden Protokollpfade aktualisieren:

  • /var/log/syslogs/moodle/access.log
  • /var/log/syslogs/moodle/error.log

Führen Sie diese Schritte aus, um die Speicherorte der Protokolldateien zu aktualisieren:

  1. Geben Sie diesen Befehl ein, um die Konfigurationsdatei zu öffnen:

    nano /etc/nginx/nginx.conf
    
  2. Suchen Sie nach access_log und error_log, und aktualisieren Sie die Protokollpfade.

  3. Drücken Sie STRG+O zum Speichern der Änderungen und STRG+X, um die Datei zu schließen.

Neustarten von Servern

Geben Sie die folgenden Befehle ein, um die nginx- und php-fpm-Server neu zu starten:

sudo systemctl restart nginx
sudo systemctl restart php<php version>-fpm

Virtueller Controllercomputer

Führen Sie diese Schritte aus, um die Konfiguration der Controller-VM abzuschließen.

Aktualisieren der Sicherheitszertifikate

  1. Melden Sie sich bei der Controller-VM an. Die Zertifikate für Ihre Moodle-Anwendung befinden sich im Ordner /moodle/certs.

  2. Kopieren Sie die .crt- und .key-Dateien nach /moodle/certs/. Ändern Sie die Dateinamen in nginx.crt bzw. nginx.key, damit sie von den konfigurierten NGINX-Servern erkannt werden. Wenn Ihre lokale Umgebung das Hilfsprogramm SCP oder ein Tool wie WinSCP unterstützt, können Sie diese Dateien damit auf die Controller-VM kopieren. Verwenden Sie andernfalls die folgenden Befehle:

    cd /<path to certs location>
    mv /<path to certs location>/*.key /moodle/certs/nginx.key
    mv /<path to certs location>/*.crt /moodle/certs/nginx.crt
    

    Statt die Dateien zu kopieren, können Sie auch mithilfe der folgenden Befehle ein selbstsigniertes Zertifikat generieren:

    openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
    -keyout /moodle/certs/nginx.key \
    -out /moodle/certs/nginx.crt \
    -subj "/C=US/ST=WA/L=Redmond/O=IT/CN=mydomain.com"
    

    Ein selbstsigniertes Zertifikat kann nur zum Testen verwendet werden.

  3. Es wird empfohlen, www-data:www-data als Besitzer der Zertifikatsdateien festzulegen und diesem schreibgeschützten Zugriff zu gewähren. Geben Sie die folgenden Befehle ein, um diese Änderungen vorzunehmen:

    chown www-data:www-data /moodle/certs/nginx.*
    chmod 400 /moodle/certs/nginx.*
    
  4. Aktualisieren Sie den Speicherort des Zertifikats, indem Sie folgende Schritte ausführen:

    1. Geben Sie diesen Befehl ein, um die Konfigurationsdatei zu öffnen:

      nano /etc/nginx/sites-enabled/*.conf
      
    2. Suchen Sie in der Datei nach ssl_certificate.

    3. Ersetzen Sie die Pfade des Zertifikats durch die folgenden Werte:

      /moodle/certs/moodle/certs/nginx.crt;
      /moodle/certs/nginx.key;
      
    4. Drücken Sie STRG+O zum Speichern der Änderungen und STRG+X, um die Datei zu schließen.

Aktualisieren der lokalen HTML-Kopie

Die lokale Kopie des Inhalts der Moodle-HTML-Website /moodle/html/moodle wird in der VM-Skalierungsgruppe im folgenden Ordner erstellt: /var/www/html/moodle. Die lokale Kopie wird nur aktualisiert, wenn der Zeitstempel geändert wird. Geben Sie den folgenden Befehl auf der Controller-VM ein, um den Zeitstempel zu aktualisieren:

sudo -s
/usr/local/bin/update_last_modified_time.moodle_on_azure.sh

Die Datei für den Zeitstempel der letzten Änderung /moodle/html/moodle/last_modified_time.moodle_on_azure enthält ein Skript. Jedes Mal, wenn das Skript ausgeführt wird, wird der Inhalt des Verzeichnisses /moodle/html/moodle in der lokalen Kopie /var/www/html aktualisiert.

Neustarten von Servern

Geben Sie die folgenden Befehle ein, um die nginx- und php-fpm-Server neu zu starten:

sudo systemctl restart nginx
sudo systemctl restart php<php version>-fpm

Zuordnen des DNS-Namens zur Azure Load Balancer-IP-Adresse

Führen Sie die folgenden Schritte auf Ebene des Hostinganbieters aus, um den DNS-Namen der Azure Load Balancer-IP-Adresse zuzuordnen:

  1. Geben Sie den folgenden Befehl auf der Controller-VM ein, um den Wartungsmodus für die Moodle-Website zu deaktivieren:

    sudo /usr/bin/php admin/cli/maintenance.php --disable
    
  2. Geben Sie den folgenden Befehl ein, um den Status der Moodle-Website zu überprüfen:

    sudo /usr/bin/php admin/cli/maintenance.php
    
  3. Rufen Sie den DNS-Namen auf, um die migrierte Moodle-Webseite anzuzeigen.

Häufig gestellte Fragen und Problembehandlung

Lesen Sie die folgenden Informationen, wenn Sie Fragen zur Moodle-Migration haben. Bei der Problembehandlung können Sie auch die folgenden Protokolldateien hinzuziehen:

  • Syslog-Dateien:

    • Wenn ein Benutzer Ihre Webseite aufruft, wird vom System entweder ein Fehlerprotokoll oder ein Zugriffsprotokoll generiert.
    • Diese finden Sie im folgenden Ordner: /var/log/nginx/.
  • Cron-Protokolldatei:

    • Wenn ein Cron-Auftrag ausgeführt wird, wird die lokale Kopie der Protokolldatei aktualisiert.
    • Diese Datei finden Sie im folgenden Ordner: /var/log/sitelogs/moodle/cron.log.

Datenbankverbindungsfehler

Im Folgenden finden Sie mögliche Ursachen und Lösungen für Fehler wie Fehler beim Öffnen der Datenbankverbindung oder Es konnte keine Verbindung mit der angegebenen Datenbank hergestellt werden:

  • Ihr Datenbankserver ist nicht installiert oder wird nicht ausgeführt. Um diese Bedingung in MySQL zu überprüfen, geben Sie den folgenden Befehl ein:

    $telnet database_host_name 3306
    

    Wenn die Datenbank ausgeführt wird, sollten Sie eine Antwort erhalten, die die Versionsnummer des MySQL-Servers enthält.

  • Die Hostadresse ist nicht ordnungsgemäß konfiguriert. Wenn Sie zwei Instanzen von Moodle an unterschiedlichen Ports ausführen, verwenden Sie die IP-Adresse des Hosts und nicht localhost in der Einstellung $CFG->dbhost. Verwenden Sie z.B. Folgendes:

    $CFG->dbhost = 127.0.0.1:3308

  • Sie haben keine Moodle-Datenbank erstellt. Oder Sie haben keine ausreichenden Berechtigungen für den Zugriff auf die Datenbank zugewiesen. Überprüfen Sie die Datenbank und die Berechtigungen, die Sie erteilt haben.

  • Die Moodle-Datenbankeinstellungen sind nicht richtig. Beispielsweise kann der Datenbankname, der Benutzername oder das Kennwort in der Moodle-Konfigurationsdatei config.php falsch sein. Stellen Sie sicher, dass der Benutzername und das Kennwort für MySQL keine Apostrophen und nur alphanumerische Zeichen enthalten.

Interner Serverfehler

Dieser Fehler kann verschiedene Ursachen haben: 500: Interner Serverfehler. Überprüfen Sie zunächst das Fehlerprotokoll Ihres Webservers, in dem Sie eine ausführliche Erläuterung finden sollten. Einige mögliche Ursachen:

  • Die Datei .htaccess oder httpd.conf enthält einen Syntaxfehler. Die richtige Syntax für Direktiven hängt von der Datei ab, die Sie verwenden. Verwenden Sie den folgenden Befehl, um Ihre NGINX-Dateien auf Konfigurationsfehler zu testen:

    `nginx -t`
    
  • Der Webserver wird unter Ihrem eigenen Benutzernamen ausgeführt, und die Zugriffsberechtigungen sind falsch. In diesem Fall ist für alle Dateien die maximale Berechtigungsebene 755 erforderlich. Überprüfen Sie in der Systemsteuerung, ob diese Ebene für Ihr Moodle-Verzeichnis festgelegt ist. Sie können auch den folgenden Befehl verwenden, um die Ebene festzulegen, wenn Sie Zugriff auf die Shell haben:

    chmod -R 755 moodle
    

Arbeitsspeicherlimitfehler

Wenn der Fehler 403: Verboten auftritt, ist der PHP-Wert memory_limit für das PHP-Skript zu klein. Der Wert memory_limit gibt die zulässige Arbeitsspeichergröße an. Erhöhen Sie den PHP-Wert memory_limit in kleinen Schritten, bis die Meldung nicht mehr angezeigt wird. Verwenden Sie eine der folgenden Methoden:

  • Bei einer gehosteten Installation fragen Sie den Support Ihres Hosts, wie Sie den Wert erhöhen sollten. In vielen Umgebungen werden .htaccess-Dateien verwendet. Wenn dies bei Ihrer Installation der Fall ist, fügen Sie die folgende Zeile Ihrer .htaccess-Datei hinzu:

    php_value memory_limit <value>M
    

    Um den Wert z. B. auf 40 MB zu erhöhen, geben Sie Folgendes ein:

    php_value memory_limit 40M

    Wenn keine .htaccess-Datei vorhanden ist, erstellen Sie eine Datei mit dieser Zeile im Moodle-Verzeichnis.

  • Wenn Sie über einen eigenen Server mit Shellzugriff verfügen, bearbeiten Sie Ihre Datei php.ini. Starten Sie den Webserver dann neu, um die Änderungen zu übernehmen, die Sie in php.ini vorgenommen haben. Um sicherzustellen, dass Sie den Wert ordnungsgemäß aktualisiert haben, geben Sie den folgenden Befehl ein:

    `phpinfo`
    

    Die Ausgabe von phpinfo sollte eine Zeile wie die folgende enthalten:

    memory_limit <value>M
    

    Beispielsweise könnte die folgende Zeile enthalten sein:

    memory_limit 40M

    Statt den Wert memory_limit zu erhöhen, können Sie auch das Speicherlimit deaktivieren, indem Sie den folgenden Befehl eingeben:

    memory_limit 0
    

Anmeldefehler

In bestimmten Fällen ist eine Anmeldung nicht möglich, oder es wird eine der folgenden Meldungen angezeigt:

  • Your session has timed out. Please log in again.

  • A server error that affects your login session was detected. Please log in again or restart your browser.

Möglicherweise liegt ein Problem mit Ihrer Authentifizierungsmethode vor, insbesondere dann, wenn Sie eine externe Methode wie LDAP für die Benutzerauthentifizierung verwenden. Versuchen Sie, sich bei einem anderen manuellen Konto (z. B. Ihrem Hauptadministratorkonto) anzumelden. Wenn Sie sich nicht anmelden können, überprüfen Sie die Authentifizierung. Wenn Sie sich beim anderen Konto anmelden können, finden Sie hier mögliche Gründe und Lösungen für das Problem mit der Moodle-Anmeldung:

  • Die Festplatte ist möglicherweise voll. In diesem Fall kann Moodle keine neuen Sitzungen erstellen, und Benutzer können sich nicht anmelden. Überprüfen Sie, ob Ihre Festplatte nicht voll ist, dass Ihr Server freigegeben gehostet wird und dass Sie Ihr Speicherplatzkontingent nicht erreicht haben.

  • Der Webserver kann nicht in das Unterverzeichnis sessions schreiben. Überprüfen Sie sorgfältig die Berechtigungen in Ihrem moodledata-Bereich.

Schwerwiegende Fehler

Die Berechtigungen für Moodle und „moodledata“ sind möglicherweise falsch, wenn der folgende Fehler angezeigt wird: fatal error: $cfg->dataroot is not writable. The admin has to fix directory permissions! Exiting.

Vergewissern Sie sich, dass diese Berechtigungen nur für www-data:www-data gelten. Wenn die Berechtigungen auf einer anderen Ebene angewendet werden, verwenden Sie den folgenden Befehl, um die Gruppen- und Besitzberechtigungen zu ändern:

sudo chown -R /moodle/moodledata

Fehler beim Kurs der obersten Ebene

Wenn Sie direkt nach der Installation von Moodle keinen Kurs der obersten Ebene vorfinden, wurde die Installation wahrscheinlich nicht vollständig durchgeführt. Direkt vor Abschluss einer vollständigen Installation werden Sie von Moodle aufgefordert, das Administratorprofil und einen Namen für die Website anzugeben. Wenn diese Schritte fehlten, sehen Sie in den Protokollen nach, ob Fehler aufgetreten sind. Starten Sie die Datenbank dann neu. Wenn Sie das webbasierte Installationsprogramm verwendet haben, installieren Sie Moodle erneut über die Befehlszeile.

Wenn nach der Anmeldung eine uneingeschränkte Navigation in Moodle nicht möglich ist, ist die URL-Konfiguration möglicherweise falsch. Stellen Sie sicher, dass die URL in der Einstellung $CFG->wwwroot mit der URL übereinstimmt, die Sie für den Zugriff auf die Website verwenden.

Fehler bei Hochladen von Dateien

Wenn beim Hochladen einer Datei der Fehler Datei nicht gefunden angezeigt wird, sind Argumente mit Schrägstrichen auf Ihrem Webserver möglicherweise nicht aktiviert.

  • Wenn Ihr Webserver Argumente mit Schrägstrichen unterstützt, aktivieren Sie sie.

  • Wenn Ihr Webserver keine Argumente mit Schrägstrichen unterstützt, deaktivieren Sie sie in Moodle, indem Sie das Kontrollkästchen Slash-Parameter benutzen unter Administration>Website-Administration>Server>HTTP deaktivieren. Möglicherweise wird die folgende Meldung angezeigt:

    Warnung

    Das Deaktivieren von Argumenten mit Schrägstrichen führt dazu, dass SCORM-Pakete (Sharable Content Object Reference Model, Objektreferenzmodell für teilbare Inhalte) nicht funktionieren und dass Warnungen wegen Argumenten mit Schrägstrichen angezeigt werden.

Wartungsmodusfehler

Wenn sich Moodle im Wartungsmodus befindet und Sie versuchen, diesen Modus zu verlassen, wird manchmal die folgende Meldung angezeigt: Die Website wird gewartet und ist zurzeit nicht verfügbar. Dieser Fall tritt bei einem Problem mit der Datei maintenance.html auf, die von Moodle im Ordner moodledata erstellt wird, wenn zum Wartungsmodus gewechselt wird. Führen Sie in diesem Fall die folgenden Schritte aus:

  • Überprüfen Sie, ob der Webserverbenutzer über Schreibberechtigungen für das Verzeichnis moodledata verfügt.
  • Löschen Sie die Datei maintenance.html manuell.

Nächste Schritte