Wyszukiwanie w witrynie

Jak zainstalować platformę edukacyjną Moodle z Nginx w CentOS 8


Moodle to najpopularniejszy na świecie system zarządzania nauką, służący do tworzenia solidnych witryn edukacyjnych online. Zawiera szereg działań i narzędzi edukacyjnych do wyboru, wspiera zarządzanie ocenami i jest dostarczany z niestandardowymi certyfikatami. Umożliwia także komunikację ze studentami w czasie rzeczywistym za pomocą potężnego narzędzia do wideokonferencji. Poza tym jest przystosowany do urządzeń mobilnych, więc Twoi uczniowie mogą uczyć się na swoich urządzeniach mobilnych.

Wymagania serwera Moodle

  • System operacyjny: minimalna instalacja serwera CentOS 8 lub RHEL 8 z zainstalowanym stosem LEMP.
  • Miejsce na dysku: 200 MB dla Moodle, a 5 GB to prawdopodobnie realistyczne minimum do przechowywania zawartości.
  • Procesor: 1 GHz (min), zalecany dwurdzeniowy 2 GHz lub więcej.
  • Pamięć: 512 MB (min), zalecane jest 1 GB lub więcej. Na dużym serwerze produkcyjnym prawdopodobnie znajdzie się 8 GB plus.

Na tej stronie

  • Tworzenie rekordu DNS domeny dla witryny Moodle
  • Instalowanie platformy edukacyjnej Moodle na serwerze CentOS 8
  • Konfigurowanie NGINX do obsługi witryny Moodle
  • Zakończ instalację Moodle poprzez instalator sieciowy
  • Włącz HTTPS na stronie Moodle za pomocą Let’s Encrypt

Tworzenie rekordu DNS domeny dla witryny Moodle

1. Zacznij od utworzenia subdomeny, której użytkownicy będą używać, aby uzyskać dostęp do witryny edukacyjnej online Moodle. Na przykład, jeśli nazwa Twojej domeny to testprojects.me, możesz utworzyć subdomenę o nazwie learning.testprojects.me.

Otwórz zaawansowane ustawienia DNS swojej domeny i dodaj rekord A, jak pokazano na poniższym obrazku.

Instalowanie Moodle na serwerze CentOS 8

2. Przed instalacją Moodle upewnij się, że masz wymagane rozszerzenia PHP na swoim serwerze. Aby je zainstalować, możesz uruchomić następującą komendę:

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. Następnie utwórz bazę danych dla aplikacji Moodle w następujący sposób.

mysql -u root -p

Następnie utwórz bazę danych, użytkownika bazy danych i utwórz bezpieczne hasło do użytku.

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. Teraz pobierz najnowszą wersję Moodle (3.9 w chwili pisania tego tekstu) z oficjalnej strony projektu moodle, rozpakuj plik archiwum i przenieś go do katalogu webroot (/var/www/html/), a następnie ustaw odpowiednie uprawnienia i własność, aby umożliwić serwerowi WWW dostęp do katalogu Moodle w następujący sposób.

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. Następnie utwórz katalog moodledata będący lokalizacją plików przesyłanych lub tworzonych przez interfejs Moodle, następnie przypisz odpowiednie uprawnienia i własności, aby umożliwić serwerowi WWW dostęp do odczytu i zapisu:


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

6. Następnie przejdź do katalogu instalacyjnego Moodle i utwórz plik config.php z przykładowego config.dist.php, a następnie otwórz go do edycji, aby skonfigurować niektóre kluczowe ustawienia platformy Moodle, takie jak parametry połączenia z bazą danych i lokalizacja witryny oraz miejsce, w którym można znaleźć katalog moodledata:

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

Ustaw prawidłowy typ bazy danych, poprawny host bazy danych, nazwę bazy danych oraz użytkownika bazy danych i hasło użytkownika.

$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. Ustaw także adres URL używany do uzyskiwania dostępu do Twojej witryny Moodle, określa to lokalizację wwwroot, w którym znajdują się Twoje pliki internetowe Moodle, oraz także dataroot (katalog moodledata):

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

Konfigurowanie NGINX do obsługi witryny Moodle

8. W tej sekcji musisz skonfigurować NGINX do obsługi aplikacji Moodle. Musisz utworzyć dla niego blok serwera w konfiguracji NGINX, jak pokazano.

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

