Kaip „CentOS 8“ įdiegti „Moodle“ mokymosi platformą su „Nginx“


„Moodle“ yra populiariausia pasaulyje mokymosi valdymo sistema, skirta kurti patikimas internetines mokymosi svetaines. Jame yra daugybė veiklų ir mokymo priemonių, kurias galite pasirinkti, ji palaiko vertinimo valdymą ir teikia užsakymą. Tai taip pat leidžia realiu laiku bendrauti su savo studentais naudojant galingą vaizdo konferencijų įrankį. Be to, ji yra parengta mobiliesiems, todėl jūsų mokiniai gali mokytis iš savo mobiliųjų įrenginių.

  • Operacinė sistema: įdiegtas minimalus LEMP kamino įrengimas.
  • Disko vieta: 200 MB „Moodle“ ir 5 GB tikriausiai yra realus turinio saugojimo minimumas.
  • Procesorius: 1 GHz (min.), 2 GHz dviejų branduolių ar daugiau rekomenduojamas.
  • Atmintis: rekomenduojama 512 MB (min.), 1 GB ar daugiau. 8 GB plius greičiausiai yra dideliame gamybos serveryje.

Šiame puslapyje

  • Domeno DNS įrašo kūrimas „Moodle“ svetainei
  • „Moodle“ mokymosi platformos diegimas „CentOS 8 Server“
  • „NGINX“ konfigūravimas teikti „Moodle“ svetainę
  • Užbaigti „Moodle“ diegimą per žiniatinklio diegimo programą
  • Įjunkite HTTPS „Moodle“ svetainėje naudodami šifravimą

1. Pradėkite nuo padomenio sukūrimo, kurį vartotojai naudos norėdami patekti į „Moodle“ internetinę mokymosi svetainę. Pavyzdžiui, jei jūsų domeno vardas yra testprojects.me , galite sukurti padomenį, vadinamą learning.testprojects.me .

Atidarykite išplėstinius domeno vardo DNS nustatymus ir pridėkite A įrašą, kaip parodyta šiame paveikslėlyje.

2. Prieš diegdami „Moodle“, įsitikinkite, kad serveryje turite reikiamus PHP plėtinius. Norėdami juos įdiegti, galite paleisti šią komandą:

# 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. Tada sukurkite „Moodle“ programos duomenų bazę taip.

# mysql -u root -p

Tada sukurkite duomenų bazę, duomenų bazės vartotoją ir sukurkite saugų slaptažodį.

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. Dabar atsisiųskite naujausią „Moodle“ versiją (rašymo metu - 3.9) iš oficialios „moodle“ projekto svetainės, ištraukite archyvo failą ir perkelkite jį į savo interneto šaknį (/var/www/html/) katalogą, tada nustatykite tinkamas teises ir nuosavybės teises, kad žiniatinklio serveris galėtų pasiekti „Moodle“ katalogą taip:

# 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. Tada sukurkite katalogą moodledata, kuris yra failų, įkeliamų ar sukurtų naudojant „Moodle“ sąsają, vieta, tada priskirkite atitinkamas teises ir nuosavybės teises, kad žiniatinklio serveris galėtų ją skaityti ir rašyti:

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

6. Tada pereikite į „Moodle“ diegimo katalogą ir sukurkite failą config.php iš pateikto config.dist.php failo pavyzdžio, tada atidarykite jį redaguoti, kad sukonfigūruotumėte kai kuriuos pagrindiniai „Moodle“ platformos nustatymai, pvz., duomenų bazės ryšio parametrai ir svetainės vieta bei vieta, kur ji gali rasti „moodledata“ katalogą:

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

Nustatykite teisingą duomenų bazės tipą, teisingą duomenų bazės pagrindinį kompiuterį, duomenų bazės pavadinimą ir duomenų bazės vartotoją bei vartotojo slaptažodį.

$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. Taip pat nustatykite URL, naudojamą prieigai prie „Moodle“ sėdėjimo, čia nurodoma „wwwroot“ vieta, kurioje yra jūsų „Moodle“ žiniatinklio failai, taip pat duomenų paleidimas („moodledata“ katalogas):

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

8. Šiame skyriuje turite sukonfigūruoti „NGINX“, kad jis būtų naudojamas jūsų „Moodle“ programai. Jums reikia sukurti serverio bloką NGINX konfigūracijoje, kaip parodyta.

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

Nukopijuokite ir įklijuokite šią konfigūraciją serverio bloko konfigūracijos faile. Pakeiskite serverio pavadinimą aukščiau sukurtu padomenio pavadinimu, o „fastcgi_pass“ turėtų nukreipti į php-fpm (atminkite, kad „CentOS 8“ PHP-FPM priima „FastCGI“ užklausas naudodamas adresą, nurodytą /etc/nginx/conf.d/php- fpm.conf konfigūracija).

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

