Bii o ṣe le Fi sori ẹrọ Syeed Ẹkọ Moodle pẹlu Nginx ni CentOS 8


Moodle jẹ eto iṣakoso olokiki ti o gbajumọ julọ ni agbaye fun kikọ awọn aaye ayelujara ti o lagbara lori ayelujara. O ṣe ẹya ọpọlọpọ awọn iṣẹ ati awọn irinṣẹ ẹkọ ti o le yan lati, o ṣe atilẹyin iṣakoso iwadii ati awọn ọkọ oju omi pẹlu awọn iwe-ẹri aṣa. O tun jẹ ki ibaraẹnisọrọ pẹlu awọn ọmọ ile-iwe rẹ ni akoko gidi pẹlu ohun elo apejọ fidio ti o lagbara. Yato si, o ti ṣetan alagbeka, nitorina awọn ọmọ ile-iwe rẹ le kọ ẹkọ lati inu awọn ẹrọ alagbeka wọn.

  • Eto Iṣiṣẹ: fifi sori ẹrọ ti o kere ju ti akopọ LEMP ti a fi sii.
  • Aaye Disiki: 200MB fun Moodle, ati pe 5GB ṣee ṣe o kere julọ ti otitọ ti titoju akoonu. Ẹrọ isise: 1GHz (min), 2GHz meji-mojuto tabi diẹ ẹ sii niyanju.
  • Iranti: 512MB (min), 1GB tabi diẹ sii ni a ṣe iṣeduro. 8GB plus ṣee ṣe lori olupin iṣelọpọ nla.

Lori oju-iwe yii

  • Ṣiṣẹda Igbasilẹ DNS Agbegbe fun Oju opo wẹẹbu Moodle
  • Fifi Platform Learning Moodle ni CentOS 8 Server
  • Tito leto NGINX lati Sin Wẹẹbu Moodle
  • Fifi sori ẹrọ Moodle Pipe nipasẹ Olupese Wẹẹbu
  • Jeki HTTPS lori Aye Moodle Lilo Jẹ ki Encrypt

1. Bẹrẹ nipa ṣiṣẹda subdomain kan ti awọn olumulo yoo lo lati wọle si aaye ẹkọ ayelujara ti Moodle. Fun apẹẹrẹ, ti orukọ ašẹ rẹ ba jẹ testprojects.me , o le ṣẹda subdomain kan ti a pe ni learning.testprojects.me .

Ṣii awọn eto DNS ti ilọsiwaju ti orukọ ile-iwe rẹ ki o ṣafikun igbasilẹ A bi o ṣe han ninu aworan atẹle.

2. Ṣaaju fifi Moodle sii, rii daju pe o ni awọn amugbooro PHP ti a beere lori olupin rẹ, o le ṣiṣe aṣẹ atẹle lati fi wọn sii:

# 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. Itele, ṣẹda ipilẹ data fun ohun elo Moodle bi atẹle.

# mysql -u root -p

Lẹhinna ṣẹda ibi ipamọ data, olumulo ipamọ data ki o ṣẹda ọrọ igbaniwọle to ni aabo fun lilo.

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. Nisisiyi ṣe igbasilẹ ẹya tuntun ti Moodle (3.9 ni akoko kikọ) lati oju opo wẹẹbu iṣẹ akanṣe moodle, fa faili faili jade ki o gbe sinu webroot rẹ (/var/www/html/) itọsọna, lẹhinna ṣeto awọn igbanilaaye ti o yẹ ati nini lati gba aaye ayelujara wọle si itọsọna Moodle, gẹgẹbi atẹle.

# 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. Nigbamii, ṣẹda itọsọna moodledata eyiti o jẹ ipo ti awọn faili ti o gbejade tabi ṣẹda nipasẹ wiwo Moodle, lẹhinna fi awọn igbanilaaye ti o yẹ ati ohun-ini silẹ lati gba aaye ayelujara laaye lati ka ati kọ iraye si rẹ:

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

6. Nigbamii, gbe sinu ilana fifi sori ẹrọ Moodle ki o ṣẹda faili config.php lati inu ayẹwo config.dist.php faili ti a pese, lẹhinna ṣii fun ṣiṣatunkọ lati tunto diẹ ninu awọn eto bọtini fun pẹpẹ Moodle rẹ, gẹgẹ bi awọn ipilẹ asopọ asopọ data ati ipo aaye ati ibiti o ti le wa itọsọna moodledata:

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

Ṣeto iru ipilẹ data data ti o tọ, agbalejo data data ti o tọ, orukọ ibi ipamọ data, ati olumulo ibi ipamọ data ati ọrọ igbaniwọle olumulo.

$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. Tun ṣeto URL ti o lo lati wọle si ijoko Moodle rẹ, eyi ṣalaye ipo ti wwwroot nibiti awọn faili wẹẹbu Moodle rẹ wa, ati dataroot (itọsọna moodledata):

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

8. Ni apakan yii, o nilo lati tunto NGINX lati sin ohun elo Moodle rẹ. O nilo lati ṣẹda bulọọki olupin fun rẹ ni iṣeto NGINX bi o ti han.

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

Daakọ ati lẹẹ iṣeto ni atẹle ni faili iṣeto iṣeto bulọọki. Rọpo orukọ olupin pẹlu orukọ subdomain rẹ ti a ṣẹda loke, ati pe fastcgi_pass yẹ ki o tọka si php-fpm (akiyesi pe ni CentOS 8, PHP-FPM gba awọn ibeere FastCGI nipa lilo adirẹsi ti a ṣalaye ninu /etc/nginx/conf.d/php- iṣeto fpm.conf).

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

