Moodle Installationsanleitung: Schritt für Schritt zum eigenen Server für Linux Ubuntu 22.04

In diesem Tutorial installieren wir das kostenlose Open-Source Lern- und Kursmanagementsystem Moodle. Die Lernplattform ermöglicht es Dozenten, Lehrern und Ausbildern Fernunterricht und Online-Lernprogramme für Schüler und Studenten über das Internet bereitzustellen.

Auf der Moodle-Plattform können Aufgaben und Tests eingepflegt werden, die sich auch hervorragend für die Weiterbildung von Arbeitnehmern am Arbeitsplatz eignen. Die Software zählt zu den besten und am häufigsten verwendeten Lernplattformen weltweit. Viele der größten Universitäten und Schulen haben einen Moodle-Server im täglichen Einsatz.

Nach der Installation steht uns eine benutzerfreundliche Weboberfläche zur Verfügung, die es angemeldeten Benutzern erlaubt, auf zugewiesene Kurse zuzugreifen und anstehende Arbeiten zu überprüfen. Weiter können Stundenpläne eingesehen werden, Dateien wie Lernbögen, Dokumente oder Informationen geteilt werden und sogar Nachrichten können versendet werden, um die Kommunikation zwischen Tutor und Teilnehmer zu erleichtern.

Nach der Moodle-Installation stehen uns virtuelle Kursräume zur Verfügung, in denen wir verschiedene Arbeitsmaterialien für alle angemeldeten Teilnehmer bereitstellen können. Moodle lässt sich nach eigenen Vorgaben und Wünsche konfigurieren, sodass bei einem Kursbesuch nur eine bestimmte Gruppe/Klasse Zugriff auf den Kursinhalt hat oder der Zugang die Eingabe eines Passwortes erfordert.

Mögliche Einsatzgebiete für Moodle

  • Universitäten: Professoren können eine Wissensdatenbank anlegen und Tests in die Software einpflegen, um den Studenten einen Fernunterricht zu ermöglichen.
  • Schulen: Schüler können Stundenpläne einsehen und virtuelle Klassenräume betreten. Damit wird der Unterricht von Zuhause ermöglicht. Auch Hausaufgaben können auf der Online-Plattform erledigt und kontrolliert werden.
  • Unternehmen: Arbeitgeber können neue Arbeitsmethoden, Belehrungen und Weiterbildungen in Form von Kursen und Dokumenten für die Arbeitnehmer bereitstellen.
  • Vereine: Moodle kann die Kommunikation und Organisation der Mitglieder vereinfachen.
  • Fahrschulen und anderen Einrichtungen: Zur Vorbereitung auf die Prüfung und zur Vertiefung von Rechtsfragen kann mithilfe von Moodle den Fahrschülern eine gute und zuverlässige Lernplattform zur Verfügung gestellt werden.

Hinweis: Solltest du nicht als Root-Benutzer auf deinem Server angemeldet sein, musst du die einzelnen Befehle in dem Terminal mit dem Sudo-Befehl ausführen, sofern du eine Ubuntu-Server-Distribution für die Moodle Installation verwendest. Auf Debian basierten Server können die Befehle ohne Sudo ausgeführt werden.

Inhaltsverzeichnis: Installationsanleitung für die Integration der Kurs- und Lernmanagement-Plattform Moodle auf einem Linux Server

Voraussetzungen und Abhängigkeiten für die Installation von Moodle nach diesem Tutorial

Voraussetzungen für die Installation:

Diese Anleitung für die Installation von Moodle setzt einen Server mit installiertem Linux Ubuntu 22.04 voraus. Es wird ein Root-Zugang benötigt und einen gültigen Domainnamen, der auf die IP-Adresse des Servers verweist.

Abhängigkeiten für die Installation:

Damit das Lern- und Kursmanagementsystem Moodle auf unserem Server mit Linux Ubuntu 22.04 installiert und bereitgestellt werden kann, müssen wir zuerst alle notwendigen Abhängigkeiten auf unseren Server installieren. Das erledigen wir in dieser Anleitung Schritt für Schritt. 

Wir benötigen eine Datenbank, einen Webserver und PHP. In der Praxis sprechen wir dabei von einem LAMP-Stack bzw. LEMP-Stack. Sofern die Webserver Apache oder Nginx für die Ausgabe der Webseite/Webanwendung installiert werden.

Vorbereitung: Bevor wir Moodle installieren, empfiehlt es sich, die Paketquellen zu aktualisieren

