Bii o ṣe le Fi sori ẹrọ Syeed Ẹkọ Moodle ni Ubuntu 20.04


Moodle jẹ olokiki julọ agbaye, ti o lagbara, ọfẹ, ati ṣiṣi orisun ẹkọ lori ayelujara (e-learning) pẹpẹ iṣakoso ti a ṣe fun ayelujara ati alagbeka. O nfun ọpọlọpọ awọn iṣẹ ati awọn irinṣẹ eto ẹkọ ti o jẹ ki awọn ile-iwe, awọn ile-ẹkọ giga, ati awọn ile-iṣẹ ti o jọmọ lati fun awọn ọmọ ile-iwe ni pẹpẹ ẹkọ irọrun ni eyikeyi akoko, nibikibi, laisi idiwọ si ọna wọn ati iwe-ẹkọ.

Diẹ ninu awọn ẹya ara ẹrọ gbogbogbo rẹ pẹlu igbalode, wiwo ti o rọrun lati lo, dasibodu ti ara ẹni, awọn irinṣẹ ifowosowopo ati awọn iṣẹ, kalẹnda gbogbo-in-kan, iṣakoso faili ti o rọrun, olootu ọrọ inu ti o rọrun, awọn iwifunni, ati ilọsiwaju orin.

Ti o ṣe pataki, Moodle tun jẹ amugbooro giga ni lilo awọn afikun ẹgbẹrun ẹgbẹrun ti o ṣe atilẹyin awọn iṣẹ afikun, awọn bulọọki, awọn akori, ati pupọ diẹ sii.

Ninu nkan yii, iwọ yoo kọ bi o ṣe le fi sori ẹrọ ẹya tuntun ti Moodle Learning Platform pẹlu NGINX ati MySQL/MariaDB database lori Ubuntu 20.04 ati awọn ẹya agbalagba.

  • A ti fi sori ẹrọ LEMP Stack tuntun.

Lọgan ti o ba ti fi akopọ LEMP sori olupin Ubuntu, o le tẹsiwaju siwaju lati ṣeto Moodle lori olupin bi a ti ṣalaye ni isalẹ.

Lori oju-iwe yii

  • Ṣiṣeto Igbasilẹ DNS fun Ohun elo Moodle
  • Fifi Moodle sinu Ubuntu Server
  • Tito leto NGINX lati Sin Ohun elo Moodle
  • Pipe Fifi sori ẹrọ Moodle nipasẹ Olupese Wẹẹbu
  • Muu HTTPS ṣiṣẹ lori Ohun elo Moodle Lilo Jẹ ki Encrypt

1. Fun awọn olumulo lati wọle si apẹẹrẹ Moodle rẹ o nilo lati ṣẹda subdomain fun rẹ, nitorinaa, o nilo lati ṣẹda DNS A igbasilẹ lati ṣaṣeyọri eyi. Fun itọsọna yii, ibugbe idanwo wa ni testprojects.me , nitorinaa a nilo lati ṣẹda subdomain kan, fun apẹẹrẹ, learning.testprojects.me .

Nitorinaa, wọle sinu console wẹẹbu oluforukọsilẹ rẹ ki o wọle si awọn eto ilọsiwaju ti agbegbe rẹ, tẹ Ṣafikun Igbasilẹ Tuntun ti iru A , olugbalejo yẹ ki o jẹ ẹkọ (tabi eyikeyi ọrọ ti o fẹ ), ati iye yẹ ki o jẹ adirẹsi IP gbangba ti olupin Ubuntu rẹ.

2. Itele, o nilo lati fi awọn amugbooro PHP ati awọn ile ikawe sii ti Moodle nilo nipa lilo oluṣakoso package apt bi o ti han.

$ 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. Itele, ṣẹda ibi ipamọ data fun eto Moodle rẹ. Wọle si ikarahun iṣakoso ibi ipamọ data MySQL ki o ṣẹda ibi ipamọ data bi o ṣe han:

$ 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. Gẹgẹbi a ti sọ tẹlẹ, fun itọsọna yii, a yoo gba lati ayelujara ati fi sori ẹrọ Moodle tuntun (ẹya 3.9 ni akoko kikọ). Ṣiṣe aṣẹ ls wọnyi lati jẹrisi pe itọsọna moodle wa labẹ/var/www/html/bi o ti han.

$ 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. Nigbamii, ṣeto awọn igbanilaaye ti o yẹ lori ilana Moodle nipa ṣiṣe awọn ofin wọnyi.

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

6. Nigbamii, ṣẹda itọsọna data Moodle, aaye kan nibiti Moodle le fipamọ awọn faili ti o gbe silẹ ati ṣeto awọn igbanilaaye rẹ bi o ti han.

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

7. Lẹhinna ṣẹda faili iṣatunkọ akọkọ Moodle lati faili iṣeto apẹẹrẹ ti a pese pẹlu package, ṣi i.

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

Lok fun apakan iṣeto iṣeto data, lẹhinna tunto ibi ipamọ data nibiti gbogbo data Moodle yoo wa ni fipamọ, bi o ṣe han ninu sikirinifoto atẹle:

