Wie installiere ich Moodle LMS auf einem Debian 12 Server?
Moodle ist eine offene Lösung für das Learning Management System (LMS). Es ist eine Plattform für Bildungszwecke, von der Erstellung von Online-Kursen über die Verwaltung von Online-Schulen bis hin zur Verwaltung von Inhalten und dem Angebot von gemeinschaftlichem Lernen. Moodle ist hauptsächlich in PHP mit MySQL/MariaDB als Datenbank geschrieben und kann auf allen Betriebssystemen betrieben werden. Du hast die Wahl zwischen Apache oder Nginx für deine Moodle-Installation.
In dieser Anleitung erfährst du, wie du das Moodle Learning Management System auf einem Debian 12 Server installierst. Du betreibst Moodle mit dem LAMP-Stack (Linux, Apache, MariaDB und PHP), sicherst deinen Debian-Server mit UFW (Uncomplicated Firewall) und sicherst Moodle mit HTTP über Certbot und Letsencrypt.
Voraussetzungen
Vergewissere dich, dass du die folgenden Voraussetzungen hast, bevor du beginnst:
- Einen Debian 12-Server
- Einen Nicht-Root-Benutzer mit Administrator-Rechten
- Einen Domainnamen, der auf die IP-Adresse des Servers zeigt
Installieren der Abhängigkeiten
Das Moodle LMS ist in PHP und MySQL geschrieben, also musst du diese Pakete auf deinem System installieren. In diesem Beispiel wirst du Moodle mit dem LAMP-Stack (Linux, Apache, MariaDB und PHP) betreiben. Du installierst also zunächst LAMP auf deinem Debian-Server.
Bevor du ein Paket installierst, führe den folgenden Befehl aus, um deinen Debian-Paketindex zu aktualisieren.
sudo apt update
Installiere nun die LAMP-Stack-Abhängigkeiten (Linux, Apache, MariaDB und PHP) mit dem folgenden Befehl. Gib „Y“ ein, um mit der Installation fortzufahren.
sudo apt install apache2 mariadb-server php-cli php-intl php-xmlrpc php-soap php-mysql php-zip php-gd php-tidy php-mbstring php-curl php-xml php-pear php-bcmath libapache2-mod-php
Nachdem die Installation abgeschlossen ist, überprüfe den Dienst „apache2“, um sicherzustellen, dass der Dienst läuft.
sudo systemctl is-enabled apache2 sudo systemctl status apache2
Du kannst unten sehen, dass der Apache Webserver läuft und aktiviert ist.
Überprüfe nun den Dienst „mariadb“, indem du den folgenden Befehl ausführst.
sudo systemctl is-enabled mariadb sudo systemctl status mariadb
In der unten stehenden Ausgabe siehst du, dass der MariaDB-Server läuft.
Überprüfe abschließend die PHP-Version und liste die aktivierten Module mit dem folgenden Befehl auf.
php -v php -m
Du wirst sehen, dass PHP 8.2 installiert ist und einige Standardmodule wie „curl“, „exif“ und „date“ aktiviert sind.
Installation von UFW (Uncomplicated Firewall)
Nachdem du den LAMP Stack installiert hast, installieren wir die UFW (Uncomplicated Firewall), um den Server zu sichern. Dann öffnest du die Ports für die Protokolle SSH, HTTP und HTTPS. Zum Schluss musst du die UFW starten und aktivieren.
Um UFW zu installieren, führe den unten stehenden Befehl „apt“ aus.
sudo apt install ufw
Sobald UFW installiert ist, führst du den Befehl „ufw“ aus, um die Ports für OpenSSH, HTTP (80) und HTTPS (443) zu öffnen. Du wirst eine Ausgabe wie „Regeln aktualisiert“ sehen.
sudo ufw allow OpenSSH sudo ufw allow 80/tcp sudo ufw allow 443/tcp
Führe nun den folgenden Befehl aus, um UFW auf deinem Debian-Rechner zu starten und zu aktivieren. Wenn du dazu aufgefordert wirst, gib „y“ ein, um zu bestätigen und fortzufahren. Du erhältst die Ausgabe „Firewall ist aktiv und wird beim Systemstart aktiviert“.
sudo ufw enable
Überprüfe abschließend den UFW-Status mit dem folgenden Befehl. Du siehst, dass UFW mit OpenSSH „aktiv“ ist und die Ports „80“ und „443“„zugelassen“ sind.
sudo ufw status
MariaDB Server konfigurieren
Bevor du Moodle installierst, musst du die Standard-Speicher-Engine auf „innodb“ ändern und „Barracuda“ als Standardformat einrichten. Danach musst du den MariaDB-Server sichern und das „root“-Passwort mit dem Dienstprogramm „mariadb-secure-installation“ einrichten.
Öffne die Standard-MariaDB-Serverkonfiguration „/etc/mysql/mariadb.conf.d/50-server.cnf“ mit dem Editor „nano“.
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
Füge die folgende Konfiguration ein, um das „Barracuda“-Format zu aktivieren und die Standard-Speicher-Engine auf „InnoDB“ einzustellen.
innodb_file_format = Barracuda default_storage_engine = innodb innodb_large_prefix = 1 innodb_file_per_table = 1
Speichere die Datei und beende den Editor.
Führe nun den Befehl „systemctl“ aus, um den MariaDB-Server neu zu starten und deine Änderungen zu übernehmen.
sudo systemctl restart mariadb
Danach führst du den Befehl „mariadb-secure-installation“ aus, um deine MariaDB Serverinstallation zu sichern.
sudo mariadb-secure-installation
Daraufhin wirst du nach der Konfiguration des MariaDB-Servers gefragt:
- Drücke ENTER, wenn du nach dem Root-Passwort gefragt wirst (du wirst es später konfigurieren)
- Gib „n“ ein, wenn du zur „unix_socket“-Authentifizierung wechseln willst
- Gib „Y“ ein, um das MariaDB Root-Passwort einzurichten, gib dann dein neues Passwort ein und wiederhole es
- Gib „Y“ ein, um den anonymen Benutzer von MariaDB zu entfernen
- Gib erneut „Y“ ein, um die Fernanmeldung für den Root-Benutzer zu deaktivieren
- Gib „Y“ ein, um die Standarddatenbank „test“ und ihre Berechtigungen zu entfernen
- Gib „Y“ ein, um die Tabellenberechtigungen neu zu laden und deine Änderungen zu übernehmen
Wenn du fertig bist, fahre mit dem nächsten Schritt fort, um eine neue Datenbank und einen neuen Benutzer zu erstellen.
Erstellen einer Datenbank und eines Benutzers für Moodle
Nachdem wir den MariaDB-Server konfiguriert haben, legen wir nun eine neue Datenbank und einen neuen Benutzer an, die von Moodle verwendet werden sollen. Du verwendest den „mariadb“-Client, um dich bei MariaDB anzumelden und eine neue Datenbank und einen neuen Benutzer anzulegen.
Melde dich mit dem unten stehenden Befehl „mariadb“ am MariaDB-Server an. Gib dein MariaDB Root-Passwort ein, wenn du dazu aufgefordert wirst.
sudo mariadb -u root -p
Führe die folgenden Abfragen aus, um eine neue Datenbank und den Benutzer „moodle“ mit dem Passwort „MoodlePassw0rd“ zu erstellen. Achte darauf, dass du die folgenden Datenbank-Anmeldedaten mit deinen Daten abänderst.
CREATE DATABASE moodle DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; GRANT ALL ON moodle.* TO 'moodle'@'localhost' IDENTIFIED BY "MoodlePassw0rd"; FLUSH PRIVILEGES;
Führe nun die folgende Abfrage aus, um den Benutzer „moodle“ zu überprüfen. Vergewissere dich, dass der Benutzer „moodle“ auf die Datenbank „moodle“ zugreifen kann.
SHOW GRANTS FOR moodle@localhost;
Zum Schluss gibst du „QUIT“ ein, um den MariaDB-Server zu verlassen.
PHP konfigurieren
Nachdem du den MariaDB-Server konfiguriert und einen neuen Datenbankbenutzer angelegt hast, müssen wir nun die Datei „php.ini“ konfigurieren und einige Standardkonfigurationen ändern, die Moodle benötigt.
Öffne die Datei „php.ini“ mit dem Editor „nano“.
sudo nano /etc/php/8.2/apache2/php.ini
Ändere die Standard-PHP-Konfiguration wie folgt. Du kannst das „memory_limit“ entsprechend ändern, je nach Speicherplatz auf deinem Server.
memory_limit = 256M upload_max_filesize = 60M max_execution_time = 300 date.timezone = Europe/Amsterdam max_input_vars = 5000
Wenn du fertig bist, speichere die Datei und beende den Editor.
Zum Schluss führst du den Befehl „systemctl“ aus, um den Webserver „apache2“ neu zu starten und deine neue PHP-Konfiguration anzuwenden.
sudo systemctl restart apache2
Herunterladen des Moodle-Quellcodes
Nachdem du PHP konfiguriert hast, kannst du den Moodle-Quellcode herunterladen und dann das Installationsverzeichnis und das Datenverzeichnis für Moodle einrichten. In diesem Beispiel legst du das Moodle-Installationsverzeichnis unter „/var/www/moodle“ und das „Daten“-Verzeichnis unter „/var/www/moodledata“ an.
Gehe in das Verzeichnis „/var/www“ und lade den Moodle-Quellcode mit dem unten stehenden Befehl „wget“ herunter.
cd /var/www sudo wget https://download.moodle.org/download.php/direct/stable405/moodle-latest-405.tgz
Nach dem Download entpackst du den Moodle-Quellcode mit dem Befehl „tar“ und benennst das entpackte Verzeichnis in „moodle“ um. Damit befindet sich deine Moodle-Installation im Verzeichnis „/var/www/moodle“.
tar -xf moodle-latest-405.tgz
Als Nächstes erstellst du ein neues Verzeichnis „/var/www/moodledata“, das als Datenverzeichnis für deine Moodle-Installation verwendet wird.
mkdir -p /var/www/moodledata
Zuletzt führst du den folgenden Befehl aus, um die Eigentümerschaft der Verzeichnisse „/var/www/moodle“ und „/var/www/moodledata“ auf den Benutzer „www-data“ zu ändern. Stelle dann sicher, dass der Benutzer „www-data“ Dateien in diesen Verzeichnissen lesen, schreiben und ausführen kann.
sudo chown -R www-data:www-data /var/www/moodle /var/www/moodledata sudo chmod u+rwx /var/www/moodle /var/www/moodledata
Apache Virtual Host einrichten
Nachdem du Moodle heruntergeladen hast, musst du im nächsten Schritt eine neue Apache Virtual Host Datei für Moodle erstellen. Stelle also sicher, dass du einen Domainnamen hast, der auf die IP-Adresse des Servers verweist.
Erstelle eine neue virtuelle Host-Konfiguration „/etc/apache2/sites-available/moodle.conf“ mit dem Editor „nano“.
sudo nano /etc/apache2/sites-available/moodle.conf
Füge die folgende Konfiguration ein, um eine virtuelle Hostdatei für Moodle einzurichten. Achte darauf, dass du den Parameter „ServerName“ durch deinen Domainnamen ersetzt.
<VirtualHost *:80> DocumentRoot /var/www/moodle/ ServerName moodle.howtoforge.local ServerAdmin admin@example.com <Directory /var/www/moodle/> Options +FollowSymlinks AllowOverride All Require all granted </Directory> ErrorLog /var/log/apache2/moodle_error.log CustomLog /var/log/apache2/moodle_access.log combined </VirtualHost>
Speichere die Datei und beende den Editor, wenn du fertig bist.
Führe nun den Befehl „a2enmod“ aus, um das Modul „rewrite“ zu aktivieren, und führe dann den Befehl „a2ensite“ aus, um den virtuellen Host „moodle.conf“ zu aktivieren.
sudo a2enmod rewrite sudo a2ensite moodle.conf
Als Nächstes führst du den Befehl „apachectl“ aus, um deine Apache-Konfiguration zu überprüfen. Wenn du den Apache richtig konfiguriert hast, bekommst du eine Ausgabe wie „Syntax ist OK“.
sudo apachectl configtest
Zum Schluss führst du den Befehl „systemctl“ aus, um den Apache-Webserver neu zu starten und deine Änderungen zu übernehmen.
sudo systemctl restart apache2
Moodle mit HTTPS absichern
Jetzt ist deine Moodle-Installation fertig. Bevor du fortfährst, musst du Moodle mit HTTPS über Certbot und Letsencrypt absichern. Tu dies, wenn du Moodle auf einem öffentlichen Server installierst. Wenn du Moodle auf einem lokalen Server entwickelst, kannst du HTTPS überspringen oder durch selbstsignierte Zertifikate implementieren.
Installiere das „certbot“ und „python3-certbot-apache“ Plugin mit dem folgenden „apt“ Befehl. Gib „Y“ ein, um die Installation zu bestätigen.
sudo apt install certbot python3-certbot-apache
Nachdem die Installation abgeschlossen ist, führe den folgenden „certbot“-Befehl aus, um SSL-Zertifikate für Moodle zu erzeugen. Achte darauf, dass du den folgenden Domainnamen und die E-Mail-Adresse durch deine Domain ersetzt.
sudo certbot --apache --agree-tos --no-eff-email -m admin@howtoforge.local -d moodle.howtoforge.local
Wenn du fertig bist, sind deine SSL-Zertifikate im Verzeichnis „/etc/letsencrypt/live/domain.com“ verfügbar und deine Moodle-Installation läuft unter HTTPS.
Moodle-Installation
Öffne deinen Webbrowser und rufe den Domainnamen deiner Moodle-Installation auf, z. B. https://moodle.howtoforge.local/. Daraufhin wird der Moodle-Installationsassistent angezeigt.
Wähle deine Standardsprache für Moodle und klicke auf„Weiter„.
Gib deinen Domainnamen und das Moodle-Datenverzeichnis unter„/var/www/moodledata“ ein.
Wähle„MariaDB“ als Standarddatenbank für Moodle.
Gib deine MariaDB-Datenbankdetails wie dbname, dbuser und Passwort ein.
Klicke auf dem Copyright-Hinweis auf„Weiter„.
Vergewissere dich im Abschnitt „Serverprüfungen“, dass dein Debian-Server die Moodle-Anforderungen erfüllt. Der Status eines jeden Punktes sollte„OK“ sein.
Jetzt siehst du die Moodle-Installation wie folgt:
Sobald die Installation abgeschlossen ist, gibst du deine Admin-Daten ein (Benutzername, E-Mail und Passwort).
Nun gibst du die Informationen zu deiner Moodle-Site ein.
Zum Schluss siehst du das folgende Moodle-Admin-Dashboard.
Fazit
Herzlichen Glückwunsch! Du hast die Installation des Moodle Learning Management Systems (LMS) auf dem Debian 12 Server abgeschlossen. Moodle läuft mit dem LAMP-Stack (Linux, Apache, MariaDB und PHP) und ist mit UFW (Uncomplicated Firewall) und HTTPS über Certbot und Letsencrypt gesichert. Von hier aus kannst du ein neues Thema für Moodle anwenden, neue Addons installieren, um die Funktionalität zu erweitern, oder du kannst das Moodle-Benutzerhandbuch zur Verwaltung deiner Moodle-Installation lernen.