letzte Woche bekam ich von einer Mitarbeiterrin von BelWue eine E-Mail, in der sie fragte, ob sie wirklich die E-Mails unserer Schule und den Moodle-Auftritt löschen sollte.
Zum Glück hat sie nachgefragt, denn von meiner Schule hat niemand die Löschung beauftragt. Von wem der Auftrag kam habe ich noch nicht herausbekommen…
Naja, jetzt experimentiere ich mit einem eigenen Moodle in einem Docker-Container:
Auf einer Linuxmaschine mit aktuellem docker (siehe hier) das Verzeichnis /srv/docker/moodle anlegen.
In /srv/docker/moodle die Datei docker-compose.yml mit dem Inhalt von hier anlegen.
Im Verzeichnis /srv/docker/moodle den Befehl docker compose up -d absetzen.
Das war’s jetzt ist unter http://dockerhost/ der neue Moodle-Auftritt erreichbar. Und zwar im Augenblick in der Version 4.2 mit PHP 8.1.
Wenn ich versuche eine Externe Authentifizierung über LDAP, wie hier bschrieben, zu machen, erhalte ich das:
Im Internet scheint das ein Problem von PHP8.1 zu sein. hat da schon jemand eine Lösung?
Vielen Dank schon mal für’s Mitdenken.
Gruß,
Mathias
ich würde das nicht im Docker-Container machen. Ohne ist eine Instandhaltung deutlich einfacher, ich habe ein Script, das mir bei Aufruf alles neu von Github holt und die Update-Scripte durchführt. Bei Bedarf poste ich das hier gerne. Man kann damit dann von Hand auf den nächsten Branch (für ein Upgrade zwischen den Versionen) machen und dann über git pull weiter aktuell halten. Ich mache das mittlerweile seit mehr als sechs oder acht Jahren und es gab nur einmal ein Problem und das lag nicht an Moodle sondern an einem veralteten Plugin (seitdem nutze ich nur noch die mitgelieferten).
Hallo Mathias,
Moodle über Docker habe ich noch nicht gemacht.
Bei der Umstellung auf Ubuntu 20.04 LTS und PHP 8 erhielt ich Fehler 500 im Browser, ein aktivieren von „disk_free_space“ half erst einmal. Aber der Fehler kam immer wieder, eine Lösung (auch noch nicht gekümmert) habe ich bisher nicht.
Hast Du den moodle_data-Pfad per open_base_dir freigegeben?
Ein Auszug von info.php Abschnitt „disable_functions“ wäre auch interessant.
VG Andreas
Die Anleitung ist veraltet, aber mit den neuen Ubuntu-Versionen funktioniert es identisch. Ich habe seitdem lediglich die Postgres und PHP-Versionen aktualisiert. Wenn irgendetwas nicht funktionieren sollte, kann ich das nachbessern.
Hallo Mathias,
nein.
Moodle: /Administration/Server/PHP Info/ und da nach „open_basedir“
Vielleicht schreibe ich auch nur wirres Zeug, da ich keine Ahnung von Docker habe
VG Andreas
Hallo Mathias,
OK …, bei einer normalen Moodle-Installation muss das Moodle-Data-Verzeichnis ausserhalb vom Webserver-Verzeichnis liegen und damit Moodle Zugriff erhält per php-Direktive [openbase_dir] „freigeschaltet“ werden.
Aber wie gesagt, Docker ist speziell, vielleicht kann jemand aus der Liste mit Ahnung zu Docker/Moodle sich diesbezüglich mal dazu äussern.
Weshalb setzt Du Moodle nicht direkt auf, ohne Docker? Siehe
Da könnte ich Dir definitiv besser helfen
Dein Problem scheint auch eher ein LDAP-Problem zu sein, wo ich noch weniger Ahnung als von Docker habe
VG Andreas
PS: Ich würde auch mal das „memory_limit“ auf 512MB setzen, schaden tut es sicherlich nicht.
Auf meinem Dockerhost in der Schule muss ich nur das Verzeichnis /srv/docker/moodle anlegen, dort die Datei docker-compose.yml reinkopieren und mit docker compose up -d starten. Dann läuft’s…
Für ein update mach ich aus image:docker.io/bitnami/moodle:4.2
einfach image:docker.io/bitnami/moodle:4.3
, stoppe moodle mit docker compose down und starte es neu mit docker compose up -d. Das war’s.
Die Container laufen alle auf einem Dockerhost. Bei uns sind das die Nextcloud, zwei Web-Sites, das MRBS, das Openschulportfolio und der Collabore-Service.
was machst du, wenn du nach dem Update feststellst, dass eine Erweiterung nicht mit der neuen Moodle-Version funktioniert o.ä.?
Ein Rollback ist i.d.R. nicht möglich, es sei denn du spielst ein Backup der Datenbank ein.
Git bietet mir den Vorteil, dass ich in einem lokalen Repository alles (inklusive der Erweiterungen als Submodule) up to date halten kann und diesen dann erst in eine staging-Umgebung pushe. Wenn dort alles funktioniert, pushe ich die Änderungen auf unsere Produktiv-Umgebung. Beim Push werden auch alle Submodule (Erweiterungen) auf den aktuellen stand gebracht.
Erweiterungen verwalte ich (Version, bzw. aktuellester tag einstellbar) in einer einfachen csv-Datei. Ein einfaches python-Skript zieht mir dann die Erweiterungen aus deren jeweiligem Git-Repo.
Bisher habe ich das ganze aber auf einem Server von Hetzner und nicht auf dem Schulserver.
Das Einrichten ist aufwendiger als mit Docker, aber der Betrieb erscheint mir einfacher und flexibler. Und Tut bei mir
Naja, mit Moodle habe ich noch keine Erfarungen, da wir bisher das BelWue-Moodle nutzen. Ich setzte Docker unter Anderem für unsere Nextcloud ein. Und da gebe ich im Docker-Compose-File einfach die nächste Versionssnummer ein beende den Container und starte ihn mit der Option --build neu. Das wars. Vorher mach ich da einen Snapshot. Und wenn irgendwelche unvorhergesehene Probleme auftauchen, kehre ich halt wieder zurück. Allerdings sollte man sich da nicht zu viel Zeit lassen, da sonst beispielsweise Kalendereinträge von Kollegen verlohren gehen. Ein einfaches Zurück geht da nicht. Das stimmt…
Ich hätte das mit Moodle genau so gemacht…
Das ist der springende Punkt. Es tut und die Version von bitnami (von VMWare) halt nicht. Insofern schau ich mir das (Webserver- und Datenbank aufsetzen,… ) auch mal an.
Hast du da eine gute Anleitung?
Gruß,
Mathias