Kako instalirati Moodle Learning Platformu sa Nginxom u CentOS 8


Moodle je najpopularniji svjetski sistem za upravljanje učenjem za izgradnju robusnih web stranica za učenje na mreži. Sadrži niz aktivnosti i obrazovnih alata između kojih možete birati, podržava upravljanje ocjenjivanjem i isporučuje se s prilagođenim certifikatima. Takođe omogućava komunikaciju sa vašim učenicima u realnom 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 servera

  • Operativni sistem: minimalna instalacija CentOS 8 ili RHEL 8 servera sa instaliranim LEMP stekom.
  • Prostor na disku: 200MB za Moodle, a 5GB je vjerovatno realan minimum za pohranjivanje sadržaja.
  • Procesor: 1GHz (min), 2GHz dual-core ili više preporučeno.
  • Memorija: 512MB (min), preporučuje se 1GB ili više. 8GB plus je vjerovatno na velikom proizvodnom serveru.

Na ovoj stranici

  • Kreiranje domenskog DNS zapisa za Moodle web stranicu
  • Instalacija Moodle Learning Platforme u CentOS 8 Server
  • Konfiguriranje NGINX-a za posluživanje Moodle web stranice
  • Završite instalaciju Moodlea putem Web Installer-a
  • Omogućite HTTPS na Moodle web lokaciji koristeći Let’s Encrypt

Kreiranje domenskog DNS zapisa za Moodle web stranicu

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

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

Instalacija Moodlea u CentOS 8 Server

2. Prije instaliranja Moodlea, uvjerite se da imate potrebne PHP ekstenzije na vašem serveru, 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 kreirajte bazu podataka za Moodle aplikaciju kako slijedi.

mysql -u root -p

Zatim kreirajte bazu podataka, korisnika baze podataka i kreirajte 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 zvanične web stranice moodle projekta, izvucite arhivsku datoteku i premjestite ga u svoj webroot (/var/www/html/) direktorij, a zatim postavite odgovarajuće dozvole i vlasništvo da omogućite pristup web serveru 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 kreirajte moodledata direktorij koji je lokacija datoteka koje su učitane ili kreirane pomoću Moodle sučelja, zatim dodijelite odgovarajuća dopuštenja i vlasništvo da omogući web serveru 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 idite u Moodle instalacijski direktorij i kreirajte datoteku config.php iz uzorka config.dist.php datoteku, a zatim je otvorite za uređivanje kako biste konfigurirali neke ključne postavke za vašu Moodle platformu, kao što su parametri veze s bazom podataka i lokacija web lokacije i gdje može pronaći direktorij moodledata:

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

Postavite ispravan tip baze podataka, ispravan host baze podataka, ime 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 sjedištu, ovo određuje lokaciju wwwroot gdje se nalaze vaši Moodle web fajlovi, i također dataroot (moodledata direktorij):

$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 morate konfigurirati NGINX da služi vašu Moodle aplikaciju. Morate kreirati serverski blok za njega u NGINX konfiguraciji kao što je prikazano.

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

Kopirajte i zalijepite sljedeću konfiguraciju u konfiguracijski fajl bloka servera. Zamijenite ime servera s vašim imeom poddomene kreiranim iznad, a fastcgi_pass bi trebao upućivati na php-fpm (napomena da na CentOS 8, PHP-FPM prihvata FastCGI zahtjeve koristeći adresu definiranu u /etc/nginx/conf.d/ php-fpm.conf konfiguraciju).

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

Sačuvajte datoteku i zatvorite je.

9. Zatim provjerite ispravnost konfiguracije NGINX, ako je U redu, ponovo 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 sistemu, tada pokrenite sljedeće komande da postavite ispravan kontekst za pristup Moodle web datotekama na server:

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

11. Osim toga, osigurajte da su HTTP i HTTPS usluge otvorene u firewall-u kako biste omogućili promet na NGINX web server:

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

Završite instalaciju Moodlea putem Web Installer-a

12. Za pristup Moodle web instalacijskom programu, otvorite svoj web preglednik i navigirajte koristeći poddomenu koju ste kreirali iznad:

http://learning.testprojects.me

Kada se stranica dobrodošlice učita, pročitajte odredbe i uslove i kliknite Nastavi.

13. Zatim će web instalater provjeriti da li vaš sistem ispunjava zahtjeve za pokretanje Moodle stranice navedene verzije. Možete se pomicati prema dolje da vidite više informacija.

14. Instalater će se žaliti da HTTPS nije omogućen, zanemarite tu grešku za sada (u sljedećem odjeljku ćemo pokazati kako omogućiti HTTPS na Moodleu) i kliknite Nastavi, da započnete stvarnu instalaciju web datoteka.

15. Sada će instalater započeti stvarnu instalaciju Moodle datoteka kao što je prikazano na sljedećem snimku ekrana. Kada se završi, kliknite na Nastavi.

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

17. Zatim ažurirajte postavke naslovne stranice Moodle web stranice. Zatim se pomaknite prema dolje i kliknite Ažuriraj da počnete koristiti svoju Moodle stranicu.

18. Zatim morate registrirati svoju web lokaciju slijedeći uputstva na ekranu. Možete otići na kontrolnu tablu klikom na kontrolnu tablu.

Postavljanje HTTPS-a na Moodle web-mjestu koristeći Let’s Encrypt

HTTPS dodaje prvi sloj sigurnosti vašoj web lokaciji kako bi omogućio sigurnu komunikaciju između vaših korisnika i Moodle aplikacije (posebno NGINX web servera 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 prepoznat od strane svih modernih web pretraživača. Za ovaj vodič koristit ćemo Let’s Encrypt.

19. Šifrirajmo Certifikat se automatski upravlja pomoću alata certbot. Možete instalirati certbot i druge potrebne pakete sa sljedećom naredbom:

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 (također će konfigurirati HTTP se automatski preusmjerava na HTTPS).

certbot --nginx

21. Zatim pokrenite sljedeću naredbu da omogućite automatsku obnovu certifikata 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 opcija konfiguracije za pokretanje vaše nove platforme za učenje, idite na Moodle web stranicu i pročitajte zvaničnu dokumentaciju.