Kako instalirati Moodle platformu za učenje s Nginxom u CentOS 8


Moodle je najpopularniji svjetski sustav za upravljanje učenjem za izgradnju robusnih stranica za online učenje. Sadrži niz aktivnosti i obrazovnih alata koje možete izabrati, podržava upravljanje ocjenjivanjem i isporučuje se s prilagođenim certifikatima. Također omogućuje komunikaciju s vašim učenicima u stvarnom vremenu pomoću moćnog alata za video konferencije. Osim toga, spreman je za mobilne uređaje, tako da vaši učenici mogu učiti sa svojih mobilnih uređaja.

Zahtjevi Moodle poslužitelja

  • Operativni sustav: minimalna instalacija CentOS 8 ili RHEL 8 poslužitelja s instaliranim LEMP stackom.
  • Prostor na disku: 200 MB za Moodle, a 5 GB je vjerojatno realan minimum za pohranu sadržaja.
  • Procesor: 1 GHz (min), 2 GHz dual-core ili više preporučeno.
  • Memorija: 512 MB (min), preporučuje se 1 GB ili više. Više od 8 GB vjerojatno je na velikom proizvodnom poslužitelju.

Na ovoj stranici

  • Stvaranje DNS zapisa domene za Moodle web stranicu
  • Instaliranje Moodle Learning Platforme u CentOS 8 Server
  • Konfiguriranje NGINX-a za posluživanje Moodle web stranice
  • Dovršite instalaciju Moodlea putem web programa za instalaciju
  • Omogućite HTTPS na Moodle web mjestu koristeći Let’s Encrypt

Stvaranje DNS zapisa domene za Moodle web stranicu

1. Započnite stvaranjem poddomene koju će korisnici koristiti za pristup Moodle stranici za online učenje. Na primjer, ako je naziv vaše domene testprojects.me, možete stvoriti poddomenu pod nazivom learning.testprojects.me.

Otvorite napredne DNS postavke naziva domene i dodajte A zapis kao što je prikazano na sljedećoj slici.

Instaliranje Moodlea u CentOS 8 poslužitelj

2. Prije instaliranja Moodle, provjerite imate li potrebna PHP proširenja na svom poslužitelju, možete pokrenuti sljedeću naredbu da ih instalirate:

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. Zatim izradite bazu podataka za aplikaciju Moodle kako slijedi.

mysql -u root -p

Zatim kreirajte bazu podataka, korisnika baze podataka i stvorite sigurnu lozinku za korištenje.

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. Sada preuzmite najnoviju verziju Moodlea (3.9 u vrijeme pisanja) sa službene web stranice projekta moodle, raspakirajte arhivsku datoteku i premjestite ga u svoj webroot (/var/www/html/) direktorij, zatim postavite odgovarajuće dozvole i vlasništvo kako biste web poslužitelju omogućili pristup Moodle direktoriju, kako slijedi.

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. Zatim stvorite direktorij moodledata koji je lokacija datoteka koje su učitane ili stvorene preko Moodle sučelja, zatim dodijelite odgovarajuća dopuštenja i vlasništvo kako bi se web poslužitelju omogućio pristup za čitanje i pisanje:


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

6. Zatim prijeđite u Moodle instalacijski direktorij i kreirajte config.php datoteku iz uzorka config.dist.php datoteku, a zatim je otvorite za uređivanje kako biste konfigurirali neke ključne postavke za svoju Moodle platformu, kao što su parametri povezivanja s bazom podataka i lokacija web-mjesta te gdje se može pronaći direktorij moodledata:

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

Postavite ispravnu vrstu baze podataka, ispravan host baze podataka, naziv baze podataka i korisnika baze podataka i korisničku lozinku.

$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. Također postavite URL koji se koristi za pristup vašem Moodle mjestu, ovo specificira lokaciju wwwroot gdje se nalaze vaše Moodle web datoteke, i također dataroot (direktorij moodledata):

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

Konfiguriranje NGINX-a za posluživanje Moodle web stranice

8. U ovom odjeljku trebate konfigurirati NGINX za posluživanje vaše Moodle aplikacije. Morate stvoriti blok poslužitelja za njega u konfiguraciji NGINX kao što je prikazano.

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

