Wie installiere ich Moodle LMS auf einem Ubuntu 24.04 Server

Moodle ist eine beliebte Open-Source-Plattform, die von Bildungseinrichtungen auf der ganzen Welt genutzt wird, um Online-Kurse zu erstellen, Inhalte zu verwalten und gemeinsames Lernen zu ermöglichen. Moodle wird häufig unter Ubuntu eingesetzt, weil Ubuntu so stabil und sicher ist und eine Vielzahl von Softwarepaketen unterstützt. Dazu müssen die notwendigen Komponenten wie Apache oder Nginx als Webserver, MySQL oder PostgreSQL als Datenbank und PHP als Skriptsprache installiert werden, die alle von Ubuntu gut unterstützt werden. Auf diese Weise können Institutionen eine robuste, skalierbare und anpassbare Online-Lernumgebung erstellen, die auf die spezifischen Bildungsbedürfnisse zugeschnitten werden kann.

In diesem Lernprogramm zeigen wir dir, wie du Moodle auf einem Ubuntu 24.04 Server installierst. Du installierst Moodle mit dem LAMP-Stack und sicherst Moodle anschließend mit UFW und HTTPS über Certbot und Letsencrypt.

Voraussetzungen

Bevor du beginnst, solltest du sicherstellen, dass du Folgendes hast:

  • Einen Ubuntu 24.04 Server.
  • Einen Nicht-Root-Benutzer mit Administrator-Rechten.
  • Einen Domainnamen, der auf eine Server-IP-Adresse zeigt.
  • Eine UFW-Firewall ist eingerichtet und läuft.

Installieren der Abhängigkeiten

Moodle ist eine Open-Source-Lernplattform, die in PHP geschrieben ist. Um Moodle zu installieren, brauchst du Apache/Nginx, MySQL/MariaDB/PostgreSQL und PHP. In diesem Abschnitt installierst du den LAMP-Stack (Linux, Apache, MariaDB und PHP) auf Ubuntu und richtest Moodle darauf aufbauend ein.

Um zu beginnen, führe den folgenden Befehl aus und aktualisiere deinen Ubuntu-Paketindex.

sudo apt update

Repo aktualisieren

Führe nun den folgenden Befehl aus, um die LAMP Stack (Apache, MariaDB und PHP)-Abhängigkeiten zu installieren. Gib „Y“ ein, um die Installation zu bestätigen.

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

Lampenstapel installieren

Nachdem die Installation abgeschlossen ist, überprüfe den Status des Apache-Dienstes mit dem unten stehenden Befehl.

sudo systemctl is-enabled apache2
sudo systemctl status apache2

Im Folgenden siehst du, dass der Apache-Webserver läuft.

apache2 prüfen

Überprüfe den MariaDB-Datenbankserver mit dem folgenden Befehl. Du wirst sehen, dass der MariaDB-Server läuft.

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

mariadb prüfen

Überprüfe schließlich die PHP-Version und die aktivierten Erweiterungen mit dem folgenden Befehl:

php -v
php -m

Du wirst sehen, dass PHP 8.3 auf deinem Ubuntu-Server installiert ist.

php prüfen

MariaDB-Server konfigurieren

Nachdem die Abhängigkeiten installiert sind, musst du die standardmäßige MariaDB-Speicher-Engine in„InnoDB“ ändern, die von Moodle benötigt wird. Das kannst du tun, indem du die MariaDB-Serverkonfiguration bearbeitest. Außerdem musst du die Installation des MariaDB-Servers mit dem Tool„mariadb_secure_installation“ absichern.

Öffne die MariaDB-Serverkonfigurationsdatei„/etc/mysql/mariadb.conf.d/50-server.cnf“ mit dem Editor „nano“.

sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf

Füge die folgende Konfiguration unter dem Abschnitt ‚[mysqld]‚ hinzu. Dadurch wird die Standard-Speicher-Engine in„innodb“ geändert.

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

Zum Schluss führst du den Befehl„mariadb_secure_installation“ aus, um den MariaDB-Root-Benutzer einzurichten und deine Installation zu sichern.

sudo mariadb_secure_installation

Während des Prozesses wirst du mit folgenden Fragen konfrontiert:

  • Bei der Standard-MariaDB-Server-Installation ohne Root-Passwort drückst du ENTER, wenn du nach dem Passwort gefragt wirst.
  • Die lokale Authentifizierung für MariaDB Root-Benutzer ist standardmäßig gesichert. Gib „n“ ein, wenn du die Authentifizierungsmethode auf „unix_socket“ ändern möchtest.
  • Gib „Y“ ein, um ein neues MariaDB Root-Passwort zu erstellen. Gib dann das sichere Passwort für deinen MariaDB-Root-Benutzer ein und wiederhole den Vorgang.
  • Wenn du gefragt wirst, ob du die Fernauthentifizierung für den MariaDB-Root-Benutzer deaktivieren möchtest, gibst du „Y“ ein, um zuzustimmen.
  • Die Standardinstallation des MariaDB-Servers enthält die Datenbank „test“ und erlaubt einem anonymen Benutzer den Zugriff auf diese Datenbank. Gib für beide Einstellungen „Y“ ein, um die Standarddatenbank „test“ zu entfernen und das anonyme Recht zu löschen.
  • Gib abschließend „Y“ ein, um das Neuladen der Tabellenrechte zu bestätigen.

Datenbank und Benutzer anlegen

Nachdem du nun den MariaDB-Server konfiguriert hast, kannst du über den „mariadb“-Client eine neue Datenbank und einen neuen Benutzer anlegen.

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 nun die folgenden Abfragen aus, um eine neue Datenbank„moodle“ und einen Benutzer„moodle“ anzulegen, und stelle sicher, dass du das Passwort mit deinen Daten änderst.

CREATE DATABASE moodle DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL ON moodle.* TO 'moodle'@'localhost' IDENTIFIED BY "MoodlePassw0rd";
FLUSH PRIVILEGES;
QUIT

Datenbank erstellen

PHP konfigurieren

In diesem Abschnitt bearbeitest du die PHP-Konfiguration „php.ini“ und änderst einige Standardwerte, die von Moodle benötigt werden.

Öffne die PHP-Konfiguration „/etc/php/8.3/apache2/php.ini“ mit dem Editor„nano„.

sudo nano /etc/php/8.3/apache2/php.ini

Ändere die Standardkonfiguration wie folgt. Achte darauf, dass du die Optionen„memory_limit“ und„date_timezone“ an deine Angaben anpasst.

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 sie.

Führe abschließend den folgenden Befehl aus, um den Apache-Webserver neu zu starten und deine Änderungen in PHP zu übernehmen.

sudo systemctl restart apache2

Herunterladen des Moodle-Quellcodes

Jetzt hast du den LAMP-Stack installiert und konfiguriert. Laden wir nun den Moodle-Quellcode herunter und konfigurieren das Moodle-Installationsverzeichnis.

Gehe in das Verzeichnis„/var/www“ und lade den Moodle-Quellcode mit dem Befehl„wget“ herunter. Achte darauf, dass du die Moodle-Download-Seite besuchst, um den Link für die neueste Version zu bekommen. In diesem Fall lädst du die neueste stabile Moodle-Version 40.4 herunter.

cd /var/www
wget https://download.moodle.org/download.php/direct/stable404/moodle-latest-404.tgz

Nachdem du Moodle heruntergeladen hast, entpackst du es mit dem Befehl„tar“ (siehe unten). Der Moodle-Quellcode wird im Verzeichnis„/var/www/moodle“ verfügbar sein.

tar xvf moodle-latest-404.tgz

Führe abschließend den folgenden Befehl aus, um ein neues Datenverzeichnis „/var/www/moodledata“ zu erstellen, ändere den Eigentümer des Moodle-Verzeichnisses auf den Benutzer„www-data“ und stelle sicher, dass sowohl Moodle als auch das Datenverzeichnis für den Benutzer„www-data“ beschreibbar sind.

sudo mkdir -p /var/www/moodledata
sudo chown -R www-data:www-data /var/www/moodle /var/www/moodledata
sudo chmod u+rwx /var/www/moodle /var/www/moodledata

Einrichten des virtuellen Apache-Hosts

Wenn du Moodle heruntergeladen hast, musst du eine neue virtuelle Apache-Host-Datei erstellen, um Moodle zu betreiben. Stelle also sicher, dass deine Domain fertig ist und auf die IP-Adresse deines Ubuntu-Servers aufgelöst ist.

Führe zunächst den Befehl„a2enmod“ aus, um das Modul„rewrite“ zu aktivieren.

sudo a2enmod rewrite

Erstelle eine neue Apache Virtual Host Datei„/etc/apache2/sites-available/moodle.conf“ mit dem folgenden„nano„-Editor.

sudo nano /etc/apache2/sites-available/moodle.conf

Füge die folgende Konfiguration ein und achte darauf, dass du den Domainnamen mit deinen Daten änderst.

<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 folgenden Befehl aus, um die Datei„moodle.conf“ zu aktivieren und deine Apache-Syntax zu überprüfen. Wenn du die richtige Apache-Syntax hast, siehst du die Ausgabe„Syntax ist OK„.

sudo a2ensite moodle.conf
sudo apachectl configtest

Zum Schluss führst du den Befehl„systemctl“ aus, um den Apache neu zu starten und deine Änderungen zu übernehmen.

sudo systemctl restart apache2

Moodle mit UFW absichern

In diesem Schritt öffnest du die HTTP- und HTTPS-Protokolle über die UFW (Uncomplicated Firewall). Stelle sicher, dass die UFW läuft, bevor du beginnst.

Führe den folgenden Befehl aus, um das Profil„Apache Full“ in der UFW zu aktivieren. Damit wird der HTTP- und HTTPS-Verkehr zugelassen.

sudo ufw allow 'Apache Full'

Überprüfe nun die Liste der aktivierten Regeln auf UFW mit dem folgenden Befehl. Du wirst sehen, dass das Profil„Apache Full“ aktiviert ist.

sudo ufw status

Moodle mit HTTPS absichern

Zusätzlich zur Firewall musst du auch SSL/TLS-Zertifikate erstellen und Moodle mit HTTPS sichern. In diesem Abschnitt wirst du HTTPS für Moodle mit Certbot und Letsencrypt einrichten. Wenn du Moodle lokal installierst, kannst du diesen Abschnitt überspringen.

Installiere die Pakete„certbot“ und„python3-certbot-apache“ mit dem folgenden Befehl.

sudo apt install certbot python3-certbot-apache -y

Nach der Installation führst du den Befehl„certbot“ aus, um SSL/TLS-Zertifikate für Moodle zu erzeugen. Achte darauf, dass du den Domänennamen und die E-Mail-Adresse mit deinen Daten änderst.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email kyrie@howtoforge.local -d moodle.howtoforge.local

Wenn der Vorgang abgeschlossen ist, sind deine SSL-Zertifikate im Verzeichnis„/etc/letsencrypt/live/domain.com“ verfügbar und deine Moodle-Installation sollte automatisch mit HTTPS gesichert sein.

Moodle installieren

Rufe deine Moodle-Domain auf, z.B. https://moodle.howtoforge.local/, und du wirst den Installationsassistenten sehen.

Wähle deine Standardsprache und klicke auf Weiter.

Sprache

Gib dein Datenverzeichnis für Moodle„/var/www/moodledata“ ein.

moodle Daten

Wähle MariaDB als Datenbanktreiber aus.

db-Treiber

Gib die Details zu deiner MariaDB-Datenbank und deinem Benutzer ein.

Datenbank

Klicke auf Weiter, um den Copyright-Hinweis zu bestätigen.

Copyright-Hinweise

Vergewissere dich im Abschnitt Serverprüfungen, dass deine Umgebung bereit ist.

Systemprüfungen

Jetzt wird die Moodle-Installation durchgeführt.

Installation

Nachdem die Installation abgeschlossen ist, gibst du den neuen Admin-Benutzer, die E-Mail und das Passwort für Moodle ein.

Admin-Setup

Jetzt siehst du das Moodle-Dashboard wie folgt:

moodle dashboard

Fazit

Herzlichen Glückwunsch! Du hast die Installation von Moodle auf dem Ubuntu 24.04 Server abgeschlossen. Du hast Moodle 40.4 auf Ubuntu mit dem LAMP-Stack (Linux, Apache, MariaDB und PHP) installiert und Moodle mit UFW (Uncomplicated Firewall) und HTTPS über Certbot und Letsencrypt gesichert.

Das könnte dich auch interessieren …