Zoeken op website

Hoe Moodle Learning Platform met Nginx in CentOS 8 te installeren


Moodle is 's werelds populairste leerbeheersysteem voor het bouwen van robuuste online leersites. Het biedt een scala aan activiteiten en educatieve hulpmiddelen waaruit u kunt kiezen, het ondersteunt beoordelingsbeheer en wordt geleverd met aangepaste certificaten. Het maakt ook communicatie met uw studenten in realtime mogelijk met een krachtige videoconferentietool. Bovendien is het geschikt voor mobiel, zodat uw leerlingen kunnen leren vanaf hun mobiele apparaten.

Vereisten voor Moodle-server

  • Besturingssysteem: een minimale installatie van CentOS 8 of RHEL 8 server met geïnstalleerde LEMP-stack.
  • Schijfruimte: 200 MB voor de Moodle, en 5 GB is waarschijnlijk een realistisch minimum voor het opslaan van inhoud.
  • Processor: 1GHz (min), 2GHz dual-core of meer aanbevolen.
  • Geheugen: 512 MB (min), 1 GB of meer wordt aanbevolen. 8 GB plus is waarschijnlijk op een grote productieserver.

Op deze pagina

  • Een domein-DNS-record maken voor de Moodle-website
  • Moodle-leerplatform installeren in CentOS 8 Server
  • NGINX configureren om de Moodle-website te bedienen
  • Voltooi de Moodle-installatie via Web Installer
  • Schakel HTTPS in op de Moodle-site met Let's Encrypt

Een domein-DNS-record maken voor de Moodle-website

1. Begin met het maken van een subdomein dat gebruikers kunnen gebruiken om toegang te krijgen tot de online leersite Moodle. Als uw domeinnaam bijvoorbeeld testprojects.me is, kunt u een subdomein maken met de naam learning.testprojects.me.

Open de geavanceerde DNS-instellingen van uw domeinnaam en voeg een A-record toe, zoals weergegeven in de volgende afbeelding.

Moodle installeren in CentOS 8 Server

2. Voordat u Moodle installeert, moet u ervoor zorgen dat u over de vereiste PHP-extensies op uw server beschikt. U kunt de volgende opdracht uitvoeren om ze te installeren:

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. Maak vervolgens als volgt een database voor de Moodle-applicatie.

mysql -u root -p

Maak vervolgens de database en databasegebruiker aan en maak een veilig wachtwoord voor gebruik.

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

4. Download nu de nieuwste versie van Moodle (3.9 op het moment van schrijven) van de officiële Moodle-projectwebsite, pak het archiefbestand uit en verplaats het naar uw webroot-map (/var/www/html/) en stel vervolgens als volgt de juiste rechten en eigendom in om de webserver toegang te geven tot de Moodle-map.

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. Maak vervolgens de map moodledata aan, de locatie van bestanden die zijn geüpload of gemaakt door de Moodle-interface, wijs vervolgens de juiste rechten toe en eigendom om de webserver lees- en schrijftoegang te geven:


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

6. Ga vervolgens naar de Moodle installatiemap en maak een config.php bestand van het voorbeeld config.dist.php bestand, open het vervolgens om het te bewerken en configureer enkele belangrijke instellingen voor uw Moodle platform, zoals databaseverbindingsparameters en de locatie van de site en waar het de moodledata-directory kan vinden:

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

Stel het juiste databasetype, de juiste databasehost, databasenaam, databasegebruiker en het wachtwoord van de gebruiker in.

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

7. Stel ook de URL in die wordt gebruikt om toegang te krijgen tot uw Moodle site, dit specificeert de locatie van de wwwroot waar uw Moodle-webbestanden zich bevinden, en ook de dataroot (de moodledata directory):

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

NGINX configureren om de Moodle-website te bedienen

8. In dit gedeelte moet u NGINX configureren voor uw Moodle-applicatie. U moet er een serverblok voor maken in de NGINX-configuratie, zoals weergegeven.

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

Kopieer en plak de volgende configuratie in het serverblokconfiguratiebestand. Vervang de servernaam door uw subdomeinnaam die hierboven is aangemaakt, en de fastcgi_pass moet verwijzen naar php-fpm (opmerking dat op CentOS 8 PHP-FPM FastCGI-verzoeken accepteert met behulp van het adres dat is gedefinieerd in /etc/nginx/conf.d/ php-fpm.conf configuratie).

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

Sla het bestand op en sluit het.

9. Controleer vervolgens de NGINX-configuratie op juistheid. Als deze Ok is, start u de nginx opnieuw op en php-fpm services om de recente wijzigingen toe te passen:

nginx -t
systemctl restart nginx
systemctl restart php-fpm

10. Als je SELinux hebt ingeschakeld op je systeem, voer dan de volgende opdrachten uit om de juiste context in te stellen voor toegang tot de Moodle webbestanden op de server:

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

11. Zorg er bovendien voor dat de HTTP- en HTTPS-services open zijn in de firewall, zodat verkeer naar de NGINX mogelijk is web Server:

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

Voltooi de Moodle-installatie via Web Installer

12. Om toegang te krijgen tot het Moodle webinstallatieprogramma, opent u uw webbrowser en navigeert u met het subdomein dat u hierboven heeft gemaakt:

http://learning.testprojects.me

Zodra de welkomstpagina is geladen, leest u de algemene voorwaarden door en klikt u op Doorgaan.

13. Vervolgens controleert het webinstallatieprogramma of uw systeem voldoet aan de vereisten voor het uitvoeren van een Moodle-site met de opgegeven versie. U kunt naar beneden scrollen om meer informatie te bekijken.

14. Het installatieprogramma zal klagen dat HTTPS niet is ingeschakeld. Negeer deze fout voorlopig (in de volgende sectie laten we zien hoe je HTTPS in Moodle kunt inschakelen) en klik op Ga verder om de daadwerkelijke installatie van de webbestanden te starten.

15. Nu zal het installatieprogramma beginnen met de daadwerkelijke installatie van de Moodle-bestanden, zoals weergegeven in de volgende schermafbeelding. Zodra het klaar is, klikt u op Doorgaan.

16. In de volgende stap moet u het beheerdersaccount van uw Moodle-site bijwerken door de gebruikersnaam, het wachtwoord, de voor- en achternaam en het e-mailadres bij te werken. Scroll vervolgens naar beneden op de pagina en klik op Profiel bijwerken.

17. Update vervolgens de voorpagina-instellingen van de Moodle-site. Scroll vervolgens naar beneden en klik op Bijwerken om uw Moodle-site te gaan gebruiken.

18. Vervolgens moet u uw site registreren door de instructies op het scherm te volgen. U kunt naar het dashboard gaan door op Dashboard te klikken.

HTTPS instellen op de Moodle-site met Let's Encrypt

HTTPS voegt de eerste beveiligingslaag toe aan uw site om veilige communicatie tussen uw gebruikers en de Moodle-applicatie mogelijk te maken (vooral de NGINX-webserver die vraagt en levert antwoorden).

U kunt een SSL/TLS-certificaat aanschaffen bij een commerciële CA of Let’s Encrypt gebruiken, wat gratis is en door alle moderne webbrowsers wordt herkend. Voor deze handleiding gebruiken we Let’s Encrypt.

19. De implementatie van Let's Encrypt-certificaten wordt automatisch beheerd met behulp van de certbot-tool. U kunt certbot en andere vereiste pakketten installeren met de volgende opdracht:

dnf install certbot python3-certbot-nginx

20. Voer vervolgens de volgende opdracht uit om een Let's Encrypt-certificaat te verkrijgen en Certbot uw NGINX-configuratie automatisch te laten bewerken om deze te leveren (het zal ook configureren HTTP wordt automatisch doorgestuurd naar HTTPS).

certbot --nginx

21. Voer vervolgens de volgende opdracht uit om automatische verlenging van het Let's Encrypt SSL/TLS-certificaat in te schakelen:

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. Update vervolgens uw Moodle-configuratie om HTTPS te gaan gebruiken.

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

wijzig de wwwroot URL van HTTP in HTTPS:

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

23. Controleer ten slotte of uw Moodle site nu op HTTPS draait.

Dat is het voor nu! Voor meer informatie en configuratieopties om uw nieuwe leerplatform te gebruiken, gaat u naar de Moodle-website en leest u de officiële documentatie.