Vyhledávání na webu

Jak nainstalovat Moodle Learning Platform s Nginx v CentOS 8


Moodle je celosvětově nejoblíbenější systém pro řízení výuky pro vytváření robustních online výukových stránek. Nabízí řadu aktivit a vzdělávacích nástrojů, ze kterých si můžete vybrat, podporuje správu hodnocení a dodává se s vlastními certifikáty. Umožňuje také komunikaci s vašimi studenty v reálném čase pomocí výkonného nástroje pro videokonference. Kromě toho je připraven pro mobilní zařízení, takže vaši studenti se mohou učit ze svých mobilních zařízení.

Požadavky na server Moodle

  • Operační systém: minimální instalace serveru CentOS 8 nebo RHEL 8 s nainstalovaným zásobníkem LEMP.
  • Místo na disku: 200 MB pro Moodle a 5 GB je pravděpodobně reálné minimum pro ukládání obsahu.
  • Procesor: 1 GHz (min), 2 GHz dvoujádrový nebo více doporučeno.
  • Paměť: 512 MB (min), doporučuje se 1 GB nebo více. 8GB plus je pravděpodobně na velkém produkčním serveru.

Na této straně

  • Vytvoření DNS záznamu domény pro webové stránky Moodle
  • Instalace Moodle Learning Platform na CentOS 8 Server
  • Konfigurace NGINX pro poskytování webových stránek Moodle
  • Dokončete instalaci Moodle pomocí webového instalačního programu
  • Povolte HTTPS na webu Moodle pomocí Let’s Encrypt

Vytvoření DNS záznamu domény pro webové stránky Moodle

1. Začněte vytvořením subdomény, kterou budou uživatelé používat pro přístup k online výukové stránce Moodle. Pokud je například název vaší domény testprojects.me, můžete vytvořit subdoménu s názvem learning.testprojects.me.

Otevřete pokročilá nastavení DNS své domény a přidejte záznam A, jak je znázorněno na následujícím obrázku.

Instalace Moodle na CentOS 8 Server

2. Před instalací Moodle se ujistěte, že máte na svém serveru požadovaná rozšíření PHP, k jejich instalaci můžete spustit následující příkaz:

dnf install php-common php-iconv php-curl php-mbstring php-xmlrpc php-soap php-zip php-gd php-xml php-intl php-json libpcre3 libpcre3-dev graphviz aspell ghostscript clamav

3. Dále vytvořte databázi pro aplikaci Moodle následujícím způsobem.

mysql -u root -p

Poté vytvořte databázi, uživatele databáze a vytvořte bezpečné heslo pro použití.

MariaDB [(none)]> CREATE DATABASE moodledb;
MariaDB [(none)]> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodledb.* TO 'moodleadmin'@'localhost' IDENTIFIED BY 'p@zzwd0L2';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

4. Nyní si stáhněte nejnovější verzi Moodle (3.9 v době psaní článku) z oficiálních stránek projektu moodle, rozbalte archivní soubor a přesuňte jej do svého adresáře webroot (/var/www/html/) a poté nastavte příslušná oprávnění a vlastnictví, abyste umožnili webovému serveru přístup do adresáře Moodle, a to následovně.

wget -c https://download.moodle.org/download.php/direct/stable39/moodle-latest-39.tgz
tar -xzvf  moodle-latest-39.tgz
mv moodle /var/www/html/
chmod 775 -R /var/www/html/moodle
chown nginx:nginx -R /var/www/html/moodle

5. Dále vytvořte adresář moodledata, což je umístění souborů nahraných nebo vytvořených rozhraním Moodle, poté přidělte příslušná oprávnění a vlastnictví, aby webový server měl k němu přístup pro čtení a zápis:


mkdir -p /var/www/html/moodledata
chmod 770 -R /var/www/html/moodledata
chown :nginx -R /var/www/html/moodledata

6. Dále se přesuňte do instalačního adresáře Moodle a vytvořte soubor config.php z ukázkového config.dist.php a poté jej otevřete pro úpravy a nakonfigurujte některá klíčová nastavení pro platformu Moodle, jako jsou parametry připojení k databázi a umístění webu a kde najde adresář moodledata:

cd /var/www/html/moodle/
cp config-dist.php config.php
vim config.php

Nastavte správný typ databáze, správného hostitele databáze, název databáze a uživatele databáze a heslo uživatele.

$CFG->dbtype    = 'mariadb';      // 'pgsql', 'mariadb', 'mysqli', 'sqlsrv' or 'oci'
$CFG->dblibrary = 'native';     // 'native' only at the moment
$CFG->dbhost    = 'localhost';  // eg 'localhost' or 'db.isp.com' or IP
$CFG->dbname    = 'moodledb';     // database name, eg moodle
$CFG->dbuser    = 'moodleadmin';   // your database username
$CFG->dbpass    = 'p@zzwd0L2';   // your database password
$CFG->prefix    = 'mdl_';       // prefix to use for all table names

7. Nastavte také adresu URL používanou pro přístup k vaší síti Moodle, která určuje umístění wwwroot, kde jsou umístěny vaše webové soubory Moodle, a také dataroot (adresář moodledata):

$CFG->wwwroot   = 'http://learning.testprojects.me';
$CFG->dataroot  = '/var/www/html/moodledata';

