Hvernig á að setja upp Moodle Learning Platform með Nginx í CentOS 8


Moodle er vinsælasta námsstjórnunarkerfi heims til að byggja upp öflugar námssíður á netinu. Það býður upp á úrval af starfsemi og fræðsluverkfærum sem þú getur valið úr, það styður matsstjórnun og skip með sérsniðnum vottorðum. Það gerir einnig samskipti við nemendur þína í rauntíma með öflugu myndbandsráðstefnutæki. Að auki er það farsímatilbúið, svo nemendur þínir geta lært af farsímum sínum.

  • Stýrikerfi: lágmarks uppsetning á LEMP stafla uppsett.
  • Diskapláss: 200MB fyrir Moodle og 5GB er líklega raunhæft lágmark til að geyma efni.
  • Örgjörvi: 1GHz (mín.), 2GHz tvíkjarna eða meira mælt með.
  • Minni: 512MB (mín.), 1GB eða meira er mælt með. 8GB plús er líklega á stórum framleiðsluþjóni.

Á þessari síðu

  • Búa til DNS-skrá fyrir lén fyrir Moodle vefsíðu
  • Uppsetning Moodle Learning Platform í CentOS 8 Server
  • Stilling NGINX til að þjóna Moodle vefsíðu
  • Ljúktu Moodle uppsetningu í gegnum vefuppsetningarforrit
  • Virkjaðu HTTPS á Moodle-síðu með Let's Encrypt

1. Byrjaðu á því að búa til undirlén sem notendur munu nota til að fá aðgang að Moodle-námssíðunni á netinu. Til dæmis, ef lénið þitt er testprojects.me, geturðu búið til undirlén sem heitir learning.testprojects.me.

Opnaðu háþróaðar DNS-stillingar lénsins þíns og bættu við A færslu eins og sýnt er á eftirfarandi mynd.

2. Áður en þú setur upp Moodle skaltu ganga úr skugga um að þú hafir nauðsynlegar PHP viðbætur á netþjóninum þínum, þú getur keyrt eftirfarandi skipun til að setja þær upp:

# 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. Næst skaltu búa til gagnagrunn fyrir Moodle forritið sem hér segir.

# mysql -u root -p

Búðu síðan til gagnagrunninn, gagnagrunnsnotandann og búðu til öruggt lykilorð fyrir notkunina.

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. Sæktu nú nýjustu útgáfuna af Moodle (3.9 þegar þetta er skrifað) af opinberu moodle verkefnisvefsíðunni, dragðu út skjalasafnið og færðu hana inn í vefrótina þína (/var/www/html/) möppu, stilltu síðan viðeigandi heimildir og eignarhald til að leyfa vefþjóninum aðgang að Moodle skránni, eins og hér segir.

# 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. Næst skaltu búa til moodledata möppuna sem er staðsetning skráa sem eru hlaðnar upp eða búnar til af Moodle viðmótinu, úthlutaðu síðan viðeigandi heimildum og eignarhaldi til að leyfa vefþjóninum að lesa og skrifa aðgang að honum:

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

6. Næst skaltu fara inn í Moodle uppsetningarskrána og búa til config.php skrá úr sýnishorninu af config.dist.php skránni sem fylgir, opnaðu hana svo til að breyta til að stilla nokkrar lykilstillingar fyrir Moodle vettvang þinn, svo sem gagnagrunnstengingarfæribreytur og staðsetningu vefsvæðisins og hvar það getur fundið moodledata möppuna:

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

Stilltu rétta gagnagrunnsgerð, réttan gagnagrunnshýsil, gagnagrunnsheiti og gagnagrunnsnotanda og lykilorð notandans.

$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. Stilltu líka slóðina sem notuð er til að fá aðgang að Moodle sitinu þínu, þetta tilgreinir staðsetningu wwwrootsins þar sem Moodle vefskrárnar þínar eru staðsettar, og einnig datarót (moodledata möppunni):

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

8. Í þessum hluta þarftu að stilla NGINX til að þjóna Moodle forritinu þínu. Þú þarft að búa til netþjónsblokk fyrir það í NGINX stillingunum eins og sýnt er.

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

Afritaðu og límdu eftirfarandi stillingar í stillingarskrá miðlarablokkarinnar. Skiptu út netþjónsnafninu fyrir undirlénið þitt sem búið var til hér að ofan, og fastcgi_pass ætti að benda á php-fpm (athugaðu að á CentOS 8 samþykkir PHP-FPM FastCGI beiðnir með því að nota heimilisfangið sem er skilgreint í /etc/nginx/conf.d/php- fpm.conf stillingar).

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

Vistaðu skrána og lokaðu henni.

9. Athugaðu síðan hvort NGINX stillingar séu réttar, ef hún er í lagi skaltu endurræsa nginx og php-fpm þjónusturnar til að beita nýlegum breytingum:

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

10. Ef þú ert með SELinux virkt á kerfinu þínu skaltu keyra eftirfarandi skipanir til að stilla rétt samhengi fyrir aðgang að Moodle vefskrám á þjóninum:

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

11. Að auki, vertu viss um að HTTP og HTTPS þjónustan sé opin í eldveggnum til að leyfa umferð á NGINX vefþjóninn:

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

12. Til að fá aðgang að Moodle vefuppsetningarforritinu skaltu opna vafrann þinn og fletta með því að nota undirlénið sem þú bjóst til hér að ofan:

http://learning.testprojects.me

Þegar velkomin síða hleðst í gegnum skilmálana og skilyrðin og smelltu á Halda áfram.

13. Næst mun vefuppsetningarforritið athuga hvort kerfið þitt uppfylli kröfurnar til að keyra Moodle-síðu af tilgreindri útgáfu. Þú getur skrunað niður til að skoða frekari upplýsingar.

14. Uppsetningarforritið mun kvarta yfir því að HTTPS sé ekki virkt, hunsa þá villu í bili (í næsta kafla munum við sýna hvernig á að virkja HTTPS á Moodle), og smella á Halda áfram, til að hefja raunverulega uppsetningu á vefskránum.

15. Nú mun uppsetningarforritið hefja raunverulega uppsetningu á Moodle skránum eins og sýnt er á eftirfarandi skjámynd. Þegar því er lokið skaltu smella á Halda áfram.

16. Í næsta skrefi þarftu að uppfæra stjórnandareikning Moodle síðunnar þinnar með því að uppfæra notandanafn, lykilorð, fornafn og eftirnafn og netfang. Skrunaðu síðan niður síðuna og smelltu á Uppfæra prófíl.

17. Uppfærðu síðan forsíðustillingar Moodle síðunnar. Skrunaðu síðan niður og smelltu á Uppfæra til að byrja að nota Moodle-síðuna þína.

18. Næst þarftu að skrá síðuna þína með því að fylgja leiðbeiningunum á skjánum. Þú getur farið á mælaborðið með því að smella á mælaborðið.

HTTPS bætir fyrsta laginu af öryggi við síðuna þína til að gera örugg samskipti milli notenda þinna og Moodle forritsins (sérstaklega NGINX vefþjónninn sem tekur við beiðnum og skilar svörum).

Þú getur annað hvort keypt SSL/TLS vottorð frá verslunar-CA eða notað Let's Encrypt sem er ókeypis og viðurkennt af öllum nútíma vöfrum. Fyrir þessa handbók munum við nota Við skulum dulkóða.

19. Dreifing Let's Encrypt Certificate er stjórnað sjálfkrafa með því að nota certbot tólið. Þú getur sett upp certbot og aðra nauðsynlega pakka með eftirfarandi skipun:

# dnf install certbot python3-certbot-nginx

20. Keyrðu síðan eftirfarandi skipun til að fá Let's Encrypt vottorð og láta Certbot breyta NGINX stillingunum þínum sjálfkrafa til að þjóna henni (það mun einnig stilla HTTP til að vera vísað sjálfkrafa til HTTPS).

# certbot --nginx

21. Keyrðu síðan eftirfarandi skipun til að virkja sjálfvirka endurnýjun Let's Encrypt SSL/TLS vottorðsins:

# 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. Næst skaltu uppfæra Moodle stillingarnar þínar til að byrja að nota HTTPS.

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

breyttu wwwroot vefslóðinni úr HTTP í HTTPS:

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

23. Síðast en ekki síst, staðfestu að Moodle síðan þín sé nú keyrð á HTTPS.

Það er það í bili! Fyrir frekari upplýsingar og stillingarmöguleika til að keyra nýja námsvettvanginn þinn, farðu á Moodle vefsíðuna og lestu í gegnum opinberu skjölin.