Giunsa ang Pag-install sa Platform sa Pagkat-on sa Moodle sa Nginx sa CentOS 8


Ang Moodle mao ang labing inila nga sistema sa pagdumala sa pagkat-on sa kalibutan alang sa pagtukod og lig-on nga mga site sa pagkat-on sa online. Nagpakita kini usa ka lainlaing mga kalihokan ug mga himan sa edukasyon nga mahimo nimong mapili, gisuportahan niini ang pagdumala sa pagtasa ug mga barko nga adunay mga kostumbre nga sertipiko. Gitugotan usab niini ang komunikasyon sa imong mga estudyante sa tinuud nga oras gamit ang usa ka kusgan nga himan sa komperensya sa video. Gawas pa, kini andam sa mobile, aron ang imong mga estudyante makakat-on gikan sa ilang mga mobile device.

  • Operating System: gamay nga instalasyon sa LEMP stack nga na-install.
  • Disk Space: 200MB para sa Moodle, ug 5GB lagmit usa ka realistiko nga minimum sa pagtipig sa sulod.
  • Processor: 1GHz (min), 2GHz dual-core o labaw pa nga girekomenda.
  • Memorya: 512MB (min), 1GB o labaw pa kay girekomendar. 8GB plus lagmit sa usa ka dako nga production server.

Niini nga panid

  • Paghimo og Domain DNS Record para sa Moodle Website
  • Pag-instalar sa Moodle Learning Platform sa CentOS 8 Server
  • Pag-configure sa NGINX aron Pag-alagad sa Website sa Moodle
  • Kompleto nga Pag-instalar sa Moodle pinaagi sa Web Installer
  • Enable HTTPS sa Moodle Site Gamit ang Let's Encrypt

1. Sugdi pinaagi sa paghimo ug subdomain nga gamiton sa mga tiggamit sa pag-access sa Moodle online learning site. Pananglitan, kung ang imong domain name mao ang testprojects.me, makahimo ka og subdomain nga gitawag og learning.testprojects.me.

Ablihi ang advanced DNS settings sa imong domain name ug idugang ang A record sama sa gipakita sa mosunod nga hulagway.

2. Sa dili pa i-install ang Moodle, siguruha nga naa nimo ang gikinahanglan nga mga extension sa PHP sa imong server, mahimo nimong ipadagan ang mosunod nga mando aron ma-install kini:

# 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. Sunod, paghimo ug database para sa Moodle nga aplikasyon sama sa mosunod.

# mysql -u root -p

Unya paghimo sa database, database user ug paghimo sa usa ka luwas nga password alang sa paggamit.

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. Karon i-download ang pinakabag-o nga bersyon sa Moodle (3.9 sa panahon sa pagsulat) gikan sa opisyal nga moodle project website, kuhaa ang archive file ug ibalhin kini sa imong webroot (/var/www/html/) direktoryo, dayon itakda ang angay nga pagtugot ug pagpanag-iya aron tugotan ang webserver nga maka-access sa direktoryo sa Moodle, ingon sa mosunod.

# 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. Sunod, buhata ang moodledata directory nga mao ang lokasyon sa mga file nga gi-upload o gimugna sa interface sa Moodle, dayon i-assign ang angay nga mga permiso ug pagpanag-iya aron tugutan ang webserver sa pagbasa ug pagsulat og access niini:

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

6. Sunod, balhin ngadto sa Moodle installation directory ug paghimo ug config.php file gikan sa sample config.dist.php file nga gihatag, dayon ablihi kini para sa pag-edit aron ma-configure ang pipila yawe nga mga setting para sa imong plataporma sa Moodle, sama sa mga parameter sa koneksyon sa database ug ang lokasyon sa site ug kung asa makit-an ang direktoryo sa moodledata:

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

Ibutang ang husto nga tipo sa database, husto nga host sa database, ngalan sa database, ug tiggamit sa database ug password sa tiggamit.

$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. Itakda usab ang URL nga gigamit sa pag-access sa imong Moodle sit, kini nagtino sa nahimutangan sa wwwroot diin nahimutang ang imong Moodle web files, ug usab ang dataroot (ang moodledata directory):

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

8. Niini nga seksyon, kinahanglan nimo nga i-configure ang NGINX aron pagsilbi sa imong aplikasyon sa Moodle. Kinahanglan ka nga maghimo usa ka block sa server alang niini sa pagsumpo sa NGINX sama sa gipakita.

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

