Jinsi ya Kufunga Jukwaa la Kujifunza la Moodle na Nginx katika CentOS 8


Moodle ndio mfumo maarufu zaidi wa usimamizi wa ujifunzaji duniani wa kujenga tovuti thabiti za kujifunza mtandaoni. Inaangazia anuwai ya shughuli na zana za kielimu ambazo unaweza kuchagua, inasaidia usimamizi wa tathmini na meli zilizo na vyeti maalum. Pia huwezesha mawasiliano na wanafunzi wako katika muda halisi kwa kutumia zana madhubuti ya mkutano wa video. Kando na hilo, iko tayari kwa simu, ili wanafunzi wako wajifunze kutoka kwa vifaa vyao vya rununu.

  • Mfumo wa Uendeshaji: usakinishaji mdogo zaidi wa rafu ya LEMP iliyosakinishwa.
  • Nafasi ya Diski: 200MB kwa Moodle, na 5GB pengine ni kiwango cha chini cha uhalisia cha kuhifadhi maudhui.
  • Kichakataji: 1GHz (min), 2GHz dual-core au zaidi inapendekezwa.
  • Kumbukumbu: 512MB (dk), 1GB au zaidi inapendekezwa. 8GB plus kuna uwezekano kwenye seva kubwa ya uzalishaji.

Katika ukurasa huu

  • Kuunda Rekodi ya DNS ya Kikoa kwa Tovuti ya Moodle
  • Kusakinisha Mfumo wa Kujifunza wa Moodle katika Seva ya CentOS 8
  • Kusanidi NGINX ili Kutumikia Tovuti ya Moodle
  • Kamilisha Usakinishaji wa Moodle kupitia Kisakinishi cha Wavuti
  • Washa HTTPS kwenye Tovuti ya Moodle Kwa Kutumia Let's Encrypt

1. Anza kwa kuunda kikoa kidogo ambacho watumiaji watatumia kufikia tovuti ya kujifunza mtandaoni ya Moodle. Kwa mfano, kama jina la kikoa chako ni testprojects.me, unaweza kuunda kikoa kidogo kiitwacho learning.testprojects.me.

Fungua mipangilio ya kina ya DNS ya jina la kikoa chako na uongeze A rekodi kama inavyoonyeshwa kwenye picha ifuatayo.

2. Kabla ya kusakinisha Moodle, hakikisha kuwa una viendelezi vya PHP vinavyohitajika kwenye seva yako, unaweza kutekeleza amri ifuatayo ili kuvisakinisha:

# 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. Kisha, tengeneza hifadhidata ya programu ya Moodle kama ifuatavyo.

# mysql -u root -p

Kisha unda hifadhidata, mtumiaji wa hifadhidata na unda nenosiri salama kwa matumizi.

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. Sasa pakua toleo jipya zaidi la Moodle (3.9 wakati wa kuandika) kutoka kwa tovuti rasmi ya mradi wa moodle, toa faili ya kumbukumbu na uihamishe kwenye webroot yako (/var/www/html/) saraka, kisha weka ruhusa zinazofaa na umiliki ili kuruhusu ufikiaji wa webserver kwenye saraka ya Moodle, kama ifuatavyo.

# 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. Kisha, unda saraka ya moodledata ambayo ni eneo la faili zinazopakiwa au kuundwa na kiolesura cha Moodle, kisha toa ruhusa na umiliki ufaao ili kuruhusu seva ya tovuti kuisoma na kuiandika:

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

6. Kisha, nenda kwenye saraka ya usakinishaji ya Moodle na uunde faili ya config.php kutoka kwa sampuli ya faili ya config.dist.php iliyotolewa, kisha uifungue kwa kuhaririwa ili kusanidi baadhi. mipangilio muhimu ya jukwaa lako la Moodle, kama vile vigezo vya muunganisho wa hifadhidata na eneo la tovuti na ambapo inaweza kupata saraka ya moodledata:

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

Weka aina sahihi ya hifadhidata, mwenyeji sahihi wa hifadhidata, jina la hifadhidata, na mtumiaji wa hifadhidata na nenosiri la mtumiaji.

$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. Weka pia URL inayotumiwa kufikia Moodle sit yako, hii inabainisha eneo la wwwroot ambapo faili zako za wavuti za Moodle zinapatikana, na pia dataroot (saraka ya moodledata):

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

8. Katika sehemu hii, unahitaji kusanidi NGINX ili kutumikia programu yako ya Moodle. Unahitaji kuunda kizuizi cha seva kwa ajili yake katika usanidi wa NGINX kama inavyoonyeshwa.

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

