GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat Moodle s Nginx a nechat šifrovat SSL na Ubuntu 20.04

Moodle je bezplatný a otevřený systém pro správu výuky napsaný v PHP. Poskytuje lektorům a instruktorům způsob, jak vytvářet kurzy pro své studenty nebo studenty. Moodle poskytuje robustní a bezpečný integrovaný systém a přichází s vlastním řídicím panelem, který uživatelům pomáhá přistupovat k aktuálním, minulým nebo budoucím kurzům a také k nevyřízené práci. Používá jej mnoho škol, univerzit a organizací po celém světě a poskytuje lepší studijní zkušenost. Poskytuje bohatou sadu funkcí včetně wiki, hodnocení, odesílání úkolů, online kvízů, diskusních fór a dalších.

V tomto tutoriálu vám ukážeme, jak nainstalovat Moodle s webovým serverem Nginx a Let's Encrypt SSL na Ubuntu 20.04.

Předpoklady

  • Server se systémem Ubuntu 20.04.
  • Platný název domény s adresou IP vašeho serveru.
  • Na serveru je nakonfigurováno heslo uživatele root.

Začínáme

Než začnete, budete muset aktualizovat systémové balíčky na nejnovější verzi. Můžete je aktualizovat pomocí následujícího příkazu:

apt-get update -y

Jakmile je váš server aktualizován, můžete přejít k dalšímu kroku.

Instalovat LEMP

Nejprve budete muset do svého systému nainstalovat knihovny Apache, MariaDB, PHP a další PHP. Všechny je můžete nainstalovat pomocí následujícího příkazu:

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

Jakmile jsou všechny balíčky nainstalovány, upravte soubor php.ini a změňte některá nastavení:

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

Změňte následující řádky:

memory_limit = 256M
cgi.fix_pathinfo = 0
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = America/Chicago

Uložte a zavřete soubor a poté restartujte službu PHP-FPM, aby se změny projevily:

systemctl restart php7.4-fpm

Jakmile budete hotovi, můžete přejít k dalšímu kroku.

Vytvořit databázi

Moodle používá MySQL nebo MariaDB jako backend databáze, takže budete muset vytvořit databázi a uživatele pro Moodle.

Nejprve se připojte k prostředí MySQL pomocí následujícího příkazu:

mysql

Po přihlášení vytvořte databázi a uživatele pomocí následujícího příkazu:

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

Dále udělte všechna oprávnění databázi Moodle pomocí následujícího příkazu:

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

Dále vyprázdněte oprávnění a ukončete MySQL pomocí následujícího příkazu:

FLUSH PRIVILEGES;
EXIT;

Dále upravte výchozí konfigurační soubor MariaDB a definujte innodb_file_format:

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

Do sekce [mysqld] přidejte následující řádky:

[mysqld]
innodb_file_format = Barracuda
innodb_file_per_table = 1
innodb_large_prefix = ON

Uložte soubor a restartujte službu MariaDB, aby se změny projevily:

systemctl restart mariadb

Instalovat Moodle

Nejprve změňte adresář na kořenový adresář Apache a stáhněte si nejnovější verzi Moodle pomocí následujícího příkazu:

cd /var/www/html
git clone -b MOODLE_38_STABLE git://git.moodle.org/moodle.git moodle

Po dokončení stahování upravte Moodle config.php a definujte typ databáze:

nano /var/www/html/moodle/config.php

Najděte následující řádek:

$CFG->dbtype    = 'mysqli';

A nahraďte jej následujícím řádkem:

$CFG->dbtype    = 'mariadb';

Uložte a zavřete soubor a poté pomocí následujícího příkazu vytvořte soubor datového adresáře Moodle se správným vlastnictvím a oprávněním:

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

Jakmile budete hotovi, můžete přejít k dalšímu kroku.

Konfigurace Nginx pro Moodle

Dále budete muset vytvořit konfigurační soubor virtuálního hostitele Nginx pro hostitele Moodle:

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

Přidejte následující řádky:

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;
    }
}