Bevor wir die Software Moodle installieren, sollten wir alle Systempakete aktualisieren und auf den neusten Stand bringen. So erhalten wir die jeweils neusten Versionen aus dem Standard-Repository.

Führe die Aktualisierung mit dem folgenden Befehl durch:

apt-get update -y

Sobald die Systempakete erfolgreich aktualisiert worden sind, können wir im nächsten Schritt mit der Installation fortfahren.

Datenbank (MariaDB), Webserver (Nginx) und PHP für Moodle installieren

In diesem Abschnitt installieren wir die Datenbank für unseren Moodle-Server, einen Webserver, sowie notwendige PHP-Module und Bibliotheken. Standesgemäß ist die PHP-Version 8.1 für Linux Ubuntu 22.04 verfügbar, diese PHP-Version wird aktuell jedoch noch nicht von Moodle unterstützt. Deshalb installieren wir in dieser Anleitung die stabile PHP-Version 7.4.

Verwende den folgenden Befehl, um einen Nginx Webserver und eine MariaDB auf dem Server zu installieren:

apt-get install nginx mariadb-server -y

Wurde Nginx und die MariaDB erfolgreich installiert, benötigen wir zunächst noch weitere Abhängigkeiten, die sich mit diesem Befehl installieren lassen:

apt install software-properties-common ca-certificates lsb-release apt-transport-https -y

Füge das offizielle PHP-Repository mit dem folgenden Befehl auf deinem Server hinzu:

add-apt-repository ppa:ondrej/php

Aktualisiere das Repository jetzt mit diesem Befehl:

apt update

Sobald das Repository aktualisiert worden ist, installiere PHP 7.4 und alle erforderlichen PHP-Module mit dem folgenden Befehl:

apt install php7.4 php7.4-fpm php7.4-common php7.4-mysql php7.4-gmp php7.4-curl php7.4-intl php7.4-mbstring php7.4-soap php7.4-xmlrpc php7.4-gd php7.4-xml php7.4-cli php7.4-zip unzip git curl -y

Bevor wir eine Datenbank für Moodle erstellen, müssen wir die PHP-Konfigurationsdatei mit dem Nano-Editor bearbeiten. Öffne die php.ini Datei, suche die angegebenen Zeilen und ändere die Werte wie im Beispiel beschrieben:

nano /etc/php/7.4/fpm/php.ini

Zeilen suchen und Werte ergänzen:

memory_limit = 4096M

max_input_vars = 6000

cgi.fix_pathinfo = 0

upload_max_filesize = 400M

max_execution_time = 360

date.timezone = CET

Speichere die Änderungen ab (STRG +S) und verlasse den Nano-Editor anschließend wieder (STRG + X). Starte den PHP-Dienst jetzt neu, damit alle Änderungen wirksam werden:

systemctl restart php7.4-fpm

Datenbank für Moodle erstellen und konfigurieren (MySQL)

Moodle ist für den Betrieb auf eine Datenbank angewiesen. Dafür haben wir im vorherigen Schritt bereits die MariaDB auf unserem Server installiert. Beginnen wir mit der Erstellung der Datenbank.

Gebe den folgenden Befehl ein, um dich mit der MySQL-Datenbank zu verbinden:

Mysql

Erstelle eine Datenbank und einen Benutzer mit diesem Befehl:

CREATE DATABASE moodledb;

CREATE USER 'moodle'@'localhost' IDENTIFIED BY 'password';

Hinweis: Wähle ein sicheres Passwort und übernehme nicht diesen Standardwert!

Gebe dem soeben erstellten Benutzer alle Berechtigungen für die Datenbank. Das ist wichtig, damit Moodle zukünftig Daten selbstständig anlegen, verändern und löschen kann:

GRANT ALL ON moodledb.* TO 'moodle'@'localhost' WITH GRANT OPTION;

Leere die Privilegien und verlasse den interaktiven MySQL-Modus wieder mit den folgenden Befehlen:

FLUSH PRIVILEGES;

EXIT;

Abschließend folgt noch eine Bearbeitung der MariaDB-Konfigurationsdatei mit dem Nano-Editor. 

Öffne die Datei mit dem folgenden Befehl:

nano /etc/mysql/mariadb.conf.d/50-server.cnf

Suche die angegebenen Zeilen im Bereich [mysqld] und ändere die Werte wie angegeben:

[mysqld]

innodb_file_format = Barracuda

innodb_file_per_table = 1