Fipamọ faili naa ki o pa.

9. Lẹhinna ṣayẹwo iṣeto NGINX fun atunṣe, ti o ba dara, tun bẹrẹ awọn iṣẹ nginx ati php-fpm lati lo awọn ayipada to ṣẹṣẹ:

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

10. Ti o ba ni agbara SELinux lori ẹrọ rẹ, lẹhinna ṣiṣe awọn ofin wọnyi lati ṣeto ipo ti o tọ fun iraye si awọn faili wẹẹbu Moodle lori olupin naa:

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

11. Yato si, rii daju pe awọn iṣẹ HTTP ati HTTPS wa ni sisi ni ogiriina lati gba ijabọ si olupin ayelujara NGINX:

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

12. Lati wọle si insitola wẹẹbu Moodle, ṣii ẹrọ aṣawakiri wẹẹbu rẹ, ki o lọ kiri ni lilo subdomain ti o ṣẹda loke:

http://learning.testprojects.me

Ni kete ti awọn ẹrù oju-iwe itẹwọgba ka nipasẹ awọn ofin, ati awọn ipo ki o tẹ Tẹsiwaju.

13. Nigbamii, olutọpa wẹẹbu yoo ṣayẹwo boya eto rẹ baamu awọn ibeere fun ṣiṣe aaye Moodle ti ẹya ti a sọ tẹlẹ. O le yi lọ si isalẹ lati wo alaye diẹ sii.

14. Olupilẹṣẹ yoo kerora nipa HTTPS ko ṣiṣẹ, foju aṣiṣe yẹn fun bayi (ni abala atẹle, a yoo fihan bi a ṣe le mu HTTPS ṣiṣẹ lori Moodle), ki o tẹ Tẹsiwaju, lati bẹrẹ fifi sori ẹrọ gangan ti awọn faili wẹẹbu.

15. Nisisiyi olupese naa yoo bẹrẹ fifi sori ẹrọ gangan ti awọn faili Moodle bi o ṣe han ninu sikirinifoto atẹle. Lọgan ti o ba pari, tẹ Tẹsiwaju.

16. Ni igbesẹ ti n tẹle, o nilo lati ṣe imudojuiwọn akọọlẹ olutọju aaye Moodle rẹ nipasẹ mimuṣe orukọ olumulo, ọrọ igbaniwọle, orukọ akọkọ, ati orukọ idile, ati adirẹsi imeeli. Lẹhinna yi lọ si isalẹ oju-iwe naa ki o tẹ Profaili Imudojuiwọn.

17. Lẹhinna ṣe imudojuiwọn awọn ipo oju-iwe iwaju aaye Moodle. Lẹhinna yi lọ si isalẹ ki o tẹ Imudojuiwọn lati bẹrẹ lilo aaye Moodle rẹ.

18. Itele, o nilo lati forukọsilẹ aaye rẹ nipa titẹle awọn itọnisọna loju iboju. O le lọ si dasibodu nipa titẹ si Dasibodu naa.

HTTPS ṣe afikun ipele akọkọ ti aabo si aaye rẹ lati jẹki awọn ibaraẹnisọrọ to ni aabo laarin awọn olumulo rẹ ati ohun elo Moodle (paapaa olupin NGINX wẹẹbu eyiti o gba awọn ibeere ati fifun awọn idahun).

O le boya ra iwe-ẹri SSL/TLS lati CA ti iṣowo tabi lo Jẹ ki Encrypt eyiti o jẹ ọfẹ ati ti o mọ nipasẹ gbogbo awọn aṣawakiri wẹẹbu igbalode. Fun itọsọna yii, a yoo lo Jẹ ki Encrypt.

19. Jẹ ki imuṣiṣẹ ijẹrisi Jẹ ki Encrypt ṣiṣẹ ni iṣakoso laifọwọyi nipa lilo ohun elo certbot. O le fi sii certbot ati awọn idii ti a beere pẹlu aṣẹ atẹle:

# dnf install certbot python3-certbot-nginx

20. Lẹhinna ṣiṣe aṣẹ atẹle lati gba iwe-ẹri Jẹ ki Encrypt kan ati ki o jẹ ki Certbot satunkọ iṣeto NGINX rẹ laifọwọyi lati ṣe iranṣẹ fun (yoo tun tunto HTTP lati wa ni darí laifọwọyi si HTTPS).

# certbot --nginx

21. Lẹhinna ṣiṣe aṣẹ atẹle lati jẹki isọdọtun aifọwọyi ti Jẹ ki Encrypt SSL/TLS ijẹrisi:

# 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. Nigbamii, ṣe imudojuiwọn iṣeto Moodle rẹ lati bẹrẹ lilo HTTPS.

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

yi URL wwwroot pada lati HTTP si HTTPS:

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

23. Kẹhin ṣugbọn kii kere ju, jẹrisi pe aaye Moodle rẹ nṣiṣẹ lọwọlọwọ lori HTTPS.

Iyẹn ni fun bayi! Fun alaye diẹ sii ati awọn aṣayan iṣeto lati ṣiṣe pẹpẹ ẹkọ tuntun rẹ, lọ si oju opo wẹẹbu Moodle, ki o ka nipasẹ iwe aṣẹ osise.