ວິທີການຕິດຕັ້ງແພລະຕະຟອມການຮຽນ Moodle ກັບ Nginx ໃນ CentOS 8


Moodle ແມ່ນລະບົບການຄຸ້ມຄອງການຮຽນຮູ້ທີ່ນິຍົມທີ່ສຸດໃນໂລກ ສຳ ລັບການສ້າງສະຖານທີ່ການຮຽນຮູ້ທາງອິນເຕີເນັດທີ່ເຂັ້ມແຂງ. ມັນມີຫຼາຍກິດຈະ ກຳ ແລະເຄື່ອງມືການສຶກສາທີ່ທ່ານສາມາດເລືອກໄດ້, ມັນສະ ໜັບ ສະ ໜູນ ການຈັດການປະເມີນຜົນແລະເຮືອທີ່ມີໃບຢັ້ງຢືນທີ່ ກຳ ຫນົດເອງ. ມັນຍັງຊ່ວຍໃຫ້ການສື່ສານກັບນັກຮຽນຂອງທ່ານໃນເວລາຈິງດ້ວຍເຄື່ອງມືປະຊຸມທາງວິດີໂອທີ່ມີປະສິດທິພາບ. ນອກ ເໜືອ ຈາກນີ້, ມັນພ້ອມແລ້ວ ສຳ ລັບມືຖື, ສະນັ້ນນັກຮຽນຂອງທ່ານສາມາດຮຽນຮູ້ຈາກອຸປະກອນມືຖືຂອງພວກເຂົາ.

  • ລະບົບປະຕິບັດການ: ການຕິດຕັ້ງເຊີບເວີ CentOS 8 ຫຼື RHEL 8 ທີ່ມີລະບົບຕິດຕັ້ງ LEMP ໜ້ອຍ ທີ່ສຸດ.
  • ພື້ນທີ່ຫວ່າງ: 200MB ສຳ ລັບ Moodle, ແລະ 5GB ອາດຈະເປັນ ຕຳ ່ສຸດໃນການເກັບຮັກສາເນື້ອຫາ.
  • ເຄື່ອງປະມວນຜົນ: 1GHz (ນາທີ), 2GHz dual-core ຫຼືຫຼາຍກວ່າທີ່ແນະ ນຳ.
  • ໜ່ວຍ ຄວາມ ຈຳ: 512MB (min), 1GB ຫຼືຫຼາຍກວ່ານັ້ນແມ່ນແນະ ນຳ. 8GB ບວກແມ່ນມີຢູ່ໃນເຄື່ອງແມ່ຂ່າຍການຜະລິດຂະຫນາດໃຫຍ່.

ໃນ ໜ້າ ນີ້

  • ສ້າງບັນທຶກ DNS ໂດເມນ ສຳ ລັບເວບໄຊທ໌ Moodle
  • ຕິດຕັ້ງແພລະຕະຟອມຮຽນ Moodle ໃນ CentOS 8 Server
  • ຕັ້ງຄ່າ NGINX ໃຫ້ບໍລິການເວບໄຊທ໌ Moodle
  • ຕິດຕັ້ງ Moodle ສຳ ເລັດຜ່ານ Web Installer
  • ເປີດໃຊ້ HTTPS ໃນເວບໄຊທ໌ Moodle ໂດຍໃຊ້ Let’s encryption

1. ເລີ່ມຕົ້ນໂດຍການສ້າງໂດເມນຍ່ອຍທີ່ຜູ້ໃຊ້ຈະໃຊ້ເຂົ້າໃນເວບໄຊທ໌ການຮຽນຮູ້ online Moodle. ຕົວຢ່າງ: ຖ້າຊື່ໂດເມນຂອງທ່ານແມ່ນ testprojects.me , ທ່ານສາມາດສ້າງໂດເມນຍ່ອຍທີ່ເອີ້ນວ່າ learning.testprojects.me .

ເປີດການຕັ້ງຄ່າ DNS ຂັ້ນສູງຂອງຊື່ໂດເມນຂອງທ່ານແລະເພີ່ມບັນທຶກ A ຕາມທີ່ສະແດງໃນຮູບຕໍ່ໄປນີ້.

2. ກ່ອນທີ່ຈະຕິດຕັ້ງ Moodle, ຮັບປະກັນວ່າທ່ານມີການຂະຫຍາຍ PHP ທີ່ ຈຳ ເປັນໃນ server ຂອງທ່ານ, ທ່ານສາມາດ ດຳ ເນີນການ ຄຳ ສັ່ງຕໍ່ໄປນີ້ເພື່ອຕິດຕັ້ງພວກມັນ:

# 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. ຕໍ່ໄປ, ສ້າງຖານຂໍ້ມູນ ສຳ ລັບການ ນຳ ໃຊ້ Moodle ດັ່ງຕໍ່ໄປນີ້.

