CentOS 8-de Nginx bilen Moodle Learning platformasyny nädip gurmaly


Moodle, ygtybarly onlaýn okuw saýtlaryny gurmak üçin dünýäde iň meşhur okuw dolandyryş ulgamy. Onda saýlap boljak birnäçe çäräni we bilim gurallaryny özünde jemleýär, baha beriş dolandyryşyny we ýörite şahadatnamaly gämileri goldaýar. Şeýle hem, güýçli wideo konferensiýa guraly bilen hakyky wagtda okuwçylaryňyz bilen aragatnaşyk gurmaga mümkinçilik berýär. Mundan başga-da, okuwçylar ykjam enjamlaryndan öwrenip biler ýaly, ykjam taýýar.

  • Operasiýa ulgamy: LEMP stakany minimal gurnamak.
  • Disk giňişligi: Moodle üçin 200MB, 5GB bolsa mazmuny saklamagyň iň az mukdarydyr.
  • Prosessor: 1 GGs (min), 2GHz iki ýadroly ýa-da has köp maslahat berilýär.
  • oryat: 512MB (min), 1GB ýa-da ondanam köp maslahat berilýär. 8GB plýus uly önümçilik serwerinde bolmagy ähtimal.

Bu sahypada

  • Moodle web sahypasy üçin domen DNS ýazgysyny döretmek
  • CentOS 8 serwerinde Moodle Learning platformasyny gurmak
  • Moodle web sahypasyna hyzmat etmek üçin NGINX sazlamak
  • Web Gurnaýjy arkaly doly gurnama
  • Geliň şifrlemek arkaly Moodle saýtynda HTTPS-i işlediň

1. Ulanyjylaryň Moodle onlaýn okuw sahypasyna girmek üçin ulanjak subdomenini döretmekden başlaň. Mysal üçin, domen adyňyz testprojects.me bolsa, learning.testprojects.me atly kiçi domen döredip bilersiňiz.

Domen adyňyzyň ösen DNS sazlamalaryny açyň we aşakdaky suratda görkezilişi ýaly A ýazgy goşuň.

2. Moodle gurmazdan ozal serweriňizde zerur PHP giňeltmeleriniň bardygyna göz ýetiriň, olary gurmak üçin aşakdaky buýrugy işledip bilersiňiz:

# 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. Ondan soň, Moodle programmasy üçin maglumat bazasyny dörediň.

# mysql -u root -p

Soňra maglumat bazasyny, maglumat bazasyny ulanyjyny dörediň we ulanmak üçin ygtybarly parol dörediň.

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. Indi Moodle-iň iň soňky wersiýasyny (ýazylan wagty 3.9) resmi keýp taslamasynyň web sahypasyndan göçürip alyň, arhiw faýlyny çykaryň we web sahypaňyza geçiriň (/var/www/html/) katalog, soňra web serweriniň Moodle katalogyna aşakdaky ýaly girmegine rugsat bermek üçin degişli rugsatlary we eýeçiligi belläň.

# 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. Ondan soň, Moodle interfeýsi tarapyndan ýüklenen ýa-da döredilen faýllaryň ýerleşýän ýeri bolan “moodledata” katalogyny dörediň, soňra web serwerine okamaga we ýazmaga rugsat bermek üçin degişli rugsatlary we eýeçiligi belläň:

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

6. Ondan soň, Moodle gurnama katalogyna geçiň we berlen config.dist.php faýlyndan config.php faýly dörediň, soňra käbirlerini sazlamak üçin redaktirlemek üçin açyň. Moodle platformaňyz üçin esasy sazlamalar, maglumat bazasynyň birikdiriş parametrleri we sahypanyň ýerleşýän ýeri we moodledata katalogyny nireden tapyp bolar:

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

Maglumat bazasynyň dogry görnüşini, maglumat bazasynyň eýesini, maglumat bazasynyň adyny, maglumat bazasynyň ulanyjysyny we ulanyjynyň parolyny düzüň.

$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. Şeýle hem, Moodle oturgyjyňyza girmek üçin ulanylýan URL-ni düzüň, bu Moodle web faýllaryňyzyň ýerleşýän wwwroot-yň ýerleşýän ýerini, şeýle hem dataroot (moodledata katalogy) kesgitleýär:

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

8. Bu bölümde Moodle programmaňyza hyzmat etmek üçin NGINX sazlamaly. Görkezilişi ýaly NGINX konfigurasiýasynda onuň üçin serwer blokuny döretmeli.

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

Aşakdaky konfigurasiýany serwer blok konfigurasiýa faýlyna göçüriň. Serweriň adyny ýokarda döredilen subdomain adyňyz bilen çalyşyň we fastcgi_pass php-fpm görkezmelidir (CentOS 8-de, PHP-FPM /etc/nginx/conf.d/php- kesgitlenen adresi ulanyp, FastCGI haýyşlaryny kabul edýändigini ýadyňyzdan çykarmaň. fpm.conf konfigurasiýasy).

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