$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

Pẹlupẹlu, tunto ipo oju opo wẹẹbu Moodle bakanna bi ipo ti itọsọna data Moodle bi o ti han.

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

Fipamọ faili to sunmọ. Lẹhinna tunto NGINX si olupin aaye Moodle rẹ bi a ti ṣalaye ninu abala atẹle.

8. Fun NGINX si olupin aaye Moodle rẹ, o nilo lati ṣẹda iṣeto bulọọki olupin tuntun labẹ iṣeto NGINX, ninu itọsọna /etc/nginx/conf.d/.

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

Daakọ ati lẹẹ iṣeto ti atẹle naa ninu rẹ, rọpo learning.testprojects.me pẹlu subdomain rẹ. Lẹgbẹẹ, itọsọna fastcgi_pass yẹ ki o tọka si adirẹsi ti PHP-FPM n gba awọn ibeere FastCGI (ṣayẹwo faili /etc/php/7.4/fpm/pool.d/www.conf fun alaye diẹ sii) .

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

Fipamọ faili naa ki o pa.

9. Nigbamii, rii daju pe iṣeto NGINX jẹ O DARA lẹhin ṣiṣe awọn ayipada ti o wa loke, lẹhinna tunu bẹrẹ iṣẹ NGINX daradara.

$ sudo nginx -t
$ sudo systemctl reload nginx

10. Bayi ṣii ẹrọ aṣawakiri wẹẹbu kan ki o lọ kiri ni lilo subdomain rẹ, fun apẹẹrẹ, learning.testprojects.me lati wọle si olutọpa wẹẹbu Moodle.

http://learning.testprojects.me

Lọgan ti awọn ẹrù oju-iwe itẹwọgba ka nipasẹ ifiranṣẹ tẹ Tẹsiwaju.

11. Nigbamii, oluṣeto yoo ṣayẹwo boya eto rẹ baamu awọn ibeere, ti ohun gbogbo ba dara, yi lọ si isalẹ ki o tẹ Tẹsiwaju lati bẹrẹ fifi sori ẹrọ gangan ti awọn faili ati siseto eto ibi ipamọ data.

Akiyesi pe olupese yoo fi ikilọ kan han nipa aaye ti ko ṣiṣẹ lori HTTPS, foju ikilọ fun bayi. Ni apakan ti o kẹhin, a yoo bo bii a ṣe le mu HTTPS ṣiṣẹ lori Moodle nipa lilo ọfẹ Jẹ ki awọn ijẹrisi Encrypt.

Lọgan ti fifi sori ẹrọ ba pari, tẹ Tẹsiwaju.

12. Nigbamii, tunto akọọlẹ olutọju aaye Moodle rẹ nipasẹ ṣiṣẹda orukọ olumulo akọọlẹ, ọrọ igbaniwọle, orukọ akọkọ ati orukọ-idile, ati adirẹsi imeeli. Lẹhinna yi lọ si isalẹ ki o tẹ Imudojuiwọn Imudojuiwọn.

13. Nigbamii, tunto awọn ipo oju-iwe iwaju aaye Moodle bi o ṣe han ninu sikirinifoto atẹle. Lẹhinna yi lọ si isalẹ ki o tẹ Imudojuiwọn.

14. Olupese wẹẹbu yoo wọle laifọwọyi si aaye Moodle tuntun. O le pari iforukọsilẹ aaye rẹ nipa titẹle awọn itọnisọna loju iboju.

15. Lati daabobo aaye Moodle rẹ, o nilo lati mu HTTPS ṣiṣẹ. Fun itọsọna yii, a yoo lo Jẹ ki Encrypt ọfẹ ati igbẹkẹle awọn iwe-ẹri SSL/TLS. Anfani miiran ti lilo Jẹ ki Encrypt ni pe o jẹ adaṣe.

Nitorinaa, pada si ebute rẹ ki o ṣiṣẹ aṣẹ atẹle lati fi sori ẹrọ certbot lori Ubuntu (ọfẹ, irinṣẹ orisun-ṣiṣi fun lilo laifọwọyi Jẹ ki Awọn ijẹrisi Encrypt lati jẹ ki HTTPS wa lori awọn aaye ti a ṣakoso pẹlu ọwọ).

$ sudo snap install --classic certbot

16. Lẹhinna gbekalẹ aṣẹ atẹle lati gba iwe-ẹri kan ki o jẹ ki Certbot satunkọ iṣeto NGINX rẹ lati tunto ijẹrisi tuntun laifọwọyi.

$ sudo certbot --nginx

17. Nigbamii, lọ pada si faili iṣeto ni aaye Moodle.

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

ki o yi URL pada lati HTTP si HTTPS bi o ṣe han ninu sikirinifoto atẹle.

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

18. Lakotan, ṣayẹwo lati aṣawakiri pe aaye Moodle rẹ n ṣiṣẹ lọwọlọwọ lori HTTPS.

https://learning.testprojects.me

Iyẹn ni gbogbo fun bayi! Lọ si iwe Moodle 3.9 fun alaye diẹ sii, awọn aṣayan iṣeto, ati itọsọna lilo.