innodb_large_prefix = ON

Speichere die Änderungen ab (STRG + S) und verlasse den Nano-Editor wieder (STRG + X). Starte die Datenbank jetzt mit dem folgenden Befehl neu:

systemctl restart mariadb

Moodle Installation auf einem Server mit Linux Ubuntu 22.04

In diesem Abschnitt folgt die Installation von Moodle. Alle Vorbereitungen und Voraussetzungen, damit wir die Software Moodle installieren und einrichten können, sind jetzt komplett erfüllt. Wir beziehen die aktuellste und stabilste Version und laden es direkt in das Verzeichnis von dem Webserver herunter. 

Verwende dafür die zwei folgenden Befehle:

cd /var/www/html

git clone -b MOODLE_400_STABLE git://git.moodle.org/moodle.git moodle

Jetzt müssen die Berechtigungen für Moodle festgelegt werden, damit unser Webserver die Webseite ausgeben darf und Anfragen von Clients auf die Plattform ermöglicht werden:

mkdir -p /var/www/html/moodledata

chown -R www-data:www-data /var/www/html/moodle

chmod -R 755 /var/www/html/*

chown www-data:www-data / var/www/html/moodledata

Im nächsten Schritt konfigurieren wir den Nginx Webserver für unsere Moodle Installation. Führe mit der Anleitung im nächsten Abschnitt fort.

Nginx Konfigurationen für die Moodle Kurs- und Lernplattform vornehmen

Erstelle mit dem folgenden Befehl eine Virtualhost-Datei für unseren Moodle Server:

nano /etc/nginx/conf.d/moodle.conf

Kopiere den folgenden Inhalt und füge diesen in die moodle.conf Datei ein:

server {
listen 80;
root /var/www/html/moodle;
index index.php index.html index.htm;
server_name moodle.example.com;

client_max_body_size 100M;
autoindex off;
location / {
try_files $uri $uri/ =404;
}

location /dataroot/ {
internal;
alias /var/www/html/moodledata/;
}

location ~ [^/].php(/|$) {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

Hinweis: Trage bei server_name die Domain ein, die du für deine Moodle-Plattform verwenden möchtest. Das kann natürlich auch eine Subdomain sein. Bedenke jedoch, dass der DNS-Server auf die IP-Adresse für die Auflösung mit der Domain verweisen muss.

Speichere die Änderungen ab (STRG + S) und verlasse den Nano-Editor anschließend wieder (STRG + X). Überprüfe die Datei auf Syntaxfehler mit dem folgenden Befehl:

nginx -t

Sollte im Terminal nicht die Meldung „Syntax is ok“ ausgegeben werden, überprüfe die Datei auf mögliche Fehler. Starte den Nginx-Dienst jetzt einmal neu, damit alle Änderungen wirksam werden:

systemctl restart nginx

Der Status vom Nginx-Service lässt sich wie folgt überprüfen:

systemctl status nginx

Die Installation über das Webinterface von Moodle: Basis-Konfigurationen und Admin-Benutzerkonto anlegen

Die Installation von Moodle auf einem Linux-Server ist an diesem Punkt abgeschlossen. Über die IP-Adresse des Servers oder über die Domain kann das Webinterface über einen beliebigen Browser aufgerufen werden.

Anschließend folgt ein Installationsassistent, der über die Weboberfläche bedient wird. Greife nun mit einem Browser deiner Wahl auf die Weboberfläche zu.

Beispiele für den Zugriff auf die Moodle-Weboberfläche über den Browser:

Über die IP-Adresse:

192.168.178.40:80

Über den Domainnamen:

moodle.example.com

Screenshots der Moodle-Installation mit kurzen Erklärungen für die Ersteinrichtung

Moodle installieren auf Linux Ubuntu 22.04 Server

Wähle zuerst die gewünschte Sprache aus und klicke auf die Schaltfläche „Weiter“.

Installation von Moodle auf einem Linux Server

Bestätige die Web-Adresse, das Moodle-Verzeichnis und den Dateiverzeichnispfad (Siehe Beispiel):

Web address: http://moodle.example.com

Moodle directory: /var/www/html/moodle

Data directory: /var/www/html/moodledata

Klicke anschließend auf die Schaltfläche „Weiter“.

Im Abschnitt Choose database driver wähle den Reiter „Type“ aus und selektiere die Datenbank „MariaDB (native/mariadb)“. Klicke auf die Schaltfläche „Weiter“.

Im Installationsprozess Database-Settings muss der Datenbankhost und die Zugangsdaten, bestehend aus Benutzernamen und Passwort eingepflegt werden. Trage den im vorherigen Schritt erstellten Datenbank-Benutzer ein und klicke auf die Schaltfläche „Weiter“.

Datenbank Einstellungen hinzufügen

Bestätige die Bedingungen und begebe dich zum nächsten Abschnitt. Es folgt eine Überprüfung der erforderlichen PHP-Erweiterungen. Die haben wir in der Regel alle bereits erfolgreich installiert. 

Führe die Installation weiter fort.

Moodle mit Nginx und SSL-Zertifikat installieren

Im Installationsprozess „General“ wird ein Admin-Benutzerkonto erstellt. Trage einen Benutzernamen, ein Passwort und eine gültige E-Mail-Adresse in die dafür vorgesehenen Bereiche ein. Selektiere die Zeitzone „CET“ und klicke auf die Schaltfläche „Update profile“.

Installationsprozess - Benutzerkonto erstellen für den Admin

Gebe einen Full site name, einen Shortname und eine Beschreibung der Moodle-Startseite ein und bestätige die Eingaben, um die Einstellungen zu übernehmen. Moodle ist jetzt installiert und einsatzbereit. Benutzer können angelegt werden und beliebig viele Kurse und Bereiche erstellt werden.

Startseite für Moodle installieren und Name der Page eingeben

Installation eines kostenlosen Let’s Enctrypt Zertifikats (SSL): Die Verbindung zwischen Clients und dem Moodle-Server über HTTPS verschlüsseln

Es wird empfohlen, den Datenverkehr zwischen Clients und dem Moodle-Server nach der Installation mit einem SSL-Zertifikat zu verschlüsseln. Diese Einstellungen sind sicherheitsrelevant und wichtig, wenn ein Webserver von außen über das Internet erreichbar sein soll.

Installiere Certbot über das Terminal auf deinem Linux-Server mit dem folgenden Befehl:

apt-get install python3-certbot-nginx -y

Sobald Certbot erfolgreich installiert wurde, können wir ein kostenloses SSL-Zertifikat für den Nginx-Webserver mit dem folgenden Befehl herunterladen und installieren:

certbot --nginx -d moodle.example.com

Hinweis: Die Domain muss natürlich der deines Moodle-Servers angepasst werden.

Moodle wurde erfolgreich installiert: herzlichen Glückwunsch!

Jetzt folgt eine Aufforderung, eine gültige E-Mail-Adresse anzugeben. Trage deine Mail-Adresse ein und akzeptiere die Nutzungsbedingungen. Bei der Frage, ob der HTTP-Datenverkehr auf HTTPS umgeleitet werden soll, ist die Eingabe (2) Umleitung auszuwählen.

Damit Moodle von außen über das Internet erreichbar ist, müssen die Webports 80 und 443 im Router freigegeben werden. Verwendest du mehrere Webserver, sodass die Ports bereits für einen anderen Server freigegeben worden sind, musst du einen Reverse-Proxy-Server implementieren. Wie das funktioniert, erfährst du hier: Nginx Proxy Manager installieren.

1 Kommentar on “Moodle Installationsanleitung: Schritt für Schritt zum eigenen Server für Linux Ubuntu 22.04

  1. Damit php-fpm nach einem reboot zugriff auf die unix socket hat musste ich noch folgendes anpassen:

    nano /lib/systemd/system/php7.4-fpm.service

    [Unit]
    Description=The PHP 7.4 FastCGI Process Manager
    Documentation=man:php-fpm7.4(8)
    After=network.target

    [Service]
    Type=notify
    RuntimeDirectory=php
    RuntimeDirectoryMode=755
    RuntimeDirectoryPreserve=yes
    PIDFile=/run/php/php7.4-fpm.pid
    ExecStart=/usr/sbin/php-fpm7.4 –nodaemonize –fpm-config /etc/php/7.4/fpm/php-fpm.conf
    ExecStartPost=-/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/7.4/fpm/pool.d/www.c>
    ExecStopPost=-/usr/lib/php/php-fpm-socket-helper remove /run/php/php-fpm.sock /etc/php/7.4/fpm/pool.d/www.con>
    ExecReload=/bin/kill -USR2 $MAINPID

    [Install]
    WantedBy=multi-user.targetnano /etc/php/7.4/fpm/php.ini

    in php.ini sollte

    post_max_size = angepasst werden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert