Πώς να εγκαταστήσετε το Moodle Learning Platform με το Nginx στο CentOS 8


Το Moodle είναι το πιο δημοφιλές σύστημα διαχείρισης μάθησης στον κόσμο για τη δημιουργία ισχυρών διαδικτυακών ιστοτόπων εκμάθησης. Διαθέτει μια σειρά από δραστηριότητες και εκπαιδευτικά εργαλεία από τα οποία μπορείτε να επιλέξετε, υποστηρίζει τη διαχείριση αξιολόγησης και αποστέλλει με προσαρμοσμένα πιστοποιητικά. Επιτρέπει επίσης την επικοινωνία με τους μαθητές σας σε πραγματικό χρόνο με ένα ισχυρό εργαλείο τηλεδιάσκεψης. Επιπλέον, είναι έτοιμο για κινητά, ώστε οι μαθητές σας να μπορούν να μάθουν από τις κινητές συσκευές τους.

Απαιτήσεις διακομιστή Moodle

  • Λειτουργικό σύστημα: εγκατεστημένη μια ελάχιστη εγκατάσταση στοίβας LEMP.
  • Χώρος στο δίσκο: 200 MB για το Moodle και τα 5 GB είναι πιθανώς ένα ρεαλιστικό ελάχιστο για την αποθήκευση περιεχομένου.
  • Επεξεργαστής: Συνιστάται 1 GHz (min), 2 GHz διπλού πυρήνα ή περισσότερο.
  • Μνήμη: 512 MB (min), συνιστάται 1 GB ή περισσότερο. 8 GB plus είναι πιθανό σε έναν μεγάλο διακομιστή παραγωγής.

Σε αυτήν την σελίδα

  • Δημιουργία εγγραφής DNS τομέα για τον ιστότοπο του Moodle
  • Εγκατάσταση της πλατφόρμας εκμάθησης Moodle στον διακομιστή CentOS 8
  • Διαμόρφωση του NGINX για εξυπηρέτηση του ιστότοπου του Moodle
  • Ολοκληρώστε την εγκατάσταση του Moodle μέσω Web Installer
  • Ενεργοποιήστε το HTTPS στον ιστότοπο του Moodle χρησιμοποιώντας το Let’s Encrypt

Δημιουργία εγγραφής DNS τομέα για τον ιστότοπο του Moodle

1. Ξεκινήστε δημιουργώντας έναν υποτομέα που θα χρησιμοποιήσουν οι χρήστες για πρόσβαση στον διαδικτυακό ιστότοπο εκμάθησης Moodle. Για παράδειγμα, εάν το όνομα τομέα σας είναι testprojects.me, μπορείτε να δημιουργήσετε έναν υποτομέα που ονομάζεται learning.testprojects.me.

Ανοίξτε τις σύνθετες ρυθμίσεις DNS του ονόματος τομέα σας και προσθέστε μια εγγραφή A όπως φαίνεται στην παρακάτω εικόνα.

Εγκατάσταση του Moodle στον διακομιστή CentOS 8

2. Πριν εγκαταστήσετε το Moodle, βεβαιωθείτε ότι έχετε τις απαιτούμενες επεκτάσεις PHP στον διακομιστή σας, μπορείτε να εκτελέσετε την ακόλουθη εντολή για να τις εγκαταστήσετε:

# 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 '';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

4. Τώρα κατεβάστε την πιο πρόσφατη έκδοση του Moodle (3.9 τη στιγμή της σύνταξης) από τον επίσημο ιστότοπο του έργου moodle, εξαγάγετε το αρχείο αρχειοθέτησης και μετακινήστε το στον κατάλογό σας 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

Ορίστε τον σωστό τύπο βάσης δεδομένων, τον σωστό κεντρικό υπολογιστή βάσης δεδομένων, το όνομα βάσης δεδομένων και τον χρήστη της βάσης δεδομένων και τον κωδικό πρόσβασης του χρήστη.

$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    = 'zzwd0L2';   // your database password
$CFG->prefix    = 'mdl_';       // prefix to use for all table names

7. Ορίστε επίσης τη διεύθυνση URL που χρησιμοποιείται για την πρόσβαση στο sit σας στο Moodle, αυτό καθορίζει τη θέση του wwwroot όπου βρίσκονται τα αρχεία ιστού σας στο Moodle και επίσης τον dataroot (ο κατάλογος moodledata):

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

Διαμόρφωση του NGINX για εξυπηρέτηση του ιστότοπου του Moodle

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 για ορθότητα, εάν είναι OK, επανεκκινήστε το nginx και υπηρεσίες php-fpm για την εφαρμογή των πρόσφατων αλλαγών:

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

10. Εάν έχετε ενεργοποιήσει το SELinux στο σύστημά σας, τότε εκτελέστε τις ακόλουθες εντολές για να ορίσετε το σωστό περιβάλλον για την πρόσβαση στα αρχεία web Moodle στο υπηρέτης:

