MOODLE Updaten
Wichtige Daten sichern
Es müssen drei Bereiche gesichert werden, bevor eine Aktualisierung durchgeführt wird:
- Moodle Software (PHP-Skripte von Moodle)
- Moodle-Datenverzeichnis
- Moodle-Datenbank
Weiters müssen alle verwendeten PlugIn auf dem aktuellen stand sein.
Wartungsmodus aktivieren
Bevor mit der Aktualisierung begonnen wird, die Moodle-Site in den Wartungsmodus schalten, um zu verhindern, dass sich Nutzer/innen anmelden.
Danach abwarten, bis alle laufenden Cron-Prozesse abgeschlossen sind, bevor mit der Aktualisierung fortfahren wird.
Akualisierung durchführen
- Umbenennen des alte Moodle-Verzeichnis (z.B. /moodle -> /moodleold).
- Entpacken des neuen Code und kopieren in das Verzeichnis, in dem die alten Moodle-Skripte vorher lagen (z.B. /moodle).
- Kopieren der alte Moodle-Konfigurationsdatei config.php zurück ins Moodle-Verzeichnis (z.B. /moodle).
- Wenn zusätzliche Plugins installiert waren, die entsprechenden neuen Versionen herunter laden und entpacken in die passenden Verzeichnisse.
(Sicherstellen, dass die Versionen der Plugins zur neuen Moodle-Version passen.)
Mit dem Aufruf der Moodle-Seite wird die Aktivierung angestoßen.
MOODLE im Docker Container
https://hub.docker.com/r/bitnami/moodle (Informationen zu Docker und Moodle)
Aktualisieren des Images
HINWEIS: Seit Moodle(TM) 3.4.0-r1 sollten die Anwendungs-Upgrades manuell innerhalb des Docker-Containers gemäß der offiziellen Dokumentation durchgeführt werden . Alternativ können Sie versuchen, ein Upgrade mit einem aktualisierten Docker-Image durchzuführen. Dabei gehen jedoch alle Daten aus dem Moodle(TM)-Container verloren und Sie müssen alle manuell hinzugefügten Plugins und Themes neu installieren.
Bitnami stellt aktuelle Versionen von MariaDB und Moodle™ bereit, einschließlich Sicherheitspatches, kurz nachdem sie im Upstream erstellt wurden. Wir empfehlen, dass Sie diese Schritte ausführen, um Ihren Container zu aktualisieren. Wir werden hier das Upgrade des Moodle™-Containers behandeln. Für das MariaDB-Upgrade siehe: https://github.com/bitnami/containers/tree/main/bitnami/mariadb#upgrade-this-image
Schritt 1: Holen Sie sich das aktualisierte Image$ docker pull bitnami/moodle:latest
Schritt 2: Stoppen Sie den laufenden Container
Stoppen Sie den aktuell ausgeführten Container mit dem Befehl
$ docker-compose stop moodle
Schritt 3: Erstellen Sie einen Snapshot des Anwendungsstatus
Befolgen Sie die Schritte unter Sichern Ihres Containers , um einen Snapshot des aktuellen Anwendungsstatus zu erstellen.
Schritt 4: Entfernen Sie den derzeit ausgeführten Container
Entfernen Sie den aktuell ausgeführten Container, indem Sie den folgenden Befehl ausführen:
docker-compose rm -v moodle
Schritt 5: Führen Sie das neue Image aus
Aktualisieren Sie das Image-Tag in docker-compose.yml und erstellen Sie Ihren Container mit dem neuen Image neu:
$ docker-compose up -d
Sichern des Container
Befolgen dieser einfachen Schritte, um die Daten, Konfiguration und Protokolle zu sichern:
Schritt 1: Stoppen Sie den aktuell ausgeführten Container$ docker stop moodle
Oder mit Docker Compose:
$ docker-compose stop moodle
Schritt 2: Führen Sie den Sicherungsbefehl aus
Wir müssen zwei Volumes in einem Container bereitstellen, den wir zum Erstellen des Backups verwenden: ein Verzeichnis auf Ihrem Host, in dem das Backup gespeichert wird, und die Volumes aus dem Container, den wir gerade gestoppt haben, damit wir auf die Daten zugreifen können.
$ docker run --rm -v /path/to/moodle-backups:/backups --volumes-from moodle busybox \
cp -a /bitnami/moodle /backups/latest
Wiederherstellen einer Sicherung
Das Wiederherstellen eines Backups ist so einfach wie das Mounten des Backups als Volumes in den Containern.
Für den MariaDB-Datenbankcontainer:
$ docker run -d --name mariadb \
...
- --volume /path/to/mariadb-persistence:/bitnami/mariadb \
+ --volume /path/to/mariadb-backups/latest:/bitnami/mariadb \
bitnami/mariadb:latest
Für den Moodle™-Container:
$ docker run -d --name moodle \
...
- --volume /path/to/moodle-persistence:/bitnami/moodle \
+ --volume /path/to/moodle-backups/latest:/bitnami/moodle \
bitnami/moodle:latest
Analyse der Serverumgebung
Dieses Analyse-Tool deckt verschiedene Probleme in der Serverumgebung Ihrer Moodle-Site auf. Es gibt keinen Link zu diesem Tool im Einstellungen-Block, Sie können es jedoch über folgende URL im Browser aufrufen: IhreMoodleSite/admin/tool/health/.
Achtung: Das Tool wird nicht mehr weiterentwickelt. Siehe MDL-35212 für mehr Details.
Das Tool prüft folgendes:
- Zusätzliche Zeichen am Ende der Moodle-Konfigurationsdatei config.php und in anderen Moodle-Bibliotheken
- $CFG->dataroot existiert nicht oder hat keine Schreibrechte für den Webserver-Nutzer
- Cron-Job cron.php ist nicht eingerichtet
- PHP: session.auto_start ist aktiviert
- PHP: file_uploads ist deaktiviert
- PHP: memory_limit ckann nicht von Moodle gesteuert werden
- SQL: es wird ein Nutzerkonto ohne Passwort verwendet
- Datenkonsistenz in Zufallsfragen
- Datenkonsistenz in Multiple-Choice-Fragen mit Mehrfachantworten
- Fragenkategorien müssen zu einem gültigen Kontext gehören
- Fragenkategorien müssen zum selben Kontext gehören wie die übergeordneten Kategorien
- Baumstruktur der Fragenkategorien
- Baumstruktur der Kursbereiche
Eine Möglichkeit Zum überprüfen
sudo -u www-data /usr/bin/php admin/cli/mysql_collation.php --collation=utf8mb4_unicode_ci
https://moodle.org/mod/forum/search.php?id=18&search=utf8
_________________________________________
in /var/packages/MariaDB10/etc eine my.cnf angelegt mit folgenden Inhalt:
[client]
default-character-set = utf8mb4
[mysqld]
innodb_file_format = Barracuda
innodb_file_per_table = 1
innodb_large_prefix
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
skip-character-set-client-handshake
[mysql]
default-character-set = utf8mb4
Diese my.cnf wird gelesen durch
./volume1/@appstore/MariaDB10/usr/local/mariadb10/etc/mysql/my.cnf durch den !include Befehl
_________________________________________
- Ändern Sie die Konfigurationseinstellungen für MySQL (dasselbe gilt für MariaDB). Dieser Schritt ist optional. Sie können das Skript laufen lassen, das versucht, diese Änderungen vorzunehmen. Wenn Fehler auftreten, ändern Sie die Einstellungen manuell wie folgt:
- Unter Linux müssen Sie die Konfigurationsdatei my.cnf ändern. Diese befindet sich häufig im Verzeichnis /etc/mysql/.
- Nehmen Sie in dieser Datei folgende Änderungen vor:
[client] default-character-set = utf8mb4
[mysqld] innodb_file_format = Barracuda innodb_file_per_table = 1 innodb_large_prefix
character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci skip-character-set-client-handshake
[mysql] default-character-set = utf8mb4
- Starten Sie den MySQL-Server neu.
- Lassen Sie das CLI-Kommandozeilenskript laufen, um auf den neuen Zeichensatz und auf die neue Kollation zu konvertieren (erfordert Moodle ab 3.1.5 oder 3.2.2):
$ php admin/cli/mysql_collation.php --collation=utf8mb4_unicode_ci
inweis: Auf großen Moodle-Sites läuft das Skript sehr langsam. Wir empfehlen die Daten zu sichern (dump) und wieder zu importieren (mit dem Parameter --skip-character-set).
- Ändern Sie die globale Variable $CFG->dboptions in der Moodle-Konfigurationsdatei config.php, um sicherzustellen, dass Moodle bei der Verbindung mit dem MySQL-Server die richtige Kollation verwendet:
$CFG->dboptions = array( … 'dbcollation' => 'utf8mb4_unicode_ci', … );
- Versuchen Sie, in einem Text in Moodle einige Emojis (z.B. 😂💩) einzufügen, um zu sehen, ob die Aktualisierung erfolgreich war.
_________________________________________
das Umstellen der Datenbank allein genügt in der Regel nicht, zumindest nicht bei einem Upgrade. Es müssen vermutlich die folgenden beiden CLI-Scripte direkt auf der Konsole ausgeführt werden:
- admin/cli/mysql_compressed_rows.php
- admin/cli/mysql_collation.php
# sudo -u www-data php <path-to-moodle>/admin/cli/mysql_compressed_rows.php --fix
# sudo -u www-data php <path-to-moodle>/admin/cli/mysql_collation.php --collation=utf8mb4_unicode_ci
Wenn du selbst nicht an die Konsole des Servers herankommst, brauchst du Unterstützung durch deinen Provider.
______________________________________________________
da steht im Prinzip alles drin, wie man zu utf8mb4 kommt:
- sql-Server stoppen
- Einträge in der my.ini hinzufügen
- sql-Server starten
- das angegebene Skript exakt so ausführen (knapp 400 Tabellen wurden konvertiert, ca. 1100 nicht)
- schließlich noch die angegebene Option in der config.php hinzufügen (copy paste)
______________________________________________________
gerade nochmal ausprobiert … was problemlos klappt, ist dies:
cd "docker-moodle-verzeichnis"
docker-compose up -d (startet mariaDB & moodle)
docker ps ==> Welche ID hat der moodle-Container “bitnami/moodle:latest”?
docker exec -it “Container-ID” bash (startet eine bash im laufenden docker-Container)
php admin/cli/maintenance.php --enable
php admin/cli/upgrade.php
php admin/cli/maintenance.php --disable
https://tech.oeru.org/installing-and-upgrading-moodle-docker-compose-ubuntu-2204