# mysql -u root -p

ຈາກນັ້ນສ້າງຖານຂໍ້ມູນ, ຜູ້ໃຊ້ຖານຂໍ້ມູນແລະສ້າງລະຫັດລັບທີ່ປອດໄພ ສຳ ລັບການ ນຳ ໃຊ້.

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. ດຽວນີ້ດາວໂລດ Moodle ລຸ້ນລ້າສຸດ (3.9 ໃນເວລາຂຽນ) ຈາກເວບໄຊທ໌ຂອງໂຄງການໂປຣແກຣມໂປຣໄຟລ, ຢ່າງເປັນທາງການ, ສະກັດເອກະສານເກັບໄວ້ແລະຍ້າຍມັນເຂົ້າໃນ webroot ຂອງທ່ານ (/var/www/html/) ໄດເລກະທໍລີ, ຈາກນັ້ນ ກຳ ນົດສິດແລະຄວາມເປັນເຈົ້າຂອງທີ່ ເໝາະ ສົມເພື່ອອະນຸຍາດໃຫ້ຜູ້ ນຳ ໃຊ້ເວັບເຂົ້າເຖິງໄດເລກະທໍລີ Moodle, ດັ່ງຕໍ່ໄປນີ້.

# 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. ຕໍ່ໄປ, ສ້າງໄດເລກະທໍລີ moodledata ເຊິ່ງເປັນທີ່ຕັ້ງຂອງແຟ້ມທີ່ຖືກອັບໂຫລດຫລືສ້າງຂື້ນໂດຍອິນເຕີເຟດ Moodle, ຫຼັງຈາກນັ້ນມອບ ໝາຍ ສິດແລະຄວາມເປັນເຈົ້າຂອງທີ່ ເໝາະ ສົມໃຫ້ຜູ້ໃຊ້ເວບໄຊທ໌ອ່ານແລະຂຽນເຂົ້າເຖິງມັນ:

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

6. ຕໍ່ໄປ, ຍ້າຍເຂົ້າໄປໃນໄດເລກະທໍລີຕິດຕັ້ງ Moodle ແລະສ້າງເອກະສານ config.php ຈາກເອກະສານ config.dist.php ທີ່ໃຫ້ມາ, ຈາກນັ້ນເປີດມັນເພື່ອດັດແກ້ເພື່ອ ກຳ ຫນົດຄ່າບາງຢ່າງ ການຕັ້ງຄ່າຫຼັກ ສຳ ລັບແພລະຕະຟອມ Moodle ຂອງທ່ານ, ເຊັ່ນວ່າຕົວ ກຳ ນົດການເຊື່ອມຕໍ່ຖານຂໍ້ມູນແລະສະຖານທີ່ຂອງສະຖານທີ່ແລະບ່ອນທີ່ມັນສາມາດຊອກຫາໄດເລກະທໍລີ moodledata:

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

ຕັ້ງປະເພດ datbase ທີ່ຖືກຕ້ອງ, ໂຮດຖານຂໍ້ມູນທີ່ຖືກຕ້ອງ, ຊື່ຖານຂໍ້ມູນແລະຜູ້ໃຊ້ຖານຂໍ້ມູນແລະລະຫັດຜ່ານຂອງຜູ້ໃຊ້.

$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. ພ້ອມທັງ ກຳ ນົດ URL ທີ່ໃຊ້ໃນການເຂົ້າເຖິງບ່ອນນັ່ງ Moodle ຂອງທ່ານ, ນີ້ໄດ້ ກຳ ນົດສະຖານທີ່ຂອງ wwwroot ບ່ອນທີ່ໄຟລ໌ເວັບ Moodle ຂອງທ່ານຕັ້ງຢູ່, ແລະຍັງມີ dataroot (ໄດເລກະທໍລີ moodledata):

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

8. ໃນສ່ວນນີ້, ທ່ານ ຈຳ ເປັນຕ້ອງ ກຳ ຫນົດຄ່າ NGINX ເພື່ອຮັບໃຊ້ໂປແກຼມ Moodle ຂອງທ່ານ. ທ່ານ ຈຳ ເປັນຕ້ອງສ້າງບລັອກເຊີຟເວີ ສຳ ລັບມັນໃນການຕັ້ງຄ່າ NGINX ດັ່ງທີ່ສະແດງໄວ້.

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