# 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

Ολοκληρώστε την εγκατάσταση του Moodle μέσω Web Installer

12. Για πρόσβαση στο πρόγραμμα εγκατάστασης ιστού Moodle, ανοίξτε το πρόγραμμα περιήγησής σας και πλοηγηθείτε χρησιμοποιώντας τον υποτομέα που δημιουργήσατε παραπάνω:

http://learning.testprojects.me

Μόλις φορτωθεί η σελίδα καλωσορίσματος, διαβάστε τους όρους και τις προϋποθέσεις και κάντε κλικ στην επιλογή Συνέχεια.

13. Στη συνέχεια, το πρόγραμμα εγκατάστασης Ιστού θα ελέγξει εάν το σύστημά σας πληροί τις απαιτήσεις για την εκτέλεση ενός ιστότοπου Moodle της καθορισμένης έκδοσης. Μπορείτε να κάνετε κύλιση προς τα κάτω για να δείτε περισσότερες πληροφορίες.

14. Το πρόγραμμα εγκατάστασης θα παραπονεθεί ότι το HTTPS δεν είναι ενεργοποιημένο, θα αγνοήσει αυτό το σφάλμα προς το παρόν (στην επόμενη ενότητα, θα δείξουμε πώς να ενεργοποιήσετε το HTTPS στο Moodle) και κάντε κλικ Συνέχεια, για να ξεκινήσει η πραγματική εγκατάσταση των αρχείων Ιστού.

15. Τώρα το πρόγραμμα εγκατάστασης θα ξεκινήσει την πραγματική εγκατάσταση των αρχείων Moodle όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης. Μόλις ολοκληρωθεί, κάντε κλικ στο Συνέχεια.

16. Στο επόμενο βήμα, πρέπει να ενημερώσετε τον λογαριασμό διαχειριστή του ιστότοπού σας Moodle ενημερώνοντας το όνομα χρήστη, τον κωδικό πρόσβασης, το όνομα και το επώνυμο και τη διεύθυνση ηλεκτρονικού ταχυδρομείου. Στη συνέχεια, μετακινηθείτε προς τα κάτω στη σελίδα και κάντε κλικ στην επιλογή Ενημέρωση προφίλ.

17. Στη συνέχεια, ενημερώστε τις ρυθμίσεις αρχικής σελίδας του ιστότοπου του Moodle. Στη συνέχεια, κάντε κύλιση προς τα κάτω και κάντε κλικ στην επιλογή Ενημέρωση για να ξεκινήσετε να χρησιμοποιείτε τον ιστότοπό σας στο Moodle.

18. Στη συνέχεια, πρέπει να καταχωρήσετε τον ιστότοπό σας ακολουθώντας τις οδηγίες στην οθόνη. Μπορείτε να μεταβείτε στον πίνακα ελέγχου κάνοντας κλικ στον πίνακα ελέγχου.

Ρύθμιση HTTPS στον ιστότοπο του Moodle χρησιμοποιώντας το Let’s Encrypt

Το HTTPS προσθέτει το πρώτο επίπεδο ασφάλειας στον ιστότοπό σας για να επιτρέψει την ασφαλή επικοινωνία μεταξύ των χρηστών σας και της εφαρμογής Moodle (ειδικά του διακομιστή ιστού NGINX που λαμβάνει ζητά και παραδίδει απαντήσεις).

Μπορείτε είτε να αγοράσετε ένα πιστοποιητικό SSL/TLS από μια εμπορική ΑΠ είτε να χρησιμοποιήσετε το Let’s Encrypt το οποίο είναι δωρεάν και αναγνωρίζεται από όλα τα σύγχρονα προγράμματα περιήγησης ιστού. Για αυτόν τον οδηγό, θα χρησιμοποιήσουμε το Let’s Encrypt.

19. Η ανάπτυξη του πιστοποιητικού Let’s Encrypt διαχειρίζεται αυτόματα χρησιμοποιώντας το εργαλείο certbot. Μπορείτε να εγκαταστήσετε το certbot και άλλα απαιτούμενα πακέτα με την ακόλουθη εντολή:

# dnf install certbot python3-certbot-nginx

20. Στη συνέχεια, εκτελέστε την ακόλουθη εντολή για να λάβετε ένα πιστοποιητικό Let's Encrypt και να ζητήσετε από το Certbot να επεξεργαστεί αυτόματα τη διαμόρφωση του NGINX για να την εξυπηρετήσει (θα ρυθμίσει επίσης τις παραμέτρους HTTP για να ανακατευθυνθεί αυτόματα στο HTTPS).

# certbot --nginx

21. Στη συνέχεια, εκτελέστε την ακόλουθη εντολή για να ενεργοποιήσετε την αυτόματη ανανέωση του πιστοποιητικού Let’s Encrypt 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 και διαβάστε την επίσημη τεκμηρίωση.