GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie Moodle mit Nginx und Lets Encrypt SSL unter Ubuntu 20.04

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.


Ubuntu
  1. So installieren Sie Nextcloud mit Nginx und Lets Encrypt SSL unter Ubuntu 20.04 LTS

  2. So installieren Sie Magento 2 mit Nginx und Lets Encrypt SSL unter Ubuntu 20.04 LTS

  3. So installieren Sie Drupal 8 mit Nginx, PHP-FPM und SSL unter Ubuntu 15.10

  4. So installieren Sie OpenCart 2 mit Nginx und SSL unter Ubuntu 15.10

  5. Installieren Sie Automad CMS mit Nginx und Lets Encrypt SSL auf Ubuntu 18.04

So installieren Sie Concrete5 CMS mit Apache und kostenlosem Lets Encrypt SSL unter Ubuntu 20.04

So installieren Sie ProjectSend mit Apache und Lets Encrypt SSL unter Ubuntu 20.04

So installieren Sie MediaWiki mit Nginx und Lets Encrypt SSL unter Ubuntu 20.04

So installieren Sie Gitea mit Nginx und kostenlosem Lets Encrypt SSL unter Ubuntu 20.04

So installieren Sie Nginx mit Let’s Encrypt TLS/SSL unter Ubuntu 20.04

So installieren Sie Let’s Encrypt SSL mit Nginx unter Ubuntu 16.04 LTS