Išsaugokite failą ir uždarykite jį.

9. Tada patikrinkite, ar NGINX konfigūracijoje nėra teisingumo, jei tai gerai, iš naujo paleiskite „nginx“ ir „php-fpm“ paslaugas, kad pritaikytumėte naujausius pakeitimus:

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

10. Jei sistemoje įgalinote „SELinux“, paleiskite šias komandas, kad nustatytumėte teisingą kontekstą, kaip pasiekti Moodle žiniatinklio failus serveryje:

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

11. Be to, įsitikinkite, kad ugniasienėje yra atidarytos HTTP ir HTTPS paslaugos, kad srautas būtų nukreiptas į NGINX žiniatinklio serverį:

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

12. Norėdami pasiekti „Moodle“ žiniatinklio diegimo programą, atidarykite savo žiniatinklio naršyklę ir naršykite naudodami aukščiau sukurtą padomenį:

http://learning.testprojects.me

Įkėlus sveikinimo puslapį, perskaitykite sąlygas ir spustelėkite Tęsti.

13. Tada žiniatinklio diegimo programa patikrins, ar jūsų sistema atitinka nurodytos versijos „Moodle“ svetainės vykdymo reikalavimus. Galite slinkti žemyn, kad peržiūrėtumėte daugiau informacijos.

14. Diegimo programa skundžiasi, kad HTTPS neįjungtas, kol kas nepaisys šios klaidos (kitame skyriuje parodysime, kaip įgalinti HTTPS „Moodle“) ir spustelėkite Tęsti, kad pradėtumėte faktinį žiniatinklio failų diegimą.

15. Dabar diegimo programa pradės tikrąjį „Moodle“ failų diegimą, kaip parodyta kitoje ekrano kopijoje. Kai tai bus baigta, spustelėkite Tęsti.

16. Kitame žingsnyje turite atnaujinti savo „Moodle“ svetainės administratoriaus abonementą atnaujindami vartotojo vardą, slaptažodį, vardą, pavardę ir el. Pašto adresą. Tada slinkite žemyn ir spustelėkite Atnaujinti profilį.

17. Tada atnaujinkite „Moodle“ svetainės pirmojo puslapio nustatymus. Tada slinkite žemyn ir spustelėkite „Atnaujinti“, kad pradėtumėte naudoti „Moodle“ svetainę.

18. Tada turite užregistruoti savo svetainę vykdydami ekrane pateikiamas instrukcijas. Galite pereiti prie informacijos suvestinės spustelėdami prietaisų skydelį.

HTTPS prideda pirmą saugos lygį jūsų svetainėje, kad būtų užtikrintas saugus ryšys tarp jūsų vartotojų ir „Moodle“ programos (ypač „NGINX“ žiniatinklio serverio, kuris priima užklausas ir pateikia atsakymus).

Galite įsigyti SSL/TLS sertifikatą iš komercinės CA arba naudoti nemokamą „Let’s Encrypt“, kurį atpažįsta visos šiuolaikinės žiniatinklio naršyklės. Šiam vadovui naudosime šifravimą.

19. „Let’s Encrypt Certificate“ diegimas automatiškai valdomas naudojant „certbot“ įrankį. „Certbot“ ir kitus reikalingus paketus galite įdiegti naudodami šią komandą:

# dnf install certbot python3-certbot-nginx

20. Tada paleiskite šią komandą, norėdami gauti „Let’s Encrypt“ sertifikatą, ir paprašykite „Certbot“ automatiškai redaguoti jūsų NGINX konfigūraciją, kad ji būtų teikiama (ji taip pat sukonfigūruos HTTP automatiškai nukreipti į HTTPS).

# certbot --nginx

21. Tada paleiskite šią komandą, kad būtų galima automatiškai atnaujinti „Let’s Encrypt SSL/TLS“ sertifikatą:

# 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. Tada atnaujinkite „Moodle“ konfigūraciją, kad pradėtumėte naudoti HTTPS.

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

pakeisti wwwroot URL iš HTTP į HTTPS:

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

23. Paskutinis, bet ne mažiau svarbus dalykas - patvirtinkite, kad jūsų „Moodle“ svetainė dabar veikia naudojant HTTPS.

Kol kas tiek! Norėdami gauti daugiau informacijos ir konfigūravimo parinkčių, kaip paleisti naują mokymosi platformą, eikite į „Moodle“ svetainę ir perskaitykite oficialius dokumentus.