Kako namestiti Moodle Learning Platform z Nginxom v CentOS 8


Moodle je najbolj priljubljen sistem za upravljanje učenja na svetu za izdelavo robustnih spletnih mest za učenje. Vsebuje vrsto dejavnosti in izobraževalnih orodij, med katerimi lahko izbirate, podpira upravljanje ocenjevanja in dobavlja certifikate po meri. Omogoča tudi komunikacijo s študenti v realnem času z zmogljivim orodjem za videokonference. Poleg tega je pripravljen za mobilne naprave, tako da se lahko učenci učijo na svojih mobilnih napravah.

  • Operacijski sistem: nameščena je minimalna namestitev sklada LEMP.
  • Prostor na disku: 200 MB za Moodle in 5 GB je verjetno realen minimum za shranjevanje vsebine.
  • Procesor: 1 GHz (min), 2 GHz dvojedrni ali več.
  • Pomnilnik: priporočljivo je 512 MB (min), 1 GB ali več. Na velikem produkcijskem strežniku je verjetno 8 GB plus.

Na tej strani

  • Ustvarjanje zapisa DNS domene za spletno mesto Moodle
  • Namestitev učne platforme Moodle v strežnik CentOS 8
  • Konfiguriranje NGINX za strežbo spletnega mesta Moodle
  • Dokončajte namestitev Moodle s programom Web Installer
  • Omogočite HTTPS na spletnem mestu Moodle z uporabo Let’s Encrypt

1. Začnite z ustvarjanjem poddomene, ki jo bodo uporabniki uporabili za dostop do spletnega učnega spletnega mesta Moodle. Če je na primer vaše ime domene testprojects.me , lahko ustvarite poddomeno, imenovano learning.testprojects.me .

Odprite napredne nastavitve DNS za svoje ime in dodajte zapis A , kot je prikazano na naslednji sliki.

2. Pred namestitvijo Moodle se prepričajte, da imate na strežniku zahtevane razširitve PHP, če jih želite namestiti, zaženite naslednji ukaz:

# 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. Nato ustvarite bazo podatkov za aplikacijo Moodle, kot sledi.

# mysql -u root -p

Nato ustvarite bazo podatkov, uporabnika baze podatkov in ustvarite varno geslo za uporabo.

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 '[email ';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

4. Zdaj prenesite najnovejšo različico Moodle (3.9 v času pisanja) z uradnega spletnega mesta projekta moodle, izvlecite arhivsko datoteko in jo premaknite v svojo spletno korenino (/var/www/html/) imenik, nato nastavite ustrezna dovoljenja in lastništvo, da spletnemu strežniku omogočite dostop do imenika Moodle, kot sledi.

# 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. Nato ustvarite imenik moodledata, ki je mesto datotek, ki jih naloži ali ustvari vmesnik Moodle, nato dodelite ustrezna dovoljenja in lastništvo, da bo spletni strežnik lahko bral in pisal do njega:

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

6. Nato se premaknite v namestitveni imenik Moodle in ustvarite datoteko config.php iz predložene vzorčne datoteke config.dist.php , nato jo odprite za urejanje, da konfigurirate nekaj ključne nastavitve za vašo platformo Moodle, kot so parametri povezave z bazo podatkov in lokacija spletnega mesta ter kje lahko najde imenik moodledata:

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

Nastavite pravi tip datbase, pravilnega gostitelja baze podatkov, ime baze podatkov in uporabnika baze podatkov ter uporabniško geslo.

$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    = '[email zzwd0L2';   // your database password
$CFG->prefix    = 'mdl_';       // prefix to use for all table names

7. Nastavite tudi URL, ki se uporablja za dostop do vašega Moodle sit-a, to določa lokacijo wwwroot, kjer so vaše spletne datoteke Moodle, in tudi dataroot (imenik moodledata):

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

8. V tem razdelku morate konfigurirati NGINX, da bo služil vaši aplikaciji Moodle. Zanj morate ustvariti strežniški blok v konfiguraciji NGINX, kot je prikazano.

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

Kopirajte in prilepite naslednjo konfiguracijo v konfiguracijsko datoteko bloka strežnika. Ime strežnika zamenjajte z imenom poddomene, ustvarjenim zgoraj, in fastcgi_pass naj kaže na php-fpm (upoštevajte, da na CentOS 8 PHP-FPM sprejema zahteve FastCGI z uporabo naslova, določenega v /etc/nginx/conf.d/php- fpm.conf konfiguracija).

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

Datoteko shranite in zaprite.

9. Nato preverite pravilnost konfiguracije NGINX, če je v redu, znova zaženite storitve nginx in php-fpm, da uporabite nedavne spremembe:

# nginx -t
# systemctl restart nginx
# systemctl restart php-fpm

10. Če je v vašem sistemu omogočen SELinux, zaženite naslednje ukaze, da nastavite pravi kontekst za dostop do spletnih datotek Moodle na strežniku:

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

11. Poleg tega zagotovite, da sta v požarnem zidu odprti storitvi HTTP in HTTPS, ki omogočata promet do spletnega strežnika NGINX:

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

12. Če želite dostopati do spletnega namestitvenega programa Moodle, odprite spletni brskalnik in krmarite s pomočjo poddomene, ki ste jo ustvarili zgoraj:

http://learning.testprojects.me

Ko se stran dobrodošlice naloži, preberite pogoje in pogoje in kliknite Nadaljuj.

13. Nato bo spletni namestitveni program preveril, ali vaš sistem izpolnjuje zahteve za zagon spletnega mesta Moodle določene različice. Če si želite ogledati več informacij, se lahko pomaknete navzdol.

14. Namestitveni program se bo pritožil, da HTTPS ni omogočen, za zdaj ne upoštevajte te napake (v naslednjem poglavju bomo prikazali, kako omogočiti HTTPS v Moodleu) in kliknite Nadaljuj, da začnete dejansko nameščati spletne datoteke.

15. Zdaj bo namestitveni program začel dejansko namestiti datoteke Moodle, kot je prikazano na naslednjem posnetku zaslona. Ko končate, kliknite Nadaljuj.

16. V naslednjem koraku morate posodobiti skrbniški račun spletnega mesta Moodle tako, da posodobite uporabniško ime, geslo, ime in priimek ter e-poštni naslov. Nato se pomaknite navzdol po strani in kliknite Posodobi profil.

17. Nato posodobite nastavitve naslovne strani spletnega mesta Moodle. Nato se pomaknite navzdol in kliknite Posodobi, da začnete uporabljati spletno mesto Moodle.

18. Nato morate spletno mesto registrirati po navodilih na zaslonu. Na nadzorno ploščo lahko pridete s klikom na Nadzorno ploščo.

HTTPS doda prvo stopnjo varnosti na vaše spletno mesto, da omogoči varno komunikacijo med uporabniki in aplikacijo Moodle (zlasti spletni strežnik NGINX, ki prejema zahteve in posreduje odgovore).

Potrdilo SSL/TLS lahko kupite pri komercialnem overitelju ali uporabite Let’s Encrypt, ki je brezplačen in ga priznavajo vsi sodobni spletni brskalniki. Za ta vodnik bomo uporabili Let’s Encrypt.

19. Uvajanje Let's Encrypt Certificate samodejno upravljamo z orodjem certbot. Certbot in druge zahtevane pakete lahko namestite z naslednjim ukazom:

# dnf install certbot python3-certbot-nginx

20. Nato zaženite naslednji ukaz, da dobite potrdilo Let’s Encrypt in naj Certbot samodejno uredi vašo konfiguracijo NGINX, da jo bo uporabil (prav tako bo konfiguriral HTTP, da se samodejno preusmeri na HTTPS).

# certbot --nginx

21. Nato zaženite naslednji ukaz, da omogočite samodejno podaljšanje potrdila 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. Nato posodobite konfiguracijo Moodle, da začnete uporabljati HTTPS.

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

spremenite URL wwwroot iz HTTP v HTTPS:

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

23. Nenazadnje potrdite, da se vaše spletno mesto Moodle zdaj izvaja na HTTPS.

Za zdaj je to! Če želite več informacij in možnosti konfiguracije za zagon nove učne platforme, obiščite spletno mesto Moodle in preberite uradno dokumentacijo.