Otu esi etinye Platform mmụta Moodle na Ubuntu 20.04


Moodle bụ usoro nlekọta mmụta n'ịntanetị (e-learning) kachasị ewu ewu n'ụwa, nke siri ike, n'efu na nke mepere emepe wuru maka webụ na mkpanaka. Ọ na-enye ọtụtụ ihe omume na ngwa nkuzi nke na-enyere ụlọ akwụkwọ, mahadum, na ụlọ ọrụ ndị metụtara ya aka inye ụmụ akwụkwọ usoro mmụta na-agbanwe agbanwe n'oge ọ bụla, ebe ọ bụla, na-enweghị nkwụsị na usoro ha na usoro ọmụmụ ha.

Ụfọdụ n'ime atụmatụ ya n'ozuzu gụnyere ihe ọgbara ọhụrụ, dị mfe iji, dashboard ahaziri ahazi, ngwa ọrụ na mmemme, kalenda niile n'ime otu, njikwa faịlụ dị mma, nchịkọta ederede dị mfe nghọta, ọkwa ọkwa, na ọganihu egwu.

N'ụzọ dị mkpa, Moodle nwekwara ike ịgbatị nke ukwuu site na iji ihe karịrị puku plugins na-akwado mmemme mgbakwunye, ngọngọ, gburugburu, na ọtụtụ ndị ọzọ.

N'isiokwu a, ị ga-amụta ka esi etinye usoro mmụta Moodle kachasị ọhụrụ na NGINX na MySQL/MariaDB nchekwa data na Ubuntu 20.04 na nsụgharị ochie.

  • Akụnyere LEMP Stack arụnyere ọhụrụ.

Ozugbo ị wụnyela nchịkọta LEMP na sava Ubuntu, ị nwere ike ịga n'ihu iji guzobe Moodle na ihe nkesa dị ka akọwara n'okpuru.

Na ibe a

  • Ịtọlite ndekọ DNS maka ngwa Moodle
  • Ịwụnye Moodle na sava Ubuntu
  • Na-ahazi NGINX iji jeere ngwa Moodle ozi
  • Emecha nwụnye Moodle site na nwụnye Weebụ
  • Kwado HTTPS na Ngwa Moodle Iji Ka Anyị Encrypt

1. N'ihi na ọrụ iji nweta gị Moodle atụ mkpa ka ịmepụta a subdomain maka ya, otú, mkpa ka ị mepụta DNS A ndekọ iji nweta nke a. Maka ntuziaka a, ngalaba ule anyị bụ testprojects.me, yabụ anyị kwesịrị ịmepụta ngalaba subdomain, dịka ọmụmaatụ, learning.testprojects.me.

Ya mere, banye n'ime ebe nrụọrụ weebụ onye na-edeba aha gị wee nweta ntọala dị elu nke ngalaba gị, pịa Tinye New ndekọ nke ụdị A, onye ọbịa kwesịrị ịbụ mmụta (ma ọ bụ okwu ọ bụla nke nhọrọ gị). ), na uru kwesịrị ịbụ adreesị IP ọha nke sava Ubuntu gị.

2. Ọzọ, ịkwesịrị ịwụnye mgbakwunye PHP na ọba akwụkwọ nke Moodle chọrọ site na iji njikwa ngwugwu dabara adaba dị ka egosiri.

$ sudo apt update
$ sudo apt 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. Ọzọ, mepụta nchekwa data maka usoro Moodle gị. Banye na shei nchịkwa nchekwa data MySQL wee mepụta nchekwa data dị ka egosiri:

$ sudo mysql

MariaDB [(none)]> CREATE DATABASE moodle;
MariaDB [(none)]> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodle.* TO 'moodleadmin'@'localhost' IDENTIFIED BY '[email ';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> quit;