Skopiuj i wklej następującą konfigurację do pliku konfiguracyjnego bloku serwera. Zastąp nazwę serwera nazwą subdomeny utworzoną powyżej, a fastcgi_pass powinno wskazywać php-fpm (uwaga że w CentOS 8 PHP-FPM akceptuje żądania FastCGI przy użyciu adresu zdefiniowanego w pliku /etc/nginx/conf.d/ konfiguracja 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;
}
}

Zapisz plik i zamknij go.

9. Następnie sprawdź poprawność konfiguracji NGINX, jeśli jest OK, zrestartuj nginx i usługi php-fpm, aby zastosować ostatnie zmiany:

nginx -t
systemctl restart nginx
systemctl restart php-fpm

10. Jeśli w swoim systemie masz włączony SELinux, uruchom następujące polecenia, aby ustawić prawidłowy kontekst dostępu do plików internetowych Moodle na komputerze serwer:

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

11. Poza tym upewnij się, że usługi HTTP i HTTPS są otwarte w zaporze sieciowej, aby umożliwić ruch do NGINX serwer internetowy:

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

Zakończ instalację Moodle poprzez instalator sieciowy

12. Aby uzyskać dostęp do instalatora internetowego Moodle, otwórz przeglądarkę internetową i nawiguj, korzystając z utworzonej powyżej subdomeny:

http://learning.testprojects.me

Po załadowaniu strony powitalnej przeczytaj warunki i kliknij Kontynuuj.

13. Następnie instalator internetowy sprawdzi, czy Twój system spełnia wymagania do uruchomienia witryny Moodle określonej wersji. Możesz przewinąć w dół, aby wyświetlić więcej informacji.

14. Instalator złoży skargę, że HTTPS nie jest włączony, na razie zignoruje ten błąd (w następnej sekcji pokażemy, jak włączyć HTTPS na Moodle) i kliknij Kontynuuj, aby rozpocząć właściwą instalację plików internetowych.

15. Teraz instalator rozpocznie właściwą instalację plików Moodle, jak pokazano na poniższym zrzucie ekranu. Po zakończeniu kliknij Kontynuuj.

16. W następnym kroku musisz zaktualizować konto administratora swojej witryny Moodle, aktualizując nazwę użytkownika, hasło, imię i nazwisko oraz adres e-mail. Następnie przewiń stronę w dół i kliknij Aktualizuj profil.

17. Następnie zaktualizuj ustawienia strony głównej witryny Moodle. Następnie przewiń w dół i kliknij Aktualizuj, aby rozpocząć korzystanie ze swojej witryny Moodle.

18. Następnie musisz zarejestrować swoją witrynę, postępując zgodnie z instrukcjami wyświetlanymi na ekranie. Do panelu możesz przejść klikając na Panel.

Konfigurowanie protokołu HTTPS w witrynie Moodle za pomocą narzędzia Let’s Encrypt

HTTPS dodaje pierwszą warstwę zabezpieczeń do Twojej witryny, aby umożliwić bezpieczną komunikację między użytkownikami a aplikacją Moodle (zwłaszcza serwerem internetowym NGINX, który odbiera żąda i dostarcza odpowiedzi).

Możesz kupić certyfikat SSL/TLS od komercyjnego urzędu certyfikacji lub skorzystać z narzędzia Let's Encrypt, które jest bezpłatne i rozpoznawane przez wszystkie nowoczesne przeglądarki internetowe. W tym przewodniku będziemy używać narzędzia Let's Encrypt.

19. Wdrażaniem certyfikatu Let's Encrypt zarządza się automatycznie za pomocą narzędzia certbot. Możesz zainstalować certbot i inne wymagane pakiety za pomocą następującego polecenia:

dnf install certbot python3-certbot-nginx

20. Następnie uruchom następujące polecenie, aby uzyskać certyfikat Let's Encrypt i pozwolić Certbotowi automatycznie edytować konfigurację NGINX, aby ją obsługiwać (skonfiguruje również HTTP do automatycznego przekierowania do HTTPS).

certbot --nginx

21. Następnie uruchom następujące polecenie, aby włączyć automatyczne odnawianie certyfikatu 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. Następnie zaktualizuj konfigurację Moodle, aby rozpocząć korzystanie z HTTPS.

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

zmień adres URL wwwrootHTTP na HTTPS:

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

23. Na koniec upewnij się, że Twoja witryna Moodle działa teraz w oparciu o HTTPS.

To wszystko na teraz! Aby uzyskać więcej informacji i opcji konfiguracji umożliwiających uruchomienie nowej platformy edukacyjnej, odwiedź witrynę Moodle i przeczytaj oficjalną dokumentację.