Kopyaha ug idikit ang mosunod nga configuration sa server block configuration file. Ilisan ang ngalan sa server sa imong subdomain nga ngalan nga gihimo sa ibabaw, ug ang fastcgi_pass kinahanglang magpunting sa php-fpm (timan-i nga sa CentOS 8, ang PHP-FPM modawat sa FastCGI nga mga hangyo gamit ang adres nga gihubit sa /etc/nginx/conf.d/php- fpm.conf configuration).

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

I-save ang file ug isira kini.

9. Unya susiha ang NGINX configuration alang sa husto, kung kini Ok, i-restart ang nginx ug php-fpm nga mga serbisyo aron magamit ang bag-o nga mga pagbag-o:

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

10. Kon imong gipagana ang SELinux sa imong sistema, dayon padagana ang mosunod nga mga sugo aron itakda ang hustong konteksto sa pag-access sa Moodle web files sa server:

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

11. Gawas pa, siguroha nga ang HTTP ug HTTPS nga mga serbisyo bukas sa firewall aron tugotan ang trapiko sa NGINX web server:

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

12. Aron ma-access ang Moodle web installer, ablihi ang imong web browser, ug navigate gamit ang subdomain nga imong gibuhat sa ibabaw:

http://learning.testprojects.me

Sa higayon nga ma-load ang welcome page basaha ang mga termino, ug kondisyon ug i-klik ang Padayon.

13. Sunod, susihon sa web installer kung nakab-ot ba sa imong sistema ang mga kinahanglanon sa pagpadagan sa Moodle site sa gitakdang bersyon. Mahimo kang mag-scroll down aron makita ang dugang nga impormasyon.

14. Ang installer moreklamo bahin sa HTTPS nga wala ma-enable, ibaliwala kana nga sayop sa pagkakaron (sa sunod nga seksyon, among ipakita kung unsaon pag-enable ang HTTPS sa Moodle), ug i-klik ang Continue, aron masugdan ang aktuwal nga pag-instalar sa mga web files.

15. Karon ang installer magsugod sa aktuwal nga pag-instalar sa Moodle files sama sa gipakita sa mosunod nga screenshot. Kung nahuman na kini, i-klik ang Padayon.

16. Sa sunod nga lakang, kinahanglan nimo nga i-update ang imong account sa tagdumala sa Moodle site pinaagi sa pag-update sa username, password, una nga ngalan, ug apelyido, ug email address. Dayon i-scroll down ang page ug i-klik Update Profile.

17. Dayon i-update ang Moodle site front-page settings. Dayon i-scroll down ug i-klik Update aron magsugod sa paggamit sa imong Moodle site.

18. Sunod, kinahanglan nimo nga irehistro ang imong site pinaagi sa pagsunod sa mga panudlo sa screen. Mahimo kang moadto sa dashboard pinaagi sa pag-klik sa Dashboard.

Gidugang sa HTTPS ang unang layer sa seguridad sa imong site aron mahimo ang luwas nga komunikasyon tali sa imong mga tiggamit ug sa aplikasyon sa Moodle (ilabi na ang web server sa NGINX nga nakadawat sa mga hangyo ug naghatud sa mga tubag).

Mahimo kang mopalit ug SSL/TLS nga sertipiko gikan sa usa ka komersyal nga CA o gamiton ang Let's Encrypt nga libre ug giila sa tanang modernong web browser. Alang niini nga giya, atong gamiton ang Let’s Encrypt.

19. Ang pag-deploy sa Let's Encrypt Certificate awtomatik nga gidumala gamit ang certbot tool. Mahimo nimong i-install ang certbot ug uban pang gikinahanglan nga mga pakete gamit ang mosunud nga mando:

# dnf install certbot python3-certbot-nginx

20. Dayon padagana ang mosunod nga sugo aron makakuha ug Let's Encrypt certificate ug ipa-edit sa Certbot ang imong NGINX configuration awtomatik aron ma-serve kini (kini usab ang mag-configure sa HTTP nga awtomatikong i-redirect sa HTTPS).

# certbot --nginx

21. Dayon padagana ang mosunod nga sugo aron mahimo ang awtomatik nga pagbag-o sa Let's Encrypt SSL/TLS certificate:

# 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. Sunod, i-update ang imong configuration sa Moodle aron makasugod sa paggamit sa HTTPS.

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

usba ang wwwroot URL gikan sa HTTP ngadto sa HTTPS:

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

23. Katapusan apan dili labing gamay, kumpirmahi nga ang imong Moodle site kay nagdagan na sa HTTPS.

Mao na sa pagkakaron! Para sa dugang nga impormasyon ug mga opsyon sa pag-configure sa pagpadagan sa imong bag-ong plataporma sa pagkat-on, adto sa website sa Moodle, ug basaha ang opisyal nga dokumentasyon.