4. Dịka e kwuru na mbụ, maka ntuziaka a, anyị ga-ebudata ma wụnye ụdị Moodle kachasị ọhụrụ (ụdị 3.9 n'oge ederede). Gbaa iwu ls ndị a iji gosi na akwụkwọ ndekọ moodle dị n'okpuru /var/www/html/ dị ka egosiri.

$ wget -c https://download.moodle.org/download.php/direct/stable39/moodle-latest-39.tgz
$ sudo tar -zvxf moodle-latest-39.tgz -C /var/www/html/
$ ls /var/www/html/

5. Ọzọ, tọọ ikike kwesịrị ekwesị na ndekọ Moodle site na ịme iwu ndị a.

$ sudo chown www-data:www-data -R /var/www/html/moodle
$ sudo chmod 775 -R /var/www/html/moodle

6. Ọzọ, mepụta akwụkwọ ndekọ data Moodle, ebe Moodle nwere ike chekwaa faịlụ ebugoro wee tọọ ikike ya dịka egosiri.

$ sudo mkdir -p /var/moodledata
$ sudo chmod 775 -R /var/moodledata
$ sudo chown www-data:www-data -R  /var/moodledata

7. Mgbe ahụ mepụta faịlụ nhazi isi Moodle site na faịlụ nhazi nhazi nke enyere na ngwugwu, mepee ya.

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

Chọta ngalaba nhazi nchekwa data, wee hazie nchekwa data ebe a ga-echekwa data Moodle niile, dị ka egosiri na nseta ihuenyo na-esonụ:

$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    = 'moodle';     // database name, eg moodle
$CFG->dbuser    = 'moodleadmin';   // your database username
$CFG->dbpass    = '[email ';   // your database password
$CFG->prefix    = 'mdl_';       // prefix to use for all table names

Ọzọkwa, hazie ọnọdụ weebụsaịtị Moodle yana ebe ndekọ data Moodle dị ka egosiri.

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

Chekwaa mmechi faịlụ. Hazie NGINX ka ọ bụrụ sava saịtị Moodle gị dịka akọwara na ngalaba na-esote.

8. Maka NGINX iji mee ka saịtị Moodle gị rụọ ọrụ, ịkwesịrị ịmepụta nhazi ngọngọ nkesa ọhụrụ n'okpuru nhazi NGINX, na ndekọ /etc/nginx/conf.d/.

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

Detuo na mado nhazi ndị a na ya, jiri subdomain gị dochie learning.testprojects.me. N'akụkụ, iwu fastcgi_pass kwesịrị ịrụtụ aka na adreesị nke PHP-FPM na-anabata arịrịọ FastCGI (lelee faịlụ /etc/php/7.4/fpm/pool.d/www.conf maka ozi ndị ọzọ) .

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           unix:/run/php/php7.4-fpm.sock;
        include                 /etc/nginx/mime.types;
        include                 fastcgi_params;
        fastcgi_param           PATH_INFO       $fastcgi_path_info;
        fastcgi_param           SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}

Chekwaa faịlụ ma mechie ya.

9. Na-esote, nyochaa na nhazi NGINX dị mma mgbe ịmechara mgbanwe ndị a dị n'elu, wee maliteghachi ọrụ NGINX nke ọma.

$ sudo nginx -t
$ sudo systemctl reload nginx

10. Ugbu a mepee ihe nchọgharị weebụ wee gaa na iji subdomain gị, dịka ọmụmaatụ, learning.testprojects.me iji nweta ihe nrụnye weebụ Moodle.

http://learning.testprojects.me

Ozugbo ibe nnabata ahụ buru ibu, gụọ ozi ahụ wee pịa Gaa n'ihu.

11. Ọzọ, installer ga-elele ma gị usoro na-emezu ihe ndị a chọrọ, ma ọ bụrụ na ihe niile dị mma, gbadaa na pịa Gaa n'ihu na-amalite n'ezie echichi nke faịlụ na mwube nchekwa data schema.

Rịba ama na installer ga-egosi ịdọ aka ná ntị gbasara saịtị anaghị arụ ọrụ na HTTPS, leghara ịdọ aka ná ntị anya ugbu a. Na ngalaba ikpeazụ, anyị ga-ekpuchi otu esi eme HTTPS na Moodle site na iji asambodo Let's Encrypt free.

Ozugbo echichi mechara, pịa Gaa n'ihu.

12. Ọzọ, hazie akaụntụ nchịkwa Moodle gị site na ịmepụta aha njirimara akaụntụ, paswọọdụ, aha mbụ na nna nna, na adreesị ozi-e. Wee pịgharịa gaa na ala wee pịa Melite Akaụntụ.

13. Ọzọ, hazie ntọala saịtị Moodle n'ihu dị ka egosiri na nseta ihuenyo na-esonụ. Wee pịgharịa gaa na ala wee pịa Mmelite.

14. Onye nrụnye webụ ahụ ga-abanye gị ozugbo na saịtị Moodle ọhụrụ. Ị nwere ike mezue ndebanye aha saịtị gị site na isoro ntuziaka dị na ihuenyo.

15. Iji chebe saịtị Moodle gị, ịkwesịrị ịme HTTPS. Maka ntuziaka a, anyị ga-eji ka anyị zoo asambodo SSL/TLS efu na ntụkwasị obi. Uru ọzọ nke iji Let's Encrypt bụ na ọ na-akpaghị aka.

Yabụ, laghachi na ọdụ gị wee mee iwu na-esonụ ka ịwụnye certbot na Ubuntu (ngwaọrụ n'efu, nke mepere emepe maka iji asambodo Let's Encrypt na-akpaghị aka iji mee HTTPS na saịtị ejiri aka).

$ sudo snap install --classic certbot

16. Wee nye iwu a ka ị nweta asambodo ma nwee Certbot dezie nhazi NGINX gị iji hazie akwụkwọ ọhụrụ ahụ ozugbo.

$ sudo certbot --nginx

17. Ọzọ, laghachi na faịlụ nhazi saịtị Moodle.

$ sudo vim /var/www/html/moodle/config.php 

ma gbanwee URL site na HTTP gaa na HTTPS dị ka egosiri na nseta ihuenyo na-esonụ.

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

18. N'ikpeazụ, nyochaa site na ihe nchọgharị ahụ na saịtị Moodle gị na-arụ ọrụ ugbu a na HTTPS.

https://learning.testprojects.me

Nke ahụ bụ ihe niile ugbu a! Gaa na akwụkwọ Moodle 3.9 maka ozi ndị ọzọ, nhọrọ nhazi, na ntuziaka ojiji.