Konfigurace NGINX pro poskytování webových stránek Moodle

8. V této části musíte nakonfigurovat NGINX, aby sloužil vaší aplikaci Moodle. Musíte pro něj vytvořit blok serveru v konfiguraci NGINX, jak je znázorněno.

vim /etc/nginx/conf.d/moodle.conf

Zkopírujte a vložte následující konfiguraci do konfiguračního souboru bloku serveru. Nahraďte název serveru svým názvem subdomény vytvořeným výše a fastcgi_pass by měl ukazovat na php-fpm (poznámka že na CentOS 8 přijímá PHP-FPM požadavky FastCGI pomocí adresy definované v /etc/nginx/conf.d/ konfigurace php-fpm.conf).

server{
   listen 80;
    server_name learning.testprojects.me;
    root        /var/www/html/moodle;
    index       index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ ^(.+\.php)(.*)$ {
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_index           index.php;
        fastcgi_pass            php-fpm;
        include                 /etc/nginx/mime.types;
        include                 fastcgi_params;
        fastcgi_param           PATH_INFO       $fastcgi_path_info;
        fastcgi_param           SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}

Uložte soubor a zavřete jej.

9. Poté zkontrolujte správnost konfigurace NGINX, pokud je OK, restartujte nginx a php-fpmpro použití posledních změn:

nginx -t
systemctl restart nginx
systemctl restart php-fpm

10. Pokud máte v systému povolen SELinux, spusťte následující příkazy pro nastavení správného kontextu pro přístup k webovým souborům Moodle na server:

setsebool -P httpd_can_network_connect on
chcon -R --type httpd_sys_rw_content_t /var/www/html

11. Kromě toho zajistěte, aby služby HTTP a HTTPS byly otevřeny ve bráně firewall, aby byl povolen provoz do NGINX webový server:

firewall-cmd --permanent --zone=public --add-service=http 
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload

Dokončete instalaci Moodle pomocí webového instalačního programu

12. Chcete-li získat přístup k webovému instalačnímu programu Moodle, otevřete webový prohlížeč a přejděte pomocí subdomény, kterou jste vytvořili výše:

http://learning.testprojects.me

Po načtení uvítací stránky si přečtěte smluvní podmínky a klikněte na Pokračovat.

13. Dále webový instalátor zkontroluje, zda váš systém splňuje požadavky pro provoz webu Moodle uvedené verze. Další informace zobrazíte posunutím dolů.

14. Instalační program si bude stěžovat na to, že HTTPS není povoleno, tuto chybu zatím ignorujte (v další části si ukážeme, jak povolit HTTPS na Moodle) a klikněte na Pokračovat a zahájit samotnou instalaci webových souborů.

15. Nyní instalační program zahájí samotnou instalaci souborů Moodle, jak je znázorněno na následujícím snímku obrazovky. Po dokončení klikněte na Pokračovat.

16. V dalším kroku je třeba aktualizovat účet správce webu Moodle aktualizací uživatelského jména, hesla, křestního jména, příjmení a e-mailové adresy. Poté přejděte na stránku dolů a klikněte na Aktualizovat profil.

17. Poté aktualizujte nastavení úvodní stránky webu Moodle. Poté přejděte dolů a kliknutím na Aktualizovat začněte používat svůj web Moodle.

18. Dále je třeba zaregistrovat svůj web podle pokynů na obrazovce. Na řídicí panel můžete přejít kliknutím na řídicí panel.

Nastavení HTTPS na webu Moodle pomocí Let’s Encrypt

HTTPS přidává na váš web první vrstvu zabezpečení, která umožňuje bezpečnou komunikaci mezi vašimi uživateli a aplikací Moodle (zejména webovým serverem NGINX, který přijímá žádá a dodává odpovědi).

Můžete si zakoupit certifikát SSL/TLS od komerční CA nebo použít Let’s Encrypt, který je bezplatný a uznávaný všemi moderními webovými prohlížeči. V této příručce použijeme Let’s Encrypt.

19. Nasazení certifikátu Let’s Encrypt je automaticky spravováno pomocí nástroje certbot. certbot a další požadované balíčky můžete nainstalovat pomocí následujícího příkazu:

dnf install certbot python3-certbot-nginx

20. Poté spusťte následující příkaz, abyste získali certifikát Let's Encrypt a požádejte Certbota, aby automaticky upravil vaši konfiguraci NGINX tak, aby ji poskytovala (nakonfiguruje také HTTP bude automaticky přesměrován na HTTPS).

certbot --nginx

21. Poté spuštěním následujícího příkazu povolte automatické obnovení certifikátu Let’s Encrypt SSL/TLS:

echo "0 0,12 * * * root python3 -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew -q" | sudo tee -a /etc/crontab > /dev/null

22. Dále aktualizujte konfiguraci Moodle, abyste mohli začít používat HTTPS.

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

změňte adresu URL wwwrootHTTP na HTTPS:

$CFG->wwwroot   = 'https://learning.testprojects.me';

23. V neposlední řadě se ujistěte, že váš web Moodle  nyní běží na HTTPS.

To je prozatím vše! Další informace a možnosti konfigurace pro provoz vaší nové výukové platformy najdete na webových stránkách Moodle a přečtěte si oficiální dokumentaci.