Slik installerer du Moodle Learning Platform med Nginx i CentOS 8


Moodle er verdens mest populære læringsadministrasjonssystem for å bygge robuste nettbaserte læringssider. Den har en rekke aktiviteter og pedagogiske verktøy som du kan velge mellom, den støtter vurderingsadministrasjon og leveres med tilpassede sertifikater. Det muliggjør også kommunikasjon med elevene i sanntid med et kraftig videokonferanseverktøy. Dessuten er den mobilklar, slik at elevene dine kan lære fra sine mobile enheter.

Moodle-serverkrav

  • Operativsystem: en minimal installasjon av CentOS 8- eller RHEL 8-server med LEMP-stack installert.
  • Diskplass: 200 MB for Moodle, og 5 GB er sannsynligvis et realistisk minimum for lagring av innhold.
  • Prosessor: 1GHz (min), 2GHz dual-core eller mer anbefales.
  • Minne: 512 MB (min), 1 GB eller mer anbefales. 8 GB pluss er sannsynligvis på en stor produksjonsserver.

På denne siden

  • Opprette en domene-DNS-post for Moodle-nettstedet
  • Installere Moodle Learning Platform i CentOS 8 Server
  • Konfigurere NGINX for å betjene Moodle-nettstedet
  • Fullfør Moodle-installasjonen via Web Installer
  • Aktiver HTTPS på Moodle-nettstedet ved å bruke Let's Encrypt

Opprette en domene-DNS-post for Moodle-nettstedet

1. Begynn med å opprette et underdomene som brukere vil bruke for å få tilgang til Moodle-nettstedet for læring. For eksempel, hvis domenenavnet ditt er testprojects.me, kan du opprette et underdomene kalt learning.testprojects.me.

Åpne domenenavnets avanserte DNS-innstillinger og legg til en A-post som vist i bildet nedenfor.

Installere Moodle i CentOS 8 Server

2. Før du installerer Moodle, sørg for at du har de nødvendige PHP-utvidelsene på serveren din. Du kan kjøre følgende kommando for å installere dem:

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. Deretter oppretter du en database for Moodle-applikasjonen som følger.

mysql -u root -p

Deretter oppretter du databasen, databasebrukeren og oppretter et sikkert passord for bruken.

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. Last nå ned den nyeste versjonen av Moodle (3.9 i skrivende stund) fra det offisielle nettstedet til moodle-prosjektet, pakk ut arkivfilen og flytt den til webroot-katalogen (/var/www/html/), og sett deretter passende tillatelser og eierskap for å gi webserveren tilgang til Moodle-katalogen, som følger.

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. Deretter oppretter du moodledata-katalogen som er plasseringen til filer som er lastet opp eller opprettet av Moodle-grensesnittet, og tilordner deretter passende tillatelser og eierskap for å gi webserveren lese- og skrivetilgang til den:


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

6. Deretter går du inn i Moodle-installasjonskatalogen og oppretter en config.php-fil fra eksempelet config.dist.php-filen som følger med, åpne den for redigering for å konfigurere noen nøkkelinnstillinger for Moodle-plattformen din, for eksempel databasetilkoblingsparametere og stedets plassering og hvor den kan finne moodledata-katalogen:

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

Angi riktig databasetype, riktig databasevert, databasenavn og databasebruker og brukerens passord.

$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. Angi også URL-en som brukes for å få tilgang til Moodle-sitten din, dette spesifiserer plasseringen til wwwroot der Moodle-nettfilene dine er plassert, og også dataroten (moodledata-katalogen):

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

Konfigurere NGINX for å betjene Moodle-nettstedet

8. I denne delen må du konfigurere NGINX for å betjene Moodle-applikasjonen din. Du må opprette en serverblokk for den i NGINX-konfigurasjonen som vist.

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

Kopier og lim inn følgende konfigurasjon i konfigurasjonsfilen for serverblokken. Erstatt servernavnet med underdomenenavnet du har opprettet ovenfor, og fastcgi_pass skal peke til php-fpm (merk at CentOS 8 aksepterer PHP-FPM FastCGI-forespørsler ved å bruke adressen definert i /etc/nginx/conf.d/ php-fpm.conf-konfigurasjon).

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

