Moodle auf VPS installieren
Diese Anleitung zeigt Dir, wie Du die Lernplattform Moodle auf einem VPS installierst. Schritt für Schritt.
Inhaltsverzeichnis
Hinweis
Einige Screenshots zeigen das Backend unseres Schwesterunternehmens dogado. Die gezeigten Schritte können jedoch auch im easyname-Backend durchgeführt werden.
0. Überblick
- Verwendetes System: Debian 11 64 bit
- Genutzter User: Ich nehme alles als „root“ vor
- Testserver: VPS General Purpose
- Zeitdauer: ca. 10 Minuten
- Schwierigkeit: Einfach. Nur Code kopieren 😉
- Besonderheiten:
- Grundlage ist folgende Anleitung: Traefik Reverseproxy installieren Diese Anleitung muss zuerst ausgeführt werden.
- Die Installation von Docker / Docker Compose wird hier vorausgesetzt.
1. Moodle installieren
1.1 Einleitung
Moodle ist eine open source Kurs und Lernplattform. Viele Schulen und Universitäten nutzen die Plattform. In Moodle lassen sich Kurse / Nutzer und Inhalte einfach verwalten. Ebenfalls gibt es viele Plugins, durch die Moodle erweitert werden kann.
1.2 Infos zu yml Dateien
Bei yml Dateien ist es sehr wichtig, dass die Zeilen alle richtig eingerückt sind. Die Zeilen MÜSSEN immer mit der Leertaste eingerückt werden. Es dürfen KEINE Tabs enthalten sein. Du kannst den nachfolgenden Code immer online „überprüfen“ lassen. Die meisten Fehler entstehen nämlich durch die falsche Formatierung. Ein Dienst zum Überprüfen ist zum Beispiel: https://codebeautify.org/yaml-validator
1.3 Vorbereitung
Diese Anleitung basiert auf dem aktuellen Debian 10 Betriebssystem. Moodle werden wir unter Docker realisieren. Dies ermöglicht uns später sehr schnelle Updates und eine schnelle Installation.
Um Moodle neben anderen Diensten auf unserem Server betreiben zu können, nutzen wir hier den Reverse Proxy Traefik. Die Anleitung dazu findest du hier: https://www.easyname.at/blog/vps/anwendungen/traefik-reverseproxy-auf-vps-installieren
1.3.1 Verzeichnis erstellen
Wir erstellen uns ein neues Verzeichnis, in welchem wir später alle Daten von Moodle abspeichen. Dazu geben wir folgendes in der Konsole ein:
mkdir -p /opt/containers/moodle/{database,app,daten,moodle-build}
Du kannst hier auch ein anderes Verzeichnis verwenden. Musst dann aber die gesamte Anleitung entsprechend anpassen.
Nun müssen wir noch die Rechte des Ordners anpassen. Dazu gibst du folgendes ein:
cd /opt/containers/moodle
chown 1001 database/
1.3.2 docker-compose.yml erstellen
Nun können wir mit der eigentlichen „Installation“ von Moodle beginnen. Dazu öffnest du folgende Datei:
nano /opt/containers/moodle/docker-compose.yml
Nun kopierst du folgenden Code in die Datei. Dieser Code ist unser Bauplan für unseren Moodle Container.
version: '2'
services:
moodle-db:
image: docker.io/bitnami/mariadb:10.5
container_name: moodle-db
environment:
- MARIADB_USER=moodle
- MARIADB_DATABASE=moodle
- MARIADB_PASSWORD=sicher12!
- MARIADB_CHARACTER_SET=utf8mb4
- MARIADB_COLLATE=utf8mb4_unicode_ci
- MARIADB_ROOT_PASSWORD=sicher12!
volumes:
- ./database:/bitnami/mariadb
networks:
- default
restart: unless-stopped
moodle:
build: ./moodle-build
container_name: moodle
restart: unless-stopped
environment:
- BITNAMI_DEBUG=true
- MOODLE_DATABASE_HOST=moodle-db
- MOODLE_DATABASE_PORT_NUMBER=3306
- MOODLE_DATABASE_USER=moodle
- MOODLE_DATABASE_PASSWORD=sicher12!
- MOODLE_DATABASE_NAME=moodle
- MOODLE_USERNAME=euername
- MOODLE_PASSWORD=euerKennwort
- MOODLE_EMAIL=email@euredomain.de
- MOODLE_SITE_NAME=Moodle-dogado
volumes:
- ./app:/bitnami/moodle
- ./daten:/bitnami/moodledata
networks:
- default
- proxy
depends_on:
- moodle-db
labels:
- "traefik.enable=true"
- "traefik.http.routers.moodle.entrypoints=http"
`- "traefik.http.routers.moodle.rule=Host(moodle.euredomain.de`)" # Hier eure URL eingeben #
- "traefik.http.middlewares.moodle-https-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.moodle.middlewares=moodle-https-redirect"
- "traefik.http.routers.moodle-secure.entrypoints=https"
- "traefik.http.routers.moodle-secure.rule=Host(moodle.euredomain.de`)" # Hier eure URL eingeben #
- "traefik.http.routers.moodle-secure.tls=true"
- "traefik.http.routers.moodle-secure.tls.certresolver=http"
- "traefik.http.routers.moodle-secure.service=moodle"
- "traefik.http.services.moodle.loadbalancer.server.port=8080"
- "traefik.docker.network=proxy"
- "traefik.http.routers.moodle-secure.middlewares=secHeaders@file"
networks:
proxy:
external: true
Nun müssen wir noch einiges anpassen.
1.3.3 Hostname anpassen
Nun musst du noch den Hostnamen anpassen, über welchen später Moodle erreichbar sein soll.
Diese beiden Zeilen musst du anpassen.
- "traefik.http.routers.moodle-app.rule=Host(moodle.euredomain.de `)"
- "traefik.http.routers.moodle-app-secure.rule=Host(moodle.euredomain.de`)"
In meinem Fall also:
- "traefik.http.routers.moodle-app.rule=Host(moodle.testbereich.net`)"
- "traefik.http.routers.moodle-app-secure.rule=Host(moodle.testbereich.net`)"
Wenn du Moodle direkt auf deiner „Hauptdomain“ betreiben willst, dann änderst du es folgendermaßen ab:
"traefik.http.routers.moodle-app.rule=Host(www.euredomain.de,euredomain.de)"
"traefik.http.routers.moodle-app-secure.rule=Host(www.euredomain.de,euredomain.de)"
1.3.4 Datenbank Passwort anpassen
Nachdem du den Hostnamen angepasst hast, musst du noch das Datenbank Passwort anpassen. Vergib ein langes, sicheres Kennwort. Das Kennwort in den beiden Zeilen „MARIADB_PASSWORD“ und „MOODLE_DATABASE_PASSWORD“ muss identisch sein!
Folgende Zeilen musst du ändern:
- MARIADB_PASSWORD=sicher12!
- MARIADB_ROOT_PASSWORD=sicher12!
- MOODLE_DATABASE_PASSWORD=sicher12!
Ich ändere also meine Kennwörter ab. Dies könnte beispielsweise so sein:
- MARIADB_PASSWORD=Fhas23!da4
- MOODLE_DATABASE_PASSWORD= Fhas23!da4
- MARIADB_ROOT_PASSWORD=ZZA3123!
1.3.5 Moodle Admin anpassen
Nun passen wir noch die Einstellungen unseres Moodle Administrators an. Wichtig: Der Nutzername darf NUR aus KLEINBUCHSTABEN bestehen.
Dazu passt du folgende Zeilen an:
- MOODLE_USERNAME=euername
- MOODLE_PASSWORD=euerKennwort
- MOODLE_EMAIL=email@euredomain.de
- MOODLE_SITE_NAME=Moodle-dogado
1.3.6 Moodle für weitere Sprachen vorbereiten
Damit Moodle später weitere Sprachen beherrscht, müssen wir den Container etwas anpassen. Dazu gibst du folgendes ein:
nano /opt/containers/moodle/moodle-build/Dockerfile
Dort gibst du folgendes ein:
FROM docker.io/bitnami/moodle:3
RUN echo "de_DE.UTF-8 UTF-8" >> /etc/locale.gen && locale-gen
RUN echo "fr_FR.UTF-8 UTF-8" >> /etc/locale.gen && locale-gen
RUN echo "it_IT.UTF-8 UTF-8" >> /etc/locale.gen && locale-gen
RUN echo "es_ES.UTF-8 UTF-8" >> /etc/locale.gen && locale-gen
Hier werden also später im Container die benötigten Sprachpakete für Deutsch, Französisch, Italienisch sowie Spanisch installiert. Dies kannst du beliebig noch erweitern.
Nun sind wir fertig mit der Vorbereitung.
2. Moodle starten
Gib nun folgendes ein, um deinen Moodle Container zu starten:
docker compose -f /opt/containers/moodle/docker-compose.yml up
Beim ersten Start des Containers wird Moodle initialisiert. Dies bedeutet, dass die Datenbank eingerichtet, deine Einstellungen übernommen werden und vieles mehr. Daher dauert es einige Minuten, bis der Container dann über die Webseite erreichbar ist. Bei mir hat es ca. 3 Minuten gedauert.
Am Ende solltest du folgendes sehen:
Jetzt kannst du mit „STRG+C“ den Container beenden und anschließend mit folgendem Befehl wieder starten, aber dieses Mal im Hintergrund.
docker compose -f /opt/containers/moodle/docker-compose.yml up -d
Gehe nun mit deinem Webbrowser auf deine Webseite (z.B. moodle.deinedomain.de). Dies sollte so aussehen.
Hier kannst du dich nun über „Log in“ einloggen. Gib hier die Daten ein, welche du im Schritt 1.3.6 vergeben hast.
Jetzt solltest du folgendes sehen.
Hier kannst du noch eine Beschreibung, Name sowie weitere Sachen anpassen.
2.1 Sprachpaket Deutsch installieren
Dazu klickst du auf „Site administration“.
Hier scrollst du weit nach unten, bis du „Language“ siehst und wählst dann „Language packs“ aus.
Suche hier nun nach „German“ und installier dann das Sprachpaket.
2.2 Deutsch als Standardsprache festlegen
Dazu gehst du auf „Language settings“.
Hier kannst du nun alle installierten Sprachen auswählen.
2.3 Sprache des Benutzers ändern
Dazu klickst du oben rechts auf dein Profil und wählst „Preferences“ aus.
Anschließend klickst du auf „Preferred language“.
Nun kannst du deine Sprache wählen.
Jetzt hast du das komplette Interface in deiner gewünschten Sprache
easyname ist ein erfolgreicher und bekannter österreichischer Anbieter von Cloud-Services, Domains sowie Webhosting bis hin zur Server-Infrastruktur und gehört seit 2020 zur dogado group.
Das Unternehmen ist seit 2006 in Österreich erfolgreich am Markt und inzwischen auch in vielen anderen Ländern weltweit tätig. Sowohl das Team als auch die gehosteten Daten befinden sich in Österreich.
easyname liegt die Datensicherheit besonders am Herzen und stellt daher zu jedem Hosting-Paket auch kostenlose SSL-Zertifikate zur Verfügung. Mit intuitiven Tools zur Erstellung von Websites und Webshops und mit Easy Install Apps wie WordPress, Joomla oder PrestaShop können alle easyname-Kunden schnell in die Online-Welt einsteigen.