Faýly ýazdyryň we ýapyň.

9. Soňra NGINX konfigurasiýasynyň dogrulygyny barlaň, eger Ok bolsa, soňky üýtgeşmeleri ulanmak üçin nginx we php-fpm hyzmatlaryny täzeden açyň:

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

10. Ulgamyňyzda SELinux açyk bolsa, serwerdäki Moodle web faýllaryna girmek üçin dogry kontekst bellemek üçin aşakdaky buýruklary işlediň:

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

11. Mundan başga-da, NGINX web serwerine traffige ýol açmak üçin diwar diwarynda HTTP we HTTPS hyzmatlarynyň açyk bolmagyny üpjün ediň:

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

12. Moodle web gurnaýjysyna girmek üçin web brauzeriňizi açyň we ýokarda döreden kiçi domeniňizi ulanyp geziň:

http://learning.testprojects.me

Hoş geldiňiz sahypasy ýüklenenden soň, şertleri we şertleri okaň we Dowam et düwmesine basyň.

13. Ondan soň, web gurnaýjy, ulgamyňyzyň görkezilen wersiýanyň Moodle sahypasyny işletmek üçin talaplara laýyk gelýändigini ýa-da ýokdugyny barlar. Has giňişleýin maglumat üçin aşak aýlap bilersiňiz.

14. Gurnaýjy HTTPS-iň işlemeýändiginden zeýrener, bu ýalňyşlygy häzirlikçe äsgermezlik eder (indiki bölümde Moodle-de HTTPS-i nädip işletmelidigini görkezeris) we web faýllaryny hakyky gurnamaga başlamak üçin Dowam et düwmesine basyň.

15. Indi gurnaýjy, aşakdaky skrinshotda görkezilişi ýaly Moodle faýllaryny hakyky gurnamaga başlar. Tamam bolansoň, Dowam et düwmesine basyň.

16. Indiki ädimde, ulanyjy adyny, parolyny, familiýasyny we familiýasyny we e-poçta salgysyny täzeläp, Moodle sahypasynyň dolandyryjy hasabyny täzelemeli. Soňra sahypany aşak aýlaň we Profili täzele düwmesine basyň.

17. Soňra Moodle sahypasynyň birinji sahypasynyň sazlamalaryny täzeläň. Soňra aşak aýlaň we Moodle sahypaňyzy ulanyp başlamak üçin Täzelenmä basyň.

18. Ondan soň, ekrandaky görkezmelere eýerip, sahypaňyzy hasaba almaly. Dolandyryş paneline basyp, dolandyryş paneline girip bilersiňiz.

HTTPS ulanyjylaryňyz bilen Moodle programmasy (esasanam haýyşlary kabul edýän we jogaplary berýän NGINX web serweri) arasynda ygtybarly aragatnaşyk gurmak üçin sahypaňyza ilkinji howpsuzlyk gatlagyny goşýar.

Täjirçilik CA-dan SSL/TLS şahadatnamasyny satyn alyp bilersiňiz ýa-da häzirki zaman web brauzerleri tarapyndan mugt we ykrar edilen “Let Encrypt” -i ulanyp bilersiňiz. Bu gollanma üçin “Geliň şifrlemek” ulanarys.

19. Geliň, şifrlemek şahadatnamasynyň ýerleşdirilmegi, sertbot guralynyň kömegi bilen awtomatiki usulda dolandyrylýar. Certbot we beýleki zerur paketleri aşakdaky buýruk bilen gurnap bilersiňiz:

# dnf install certbot python3-certbot-nginx

20. Soňra “Şifrlemek” şahadatnamasyny almak we “Certbot” -a hyzmat etmek üçin NGINX konfigurasiýaňyzy awtomatiki redaktirlemek üçin aşakdaky buýrugy işlediň (bu hem HTTP-ni awtomatiki usulda HTTPS-e ugrukdyrar).

# certbot --nginx

21. Soňra “Geliň şifrlemek SSL/TLS” şahadatnamasynyň awtomatiki täzelenmegini üpjün etmek üçin aşakdaky buýrugy işlediň:

# 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. Ondan soň, HTTPS ulanyp başlamak üçin Moodle konfigurasiýaňyzy täzeläň.

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

wwwroot URL-ni HTTP-den HTTPS-e üýtgediň:

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

23. Iň soňkusy, Moodle sahypaňyzyň indi HTTPS-de işleýändigini tassyklaň.

Häzirlikçe! Täze okuw platformaňyzy işletmek üçin has giňişleýin maglumat we konfigurasiýa opsiýalary üçin Moodle web sahypasyna giriň we resmi resminamalary okaň.