Kopirajte i zalijepite sljedeću konfiguraciju u konfiguracijsku datoteku poslužiteljskog bloka. Zamijenite naziv poslužitelja svojim nazivom poddomene kreiranim iznad, a fastcgi_pass trebao bi upućivati na php-fpm (napomena da na CentOS 8, PHP-FPM prihvaća FastCGI zahtjeve koristeći adresu definiranu u /etc/nginx/conf.d/ php-fpm.confkonfiguracija).

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

Spremite datoteku i zatvorite je.

9. Zatim provjerite ispravnost konfiguracije NGINX, ako je U redu, ponovno pokrenite nginx i php-fpm usluge za primjenu nedavnih promjena:

nginx -t
systemctl restart nginx
systemctl restart php-fpm

10. Ako imate SELinux omogućen na vašem sustavu, tada pokrenite sljedeće naredbe za postavljanje ispravnog konteksta za pristup Moodle web datotekama na poslužitelj:

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

11. Osim toga, provjerite jesu li usluge HTTP i HTTPS otvorene u vatrozidu kako bi se omogućio promet prema NGINX web poslužitelj:

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

Dovršite instalaciju Moodlea putem web programa za instalaciju

12. Za pristup Moodle web instalacijskom programu, otvorite svoj web preglednik i krećite se pomoću poddomene koju ste stvorili gore:

http://learning.testprojects.me

Nakon što se stranica dobrodošlice učita, pročitajte odredbe i uvjete i kliknite Nastavi.

13. Zatim će web instalacijski program provjeriti zadovoljava li vaš sustav zahtjeve za pokretanje Moodle stranice navedene verzije. Možete se pomaknuti prema dolje da vidite više informacija.

14. Instalacijski program će se žaliti da HTTPS nije omogućen, zanemarite tu pogrešku za sada (u sljedećem ćemo odjeljku pokazati kako omogućiti HTTPS na Moodleu) i kliknite Nastavi, za početak stvarne instalacije web datoteka.

15. Sada će instalacijski program započeti stvarnu instalaciju Moodle datoteka kao što je prikazano na sljedećoj snimci zaslona. Nakon dovršetka kliknite Nastavi.

16. U sljedećem koraku trebate ažurirati administratorski račun svoje Moodle stranice ažuriranjem korisničkog imena, lozinke, imena i prezimena te adrese e-pošte. Zatim se pomaknite prema dolje na stranici i kliknite Ažuriraj profil.

17. Zatim ažurirajte postavke naslovne stranice moodle stranice. Zatim se pomaknite prema dolje i kliknite Ažuriraj kako biste počeli koristiti svoju Moodle stranicu.

18. Zatim trebate registrirati svoju stranicu slijedeći upute na ekranu. Na nadzornu ploču možete otići klikom na nadzornu ploču.

Postavljanje HTTPS-a na Moodle stranici pomoću Let’s Encrypt

HTTPS dodaje prvi sloj sigurnosti vašoj web stranici kako bi se omogućila sigurna komunikacija između vaših korisnika i aplikacije Moodle (osobito NGINX web poslužitelja koji prima traži i dostavlja odgovore).

Možete kupiti SSL/TLS certifikat od komercijalnog CA ili koristiti Let’s Encrypt koji je besplatan i prepoznaju ga svi moderni web preglednici. Za ovaj vodič koristit ćemo Šifrirajmo.

19. Postavljanjem certifikata Let’s Encrypt automatski se upravlja pomoću alata certbot. Možete instalirati certbot i druge potrebne pakete pomoću sljedeće naredbe:

dnf install certbot python3-certbot-nginx

20. Zatim pokrenite sljedeću naredbu da dobijete certifikat Let's Encrypt i da Certbot automatski uredi vašu NGINX konfiguraciju kako bi je poslužio (on će također konfigurirati HTTP automatski preusmjeriti na HTTPS).

certbot --nginx

21. Zatim pokrenite sljedeću naredbu da biste omogućili automatsko obnavljanje certifikata 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. Zatim ažurirajte svoju Moodle konfiguraciju da počnete koristiti HTTPS.

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

promijenite wwwroot URL iz HTTP u HTTPS:

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

23. Na kraju, ali ne i najmanje važno, potvrdite da vaša Moodle stranica sada radi na HTTPS.

To je to za sada! Za više informacija i mogućnosti konfiguracije za pokretanje vaše nove platforme za učenje idite na web mjesto Moodle i pročitajte službenu dokumentaciju.