Uložte a zavřete soubor a poté pomocí následujícího příkazu ověřte, zda Nginx neobsahuje nějakou chybu syntaxe:

nginx -t

Měli byste získat následující výstup:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Nakonec restartujte službu Nginx, aby se změny projevily:

systemctl restart nginx

V tomto okamžiku je Nginx nakonfigurován tak, aby hostoval Moodle. Nyní můžete přejít k dalšímu kroku.

Přístup k webovému rozhraní Moodle

Nyní otevřete webový prohlížeč a přejděte do webového rozhraní Moodle pomocí adresy URL http://moodle.example.com . Měli byste vidět instalační stránku Moodle:

Vyberte jazyk a klikněte na Další . Měli byste vidět následující stránku:

Zadejte svou webovou adresu Moodle, cestu k adresáři, cestu k datovému adresáři a klikněte na Další . Měli byste vidět následující stránku:

Vyberte typ ovladače databáze a klikněte na Další . Měli byste vidět následující stránku:

Zadejte hostitele databáze, název databáze, uživatelské jméno, heslo a klikněte na Další . Měli byste vidět následující stránku:

Klikněte na tlačítko Pokračovat pro potvrzení všech podmínek. Měli byste vidět následující stránku:

Ujistěte se, že jsou nainstalována všechna požadovaná rozšíření PHP, a poté klikněte na Pokračovat . Měli byste vidět následující stránku:

Klikněte na tlačítko Pokračovat . Měli byste vidět následující stránku:

Zadejte své administrátorské uživatelské jméno, heslo, e-mail, zemi, časové pásmo a klikněte na Aktualizovat profil. Měli byste vidět následující stránku:

Zadejte nastavení úvodní stránky a klikněte na Uložit změny pro uložení změn.

Bezpečný Moodle s Let's Encrypt SSL

Dále budete muset nainstalovat nástroj Certbot ke stažení Let's Encrypt SSL a nakonfigurovat Nginx pro použití tohoto SSL.

Nejprve nainstalujte Certbot pomocí následujícího příkazu:

apt-get install python3-certbot-nginx -y

Po instalaci spusťte následující příkaz ke stažení veškerého SSL a nakonfigurujte Nginx, aby jej používal:

certbot --nginx -d moodle.example.com

Budete požádáni, abyste poskytli platnou e-mailovou adresu a přijali podmínky služby, jak je uvedeno níže:

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

Dále zvolte, zda chcete přesměrovat provoz HTTP na HTTPS, jak je uvedeno níže:

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

Zadejte 2 a pokračujte stisknutím klávesy Enter. Měli byste vidět následující výstup:

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.

Nyní máte přístup na web Moodle pomocí adresy URL http://moodle.example.com

Závěr

Gratulujeme! úspěšně jste nainstalovali Moodle s Nginx a Let's Encrypt SSL na Ubuntu 20.04. Nyní si můžete snadno vytvořit svůj vlastní Learning Management System s Moodle.


Ubuntu
  1. Jak nainstalovat Nextcloud s Nginx a nechat šifrovat SSL na Ubuntu 20.04 LTS

  2. Jak nainstalovat Magento 2 s Nginx a nechat šifrovat SSL na Ubuntu 20.04 LTS

  3. Jak nainstalovat Drupal 8 s Nginx, PHP-FPM a SSL na Ubuntu 15.10

  1. Jak nainstalovat OpenCart 2 s Nginx a SSL na Ubuntu 15.10

  2. Nainstalujte Automad CMS s Nginx a Lets Encrypt SSL na Ubuntu 18.04

  3. Jak nainstalovat X-Cart s Nginx a nechat šifrovat SSL na Ubuntu 18.04 LTS

  1. Jak nainstalovat Drupal s Nginx a nechat šifrovat SSL na Ubuntu 20.04 LTS

  2. Jak nainstalovat Joomla s Apache2 a Lets Encrypt na Ubuntu 20.04

  3. Jak nainstalovat Webmin a zabezpečit jej pomocí Lets Encrypt SSL na Ubuntu 20.04 LTS