ຄັດລອກແລະວາງລົງການຕັ້ງຄ່າຕໍ່ໄປນີ້ໃນເອກະສານການຕັ້ງຄ່າບລັອກເຊີຟເວີ. ປ່ຽນຊື່ຂອງເຄື່ອງແມ່ຂ່າຍດ້ວຍຊື່ໂດເມນຍ່ອຍຂອງທ່ານທີ່ສ້າງຂື້ນຂ້າງເທິງ, ແລະ fastcgi_pass ຄວນຊີ້ໄປທີ່ php-fpm (ໃຫ້ສັງເກດວ່າໃນ CentOS 8, PHP-FPM ຍອມຮັບການຮ້ອງຂໍຂອງ FastCGI ໂດຍໃຊ້ທີ່ຢູ່ທີ່ໄດ້ ກຳ ນົດໄວ້ໃນ /etc/nginx/conf.d/php- 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;
}
}

ບັນທຶກເອກະສານແລະປິດມັນ.

9. ຫຼັງຈາກນັ້ນໃຫ້ກວດເບິ່ງການຕັ້ງຄ່າ NGINX ເພື່ອຄວາມຖືກຕ້ອງ, ຖ້າມັນບໍ່ເປັນຫຍັງ, ໃຫ້ເລີ່ມການບໍລິການ nginx ແລະ php-fpm ເພື່ອ ນຳ ໃຊ້ການປ່ຽນແປງທີ່ຜ່ານມາ:

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

10. ຖ້າທ່ານໄດ້ເປີດໃຊ້ SELinux ໃນລະບົບຂອງທ່ານ, ຫຼັງຈາກນັ້ນໃຫ້ ດຳ ເນີນການ ຄຳ ສັ່ງຕໍ່ໄປນີ້ເພື່ອ ກຳ ນົດສະພາບການທີ່ຖືກຕ້ອງ ສຳ ລັບການເຂົ້າເຖິງເອກະສານເວັບ Moodle ໃນ server:

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

11. ນອກ ເໜືອ ຈາກນີ້, ຮັບປະກັນວ່າການໃຫ້ບໍລິການ HTTP ແລະ HTTPS ເປີດຢູ່ໃນ ກຳ ແພງໄຟເພື່ອໃຫ້ການສັນຈອນໄປຫາເຄື່ອງແມ່ຂ່າຍເວັບ NGINX:

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

12. ເພື່ອເຂົ້າຫາຜູ້ຕິດຕັ້ງເວັບ Moodle, ເປີດໂປແກຼມທ່ອງເວັບຂອງທ່ານ, ແລະ ນຳ ໃຊ້ໂດເມນຍ່ອຍທີ່ທ່ານສ້າງຢູ່ຂ້າງເທິງ:

http://learning.testprojects.me

ເມື່ອ ໜ້າ ຍິນດີຕ້ອນຮັບໄດ້ອ່ານຜ່ານຂໍ້ ກຳ ນົດແລະເງື່ອນໄຂແລ້ວກົດຕໍ່ໄປ.

13. ຕໍ່ໄປ, ຜູ້ຕິດຕັ້ງເວັບຈະກວດເບິ່ງວ່າລະບົບຂອງທ່ານຕອບສະ ໜອງ ຄວາມຕ້ອງການໃນການເຮັດວຽກຂອງເວັບໄຊທ໌ Moodle ຂອງສະບັບທີ່ ກຳ ນົດໄວ້ຫຼືບໍ່. ທ່ານສາມາດເລື່ອນລົງເພື່ອເບິ່ງຂໍ້ມູນເພີ່ມເຕີມ.

14. ຜູ້ຕິດຕັ້ງຈະຈົ່ມກ່ຽວກັບ HTTPS ບໍ່ຖືກເປີດໃຊ້, ບໍ່ສົນໃຈຂໍ້ຜິດພາດນັ້ນ ສຳ ລັບດຽວນີ້ (ໃນພາກຕໍ່ໄປ, ພວກເຮົາຈະສະແດງວິທີການເປີດໃຊ້ HTTPS ໃນ Moodle), ແລະກົດສືບຕໍ່, ເພື່ອເລີ່ມການຕິດຕັ້ງຕົວຈິງຂອງເອກະສານເວັບ.

15. ຕອນນີ້ຜູ້ຕິດຕັ້ງຈະເລີ່ມຕົ້ນຕິດຕັ້ງຕົວຈິງຂອງເອກະສານ Moodle ດັ່ງທີ່ສະແດງຢູ່ໃນພາບ ໜ້າ ຈໍຕໍ່ໄປນີ້. ເມື່ອມັນ ສຳ ເລັດແລ້ວ, ກົດສືບຕໍ່.

16. ໃນຂັ້ນຕອນຕໍ່ໄປ, ທ່ານ ຈຳ ເປັນຕ້ອງປັບປຸງບັນຊີຜູ້ເບິ່ງແຍງລະບົບຂອງ Moodle ໂດຍການປັບປຸງຊື່ຜູ້ໃຊ້, ລະຫັດຜ່ານ, ຊື່ແລະນາມສະກຸນແລະທີ່ຢູ່ອີເມວ. ຫຼັງຈາກນັ້ນເລື່ອນລົງ ໜ້າ ແລະກົດອັບເດດຂໍ້ມູນ.

17. ຫຼັງຈາກນັ້ນປັບປຸງການຕັ້ງຄ່າ ໜ້າ ເວັບຂອງ Moodle. ຫຼັງຈາກນັ້ນເລື່ອນລົງແລ້ວກົດອັບເດດເພື່ອເລີ່ມຕົ້ນໃຊ້ເວັບໄຊທ໌ Moodle ຂອງທ່ານ.

18. ຕໍ່ໄປ, ທ່ານ ຈຳ ເປັນຕ້ອງລົງທະບຽນເວັບໄຊທ໌້ຂອງທ່ານໂດຍປະຕິບັດຕາມ ຄຳ ແນະ ນຳ ໃນ ໜ້າ ຈໍ. ທ່ານສາມາດໄປທີ່ dashboard ໄດ້ໂດຍການກົດເຂົ້າໄປທີ່ Dashboard.

HTTPS ເພີ່ມຄວາມປອດໄພຊັ້ນ ທຳ ອິດໃນເວັບໄຊທ໌້ຂອງທ່ານເພື່ອໃຫ້ການສື່ສານທີ່ປອດໄພລະຫວ່າງຜູ້ໃຊ້ຂອງທ່ານແລະໂປແກຼມ Moodle (ໂດຍສະເພາະເຄື່ອງແມ່ຂ່າຍເວັບ NGINX ທີ່ໄດ້ຮັບການຮ້ອງຂໍແລະຕອບສະ ໜອງ).

ທ່ານສາມາດຊື້ໃບຢັ້ງຢືນ SSL/TLS ຈາກ CA ການຄ້າຫຼືໃຊ້ Let’s Encrypt ເຊິ່ງບໍ່ໄດ້ເສຍຄ່າແລະຖືກຮັບຮູ້ຈາກຕົວທ່ອງເວັບເວັບໄຊທ໌ ໃໝ່ ທັງ ໝົດ. ສຳ ລັບ ຄຳ ແນະ ນຳ ນີ້, ພວກເຮົາຈະໃຊ້ Let’s Encrypt.

ການ ນຳ ໃຊ້ໃບຢັ້ງຢືນລະຫັດຂອງ Let’s Encrypt ຖືກຈັດການໂດຍອັດຕະໂນມັດໂດຍໃຊ້ເຄື່ອງມື certbot. ທ່ານສາມາດຕິດຕັ້ງ certbot ແລະແພັກເກດທີ່ຕ້ອງການໄດ້ດ້ວຍ ຄຳ ສັ່ງຕໍ່ໄປນີ້:

# dnf install certbot python3-certbot-nginx

20. ຈາກນັ້ນ ດຳ ເນີນການ ຄຳ ສັ່ງຕໍ່ໄປນີ້ເພື່ອໃຫ້ໄດ້ໃບຢັ້ງຢືນ Let’s Encrypt ແລະໃຫ້ Certbot ແກ້ໄຂການຕັ້ງຄ່າ NGINX ຂອງທ່ານໂດຍອັດຕະໂນມັດເພື່ອຮັບໃຊ້ມັນ (ມັນຍັງຈະ ກຳ ນົດຄ່າ HTTP ທີ່ຈະຖືກໂອນໄປຍັງ HTTPS ໂດຍອັດຕະໂນມັດ).

# certbot --nginx

21. ຫຼັງຈາກນັ້ນ ດຳ ເນີນ ຄຳ ສັ່ງຕໍ່ໄປນີ້ເພື່ອເປີດໃຊ້ໃບຢັ້ງຢືນ 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. ຖັດໄປ, ອັບເດດການຕັ້ງຄ່າ Moodle ຂອງທ່ານເພື່ອເລີ່ມໃຊ້ HTTPS.

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

ປ່ຽນ URL wwwroot ຈາກ HTTP ຫາ HTTPS:

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

23. ແຕ່ສຸດທ້າຍ, ຢືນຢັນວ່າເວບໄຊທ໌ Moodle ຂອງທ່ານ ກຳ ລັງເຮັດວຽກຢູ່ HTTPS.

ນັ້ນແມ່ນ ສຳ ລັບດຽວນີ້! ສຳ ລັບຂໍ້ມູນເພີ່ມເຕີມແລະຕົວເລືອກການຕັ້ງຄ່າເພື່ອເປີດເວທີການຮຽນຮູ້ ໃໝ່ ຂອງທ່ານ, ເຂົ້າໄປທີ່ເວັບໄຊທ໌ Moodle, ແລະອ່ານຜ່ານເອກະສານທາງການ.