Lagre filen og lukk den.

9. Sjekk deretter NGINX-konfigurasjonen for korrekthet, hvis den er OK, start nginx på nytt og php-fpm-tjenester for å bruke de siste endringene:

nginx -t
systemctl restart nginx
systemctl restart php-fpm

10. Hvis du har SELinux aktivert på systemet ditt, kjør følgende kommandoer for å angi riktig kontekst for tilgang til Moodle-nettfilene på server:

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

11. Sørg dessuten for at HTTP- og HTTPS-tjenestene er åpne i brannmuren for å tillate trafikk til NGINX Internett server:

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

Fullfør Moodle-installasjonen via Web Installer

12. For å få tilgang til Moodle-nettinstallasjonsprogrammet, åpne nettleseren og naviger ved hjelp av underdomenet du opprettet ovenfor:

http://learning.testprojects.me

Når velkomstsiden er lastet, les gjennom vilkårene og betingelsene og klikk Fortsett.

13. Deretter vil nettinstallasjonsprogrammet sjekke om systemet ditt oppfyller kravene for å kjøre et Moodle-nettsted for den angitte versjonen. Du kan bla ned for å se mer informasjon.

14. Installasjonsprogrammet vil klage over at HTTPS ikke er aktivert, ignorer den feilen foreløpig (i neste avsnitt viser vi hvordan du aktiverer HTTPS på Moodle), og klikker Fortsett for å starte selve installasjonen av nettfilene.

15. Nå vil installasjonsprogrammet starte selve installasjonen av Moodle-filene som vist i følgende skjermbilde. Når den er fullført, klikker du på Fortsett.

16. I neste trinn må du oppdatere Moodle-nettstedets administratorkonto ved å oppdatere brukernavnet, passordet, fornavnet og etternavnet og e-postadressen. Rull deretter nedover siden og klikk på Oppdater profil.

17. Oppdater deretter innstillingene for Moodle-nettstedets forside. Rull deretter ned og klikk Oppdater for å begynne å bruke Moodle-nettstedet ditt.

18. Deretter må du registrere nettstedet ditt ved å følge instruksjonene på skjermen. Du kan gå til dashbordet ved å klikke på dashbordet.

Sette opp HTTPS på Moodle-nettstedet ved å bruke Let's Encrypt

HTTPS legger til det første sikkerhetslaget til nettstedet ditt for å muliggjøre sikker kommunikasjon mellom brukerne og Moodle-applikasjonen (spesielt NGINX-nettserveren som mottar ber om og leverer svar).

Du kan enten kjøpe et SSL/TLS-sertifikat fra en kommersiell CA eller bruke Let's Encrypt som er gratis og gjenkjennes av alle moderne nettlesere. For denne veiledningen bruker vi La oss kryptere.

19. La oss kryptere-sertifikatimplementeringen administreres automatisk ved hjelp av certbot-verktøyet. Du kan installere certbot og andre nødvendige pakker med følgende kommando:

dnf install certbot python3-certbot-nginx

20. Kjør deretter følgende kommando for å få et La oss kryptere-sertifikat og få Certbot til å redigere NGINX-konfigurasjonen automatisk for å betjene den (den vil også konfigurere HTTP for å bli omdirigert automatisk til HTTPS).

certbot --nginx

21. Kjør deretter følgende kommando for å aktivere automatisk fornyelse av La oss kryptere SSL/TLS-sertifikatet:

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. Deretter oppdaterer du Moodle-konfigurasjonen for å begynne å bruke HTTPS.

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

endre wwwroot-nettadressen fra HTTP til HTTPS:

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

23. Sist men ikke minst, bekreft at Moodle-nettstedet ditt nå kjører på HTTPS.

Det var det for nå! For mer informasjon og konfigurasjonsalternativer for å kjøre din nye læringsplattform, gå til Moodle-nettstedet og les gjennom den offisielle dokumentasjonen.