Nakili na ubandike usanidi ufuatao katika faili ya usanidi wa kuzuia seva. Badilisha jina la seva na jina la kikoa chako kilichoundwa hapo juu, na fastcgi_pass inapaswa kuelekeza kwa php-fpm (kumbuka kuwa kwenye CentOS 8, PHP-FPM inakubali maombi ya FastCGI kwa kutumia anwani iliyofafanuliwa kwenye /etc/nginx/conf.d/php- fpm.conf usanidi).

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

Hifadhi faili na uifunge.

9. Kisha angalia usanidi wa NGINX kwa usahihi, ikiwa ni Sawa, anzisha upya huduma za nginx na php-fpm ili kutumia mabadiliko ya hivi majuzi:

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

10. Ikiwa umewasha SELinux kwenye mfumo wako, basi endesha amri zifuatazo ili kuweka muktadha sahihi wa kufikia faili za wavuti za Moodle kwenye seva:

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

11. Kando na hayo, hakikisha kuwa huduma za HTTP na HTTPS zimefunguliwa kwenye ngome ili kuruhusu trafiki kwa seva ya wavuti ya NGINX:

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

12. Ili kufikia kisakinishi cha wavuti cha Moodle, fungua kivinjari chako cha wavuti, na usogeza kwa kutumia kikoa kidogo ulichounda hapo juu:

http://learning.testprojects.me

Mara tu ukurasa wa kukaribisha unapopakia soma sheria na masharti na ubofye Endelea.

13. Kisha, kisakinishi wavuti kitaangalia kama mfumo wako unakidhi mahitaji ya kuendesha tovuti ya Moodle ya toleo lililobainishwa. Unaweza kusogeza chini ili kuona maelezo zaidi.

14. Kisakinishi kitalalamika kuhusu HTTPS kutowezeshwa, kupuuza hitilafu hiyo kwa sasa (katika sehemu inayofuata, tutaonyesha jinsi ya kuwezesha HTTPS kwenye Moodle), na ubofye Endelea, ili kuanza usakinishaji halisi wa faili za wavuti.

15. Sasa kisakinishi kitaanza usakinishaji halisi wa faili za Moodle kama inavyoonyeshwa kwenye picha ya skrini ifuatayo. Mara tu imekamilika, bofya Endelea.

16. Katika hatua inayofuata, unahitaji kusasisha akaunti ya msimamizi wa tovuti yako ya Moodle kwa kusasisha jina la mtumiaji, nenosiri, jina la kwanza, na jina la ukoo, na anwani ya barua pepe. Kisha usogeza chini ukurasa na ubofye Sasisha Wasifu.

17. Kisha usasishe mipangilio ya ukurasa wa mbele wa tovuti ya Moodle. Kisha telezesha chini na ubofye Sasisha ili kuanza kutumia tovuti yako ya Moodle.

18. Kisha, unahitaji kusajili tovuti yako kwa kufuata maelekezo kwenye skrini. Unaweza kwenda kwenye dashibodi kwa kubofya Dashibodi.

HTTPS huongeza safu ya kwanza ya usalama kwenye tovuti yako ili kuwezesha mawasiliano salama kati ya watumiaji wako na programu ya Moodle (hasa seva ya wavuti ya NGINX ambayo hupokea maombi na kutoa majibu).

Unaweza kununua cheti cha SSL/TLS kutoka kwa CA ya kibiashara au utumie Let's Encrypt ambacho hakilipishwi na kinachotambuliwa na vivinjari vyote vya kisasa vya wavuti. Kwa mwongozo huu, tutatumia Hebu Tusimbe.

19. Usambazaji wa Cheti cha Let’s Encrypt unadhibitiwa kiotomatiki kwa kutumia zana ya certbot. Unaweza kusakinisha certbot na vifurushi vingine vinavyohitajika kwa amri ifuatayo:

# dnf install certbot python3-certbot-nginx

20. Kisha endesha amri ifuatayo ili kupata cheti cha Let’s Encrypt na uwe na Certbot kuhariri usanidi wako wa NGINX kiotomatiki ili kuitumikia (pia itasanidi HTTP kuelekezwa upya kiotomatiki kwa HTTPS).

# certbot --nginx

21. Kisha endesha amri ifuatayo ili kuwezesha usasishaji kiotomatiki wa cheti cha 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. Kisha, sasisha usanidi wako wa Moodle ili kuanza kutumia HTTPS.

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

badilisha URL ya wwwroot kutoka HTTP hadi HTTPS:

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

23. Mwisho kabisa, thibitisha kwamba tovuti yako ya Moodle  sasa inaendeshwa kwenye HTTPS.

Ni hayo kwa sasa! Kwa maelezo zaidi na chaguo za usanidi ili kuendesha jukwaa lako jipya la kujifunza, nenda kwenye tovuti ya Moodle, na usome hati rasmi.