Moodle ist ein kostenloses und Open-Source-Lernmanagementsystem, das in PHP geschrieben ist. Es bietet Tutoren und Dozenten die Möglichkeit, Kurse für ihre Studenten oder Lernenden zu erstellen. Moodle bietet ein robustes und sicheres integriertes System und verfügt über ein benutzerdefiniertes Dashboard, das Benutzern hilft, auf aktuelle, vergangene oder zukünftige Kurse zuzugreifen und ausstehende Arbeiten zu überprüfen. Es wird von vielen Schulen, Universitäten und Organisationen auf der ganzen Welt verwendet und bietet eine bessere Lernerfahrung. Es bietet eine Vielzahl von Funktionen, darunter Wiki, Benotung, Abgabe von Aufgaben, Online-Quiz, Diskussionsforen und mehr.
In diesem Tutorial zeigen wir Ihnen, wie Sie Moodle mit dem Nginx-Webserver und Let’s Encrypt SSL unter Ubuntu 20.04 installieren.
Voraussetzungen
- Ein Server mit Ubuntu 20.04.
- Ein gültiger Domainname, auf den Ihre Server-IP verweist.
- Ein Root-Passwort wird auf dem Server konfiguriert.
Erste Schritte
Bevor Sie beginnen, müssen Sie Ihre Systempakete auf die neueste Version aktualisieren. Sie können sie mit dem folgenden Befehl aktualisieren:
apt-get update -y
Sobald Ihr Server aktualisiert ist, können Sie mit dem nächsten Schritt fortfahren.
LEMP installieren
Zuerst müssen Sie die Apache-, MariaDB-, PHP- und andere PHP-Bibliotheken auf Ihrem System installieren. Sie können alle mit dem folgenden Befehl installieren:
apt-get install nginx mariadb-server php-fpm php-common php-mysql php-gmp php-curl php-intl php-mbstring php-soap php-xmlrpc php-gd php-xml php-cli php-zip unzip git curl -y
Sobald alle Pakete installiert sind, bearbeiten Sie die Datei php.ini und ändern Sie einige Einstellungen:
nano /etc/php/7.4/fpm/php.ini
Ändern Sie die folgenden Zeilen:
memory_limit = 256M cgi.fix_pathinfo = 0 upload_max_filesize = 100M max_execution_time = 360 date.timezone = America/Chicago
Speichern und schließen Sie die Datei und starten Sie dann den PHP-FPM-Dienst neu, um die Änderungen zu übernehmen:
systemctl restart php7.4-fpm
Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
Datenbank erstellen
Moodle verwendet MySQL oder MariaDB als Datenbank-Backend, daher müssen Sie eine Datenbank und einen Benutzer für Moodle erstellen.
Verbinden Sie sich zunächst mit dem folgenden Befehl mit der MySQL-Shell:
mysql
Erstellen Sie nach der Anmeldung eine Datenbank und einen Benutzer mit dem folgenden Befehl:
CREATE DATABASE moodledb;
CREATE USER 'moodle'@'localhost' IDENTIFIED BY 'password';
Als nächstes erteilen Sie der Moodle-Datenbank alle Berechtigungen mit dem folgenden Befehl:
GRANT ALL ON moodledb.* TO 'moodle'@'localhost' WITH GRANT OPTION;
Löschen Sie als Nächstes die Berechtigungen und verlassen Sie MySQL mit dem folgenden Befehl:
FLUSH PRIVILEGES;
EXIT;
Bearbeiten Sie als Nächstes die MariaDB-Standardkonfigurationsdatei und definieren Sie das innodb_file_format:
nano /etc/mysql/mariadb.conf.d/50-server.cnf
Fügen Sie die folgenden Zeilen im Abschnitt [mysqld] hinzu:
[mysqld] innodb_file_format = Barracuda innodb_file_per_table = 1 innodb_large_prefix = ON
Speichern Sie die Datei und starten Sie den MariaDB-Dienst neu, um die Änderungen zu übernehmen:
systemctl restart mariadb
Moodle installieren
Wechseln Sie zunächst das Verzeichnis in das Apache-Root-Verzeichnis und laden Sie die neueste Version von Moodle mit dem folgenden Befehl herunter:
cd /var/www/html
git clone -b MOODLE_38_STABLE git://git.moodle.org/moodle.git moodle
Bearbeiten Sie nach Abschluss des Downloads die Moodle-config.php und definieren Sie den Datenbanktyp:
nano /var/www/html/moodle/config.php
Suchen Sie die folgende Zeile:
$CFG->dbtype = 'mysqli';
Und ersetzte es durch die folgende Zeile:
$CFG->dbtype = 'mariadb';
Speichern und schließen Sie die Datei und erstellen Sie dann mit dem folgenden Befehl ein Moodle-Datenverzeichnis, das die richtigen Eigentümer und Berechtigungen enthält:
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
Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
Nginx für Moodle konfigurieren
Als Nächstes müssen Sie eine Konfigurationsdatei für den virtuellen Nginx-Host erstellen, um Moodle zu hosten:
nano /etc/nginx/conf.d/moodle.conf
Fügen Sie die folgenden Zeilen hinzu:
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; } }
Speichern und schließen Sie die Datei und überprüfen Sie dann Nginx mit dem folgenden Befehl auf Syntaxfehler:
nginx -t
Sie sollten die folgende Ausgabe erhalten:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Starten Sie abschließend den Nginx-Dienst neu, um die Änderungen zu übernehmen:
systemctl restart nginx
Zu diesem Zeitpunkt ist Nginx so konfiguriert, dass es Moodle hostet. Sie können jetzt mit dem nächsten Schritt fortfahren.
Zugriff auf die Moodle-Webschnittstelle
Öffnen Sie nun Ihren Webbrowser und greifen Sie über die URL http://moodle.example.com auf die Moodle-Weboberfläche zu . Sie sollten die Moodle-Installationsseite sehen:
Wählen Sie Ihre Sprache und klicken Sie auf Weiter . Sie sollten die folgende Seite sehen:
Geben Sie Ihre Moodle-Webadresse, den Verzeichnispfad und den Datenverzeichnispfad ein und klicken Sie auf Weiter . Sie sollten die folgende Seite sehen:
Wählen Sie Ihren Datenbanktreibertyp und klicken Sie auf Weiter . Sie sollten die folgende Seite sehen:
Geben Sie Ihren Datenbankhost, Datenbanknamen, Benutzernamen und Passwort ein und klicken Sie auf Weiter . Sie sollten die folgende Seite sehen:
Klicken Sie auf Weiter um alle Bedingungen zu bestätigen. Sie sollten die folgende Seite sehen:
Stellen Sie sicher, dass alle erforderlichen PHP-Erweiterungen installiert sind, und klicken Sie dann auf Weiter . Sie sollten die folgende Seite sehen:
Klicken Sie auf Weiter . Sie sollten die folgende Seite sehen:
Geben Sie Ihren Admin-Benutzernamen, Ihr Passwort, Ihre E-Mail-Adresse, Ihr Land und Ihre Zeitzone ein und klicken Sie auf Aktualisieren Profil. Sie sollten die folgende Seite sehen:
Geben Sie Ihre Startseiteneinstellungen ein und klicken Sie auf Speichern Änderungen Schaltfläche, um die Änderungen zu speichern.
Sichern Sie Moodle mit Let's Encrypt SSL
Als Nächstes müssen Sie das Certbot-Tool installieren, um Let’s Encrypt SSL herunterzuladen und Nginx für die Verwendung dieses SSL zu konfigurieren.
Installieren Sie zuerst den Certbot mit dem folgenden Befehl:
apt-get install python3-certbot-nginx -y
Führen Sie nach der Installation den folgenden Befehl aus, um alle SSL-Dateien herunterzuladen und Nginx für die Verwendung zu konfigurieren:
certbot --nginx -d moodle.example.com
Sie werden aufgefordert, eine gültige E-Mail-Adresse anzugeben und die unten aufgeführten Nutzungsbedingungen zu akzeptieren:
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator nginx, Installer nginx Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): [email protected] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A)gree/(C)ancel: A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: Y Obtaining a new certificate Performing the following challenges: http-01 challenge for moodle.example.com Waiting for verification... Cleaning up challenges Deploying Certificate to VirtualHost /etc/nginx/conf.d/moodle.conf
Wählen Sie als Nächstes aus, ob der HTTP-Datenverkehr wie unten gezeigt an HTTPS umgeleitet werden soll:
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Geben Sie 2 ein und drücken Sie die Eingabetaste, um fortzufahren. Sie sollten die folgende Ausgabe sehen:
Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/moodle.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://moodle.example.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=moodle.example.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/moodle.example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/moodle.example.com/privkey.pem Your cert will expire on 2021-05-23. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le - We were unable to subscribe you the EFF mailing list because your e-mail address appears to be invalid. You can try again later by visiting https://act.eff.org.besuchen
Sie können jetzt die Moodle-Website über die URL http://moodle.example.com aufrufen
Schlussfolgerung
Herzliche Glückwünsche! Sie haben Moodle mit Nginx und Let’s Encrypt SSL erfolgreich auf Ubuntu 20.04 installiert. Mit Moodle können Sie jetzt ganz einfach Ihr eigenes Lernmanagementsystem erstellen.