Ako nainštalovať Moodle LMS na server Ubuntu 24.04


Tento návod existuje pre tieto verzie OS

  • Ubuntu 24.04 (Noble Numbat)
  • Ubuntu 22.04 (Jammy Jellyfish)
  • Ubuntu 20.04 (Focal Fossa)
  • Ubuntu 16.04 (Xenial Xerus)

Na tejto stránke

  1. Predpoklady
  2. Inštalácia závislostí
  3. Konfigurácia servera MariaDB
  4. Vytvorenie databázy a užívateľa
  5. Konfigurácia PHP
  6. Sťahovanie zdrojového kódu Moodle
  7. Nastavenie virtuálneho hostiteľa Apache
  8. Zabezpečenie Moodle pomocou UFW
  9. Zabezpečenie Moodle pomocou HTTPS
  10. Inštalácia Moodle
  11. Záver

Moodle je populárna platforma s otvoreným zdrojovým kódom, ktorú používajú vzdelávacie inštitúcie na celom svete na vytváranie online kurzov, správu obsahu a uľahčenie kolaboratívneho učenia. Spustenie Moodle na Ubuntu je bežnou voľbou kvôli stabilite, bezpečnosti a podpore Ubuntu pre širokú škálu softvérových balíkov. Proces zahŕňa inštaláciu potrebných komponentov, ako je Apache alebo Nginx ako webový server, MySQL alebo PostgreSQL ako databáza a PHP ako skriptovací jazyk, z ktorých všetky sú na Ubuntu dobre podporované. Toto nastavenie umožňuje inštitúciám vytvoriť robustné, škálovateľné a prispôsobiteľné online vzdelávacie prostredie, ktoré možno prispôsobiť špecifickým vzdelávacím potrebám.

V tomto návode vám ukážeme, ako nainštalovať Moodle na server Ubuntu 24.04. Nainštalujete Moodle s LAMP Stack a potom zabezpečíte Moodle pomocou UFW a HTTPS cez Certbot a Letsencrypt.

Predpoklady

Skôr ako začnete, uistite sa, že máte nasledujúce:

  • Server Ubuntu 24.04.
  • Používateľ bez oprávnenia root s oprávneniami správcu.
  • Názov domény smerujúci na IP adresu servera.
  • UFW firewall je zapnutý a spustený.

Inštalácia závislostí

Moodle je open-source vzdelávacia platforma napísaná v PHP. Na inštaláciu Moodle potrebujete Apache/Nginx, MySQL/MariaDB/PostgreSQL a PHP. V tejto časti nainštalujete LAMP Stack (Linux, Apache, MariaDB a PHP) na Ubuntu a nad ním nastavíte Moodle.

Ak chcete začať, spustite nasledujúci príkaz a aktualizujte index balíkov Ubuntu.

sudo apt update

Teraz vykonajte príkaz uvedený nižšie a nainštalujte závislosti LAMP Stack (Apache, MariaDB a PHP). Zadajte „Y“ na potvrdenie inštalácie.

sudo apt install apache2 mariadb-server php-cli php-intl php-xmlrpc php-soap php-mysql php-zip php-gd php-tidy php-mbstring php-curl php-xml php-pear php-bcmath libapache2-mod-php

Po dokončení inštalácie skontrolujte stav služby Apache pomocou príkazu nižšie.

sudo systemctl is-enabled apache2
sudo systemctl status apache2

V nasledujúcom texte môžete vidieť, že webový server Apache beží.

Skontrolujte databázový server MariaDB pomocou nasledujúceho príkazu. Uvidíte, že server MariaDB je spustený.

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

Nakoniec skontrolujte verziu PHP a povolené rozšírenia pomocou nasledujúcich údajov:

php -v
php -m

Uvidíte, že PHP 8.3 je nainštalované na vašom serveri Ubuntu.

Konfigurácia servera MariaDB

Po nainštalovaní závislostí musíte zmeniť predvolený ukladací modul MariaDB na 'InnoDB', ktorý vyžaduje Moodle. Môžete to urobiť úpravou konfigurácie servera MariaDB. A potom tiež zabezpečíte nasadenie servera MariaDB pomocou pomôcky 'mariadb_secure_installation'.

Otvorte konfiguračný súbor servera MariaDB '/etc/mysql/mariadb.conf.d/50-server.cnf' pomocou editora 'nano'.

sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf

Pridajte nasledujúcu konfiguráciu do sekcie '[mysqld]'. Toto zmení predvolený ukladací mechanizmus na 'innodb'.

innodb_file_format = Barracuda 
default_storage_engine = innodb
innodb_large_prefix = 1
innodb_file_per_table = 1

Uložte súbor a ukončite editor.

Teraz spustite príkaz 'systemctl' nižšie, aby ste reštartovali server MariaDB a použili svoje zmeny.

sudo systemctl restart mariadb

Nakoniec spustite príkaz 'mariadb_secure_installation' nižšie, aby ste nastavili užívateľa root MariaDB a zabezpečili svoje nasadenie.

sudo mariadb_secure_installation

V rámci tohto procesu budete požiadaní o nasledovné:

  • Pre predvolenú inštaláciu servera MariaDB bez hesla root stlačte ENTER, keď budete požiadaní o heslo.
  • Lokálna autentifikácia pre užívateľov MariaDB root je štandardne zabezpečená, zadajte 'n', keď budete požiadaní o zmenu autentifikačnej metódy na 'unix_socket'.
  • Ak chcete vytvoriť nové root heslo MariaDB, zadajte „Y“. Potom zadajte silné heslo pre používateľa root v službe MariaDB a opakujte.
  • Keď sa zobrazí výzva na zakázanie vzdialenej autentifikácie pre používateľa root MariaDB, zadajte „Y“ na vyjadrenie súhlasu.
  • Predvolená inštalácia servera MariaDB sa dodáva s „testom“ databázy a umožňuje prístup anonymnému používateľovi. Zadajte 'Y' pre obe nastavenia, aby ste odstránili predvolenú databázu 'test' a odstránili anonymné privilégium.
  • Nakoniec zadajte 'Y' na potvrdenie privilégií pre opätovné načítanie tabuľky.

Vytvorenie databázy a užívateľa

Teraz, keď ste nakonfigurovali server MariaDB, poďme vytvoriť novú databázu a používateľa prostredníctvom klienta 'mariadb'.

Prihláste sa na server MariaDB pomocou klientskeho príkazu 'mariadb' nižšie. Po zobrazení výzvy zadajte svoje root heslo MariaDB.

sudo mariadb -u root -p

Teraz spustite nasledujúce dotazy na vytvorenie novej databázy 'moodle', používateľa 'moodle' a nezabudnite zmeniť heslo s vašimi informáciami.

CREATE DATABASE moodle DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL ON moodle.* TO 'moodle'@'localhost' IDENTIFIED BY "MoodlePassw0rd";
FLUSH PRIVILEGES;
QUIT

Konfigurácia PHP

V tejto časti upravíte konfiguráciu PHP 'php.ini' a zmeníte niektoré predvolené hodnoty, ktoré vyžaduje Moodle.

Otvorte konfiguráciu PHP '/etc/php/8.3/apache2/php.ini' pomocou editora 'nano'.

sudo nano /etc/php/8.3/apache2/php.ini

Zmeňte predvolenú konfiguráciu nasledujúcim spôsobom. Nezabudnite upraviť možnosti 'memory_limit' a 'date_timezone' s vašimi informáciami.

memory_limit = 256M
upload_max_filesize = 60M
max_execution_time = 300
date.timezone = Europe/Amsterdam
max_input_vars = 5000

Po dokončení uložte súbor a ukončite.

Nakoniec spustite príkaz uvedený nižšie, aby ste reštartovali webový server Apache a použili zmeny v PHP.

sudo systemctl restart apache2

Sťahovanie zdrojového kódu Moodle

V tomto bode ste nainštalovali a nakonfigurovali zásobník LAMP. Stiahneme si zdrojový kód Moodle a nakonfigurujeme inštalačný adresár Moodle.

Prejdite do adresára '/var/www' a stiahnite si zdrojový kód Moodle pomocou príkazu 'wget'. Nezabudnite navštíviť stránku sťahovania Moodle, kde získate odkaz na najnovšiu verziu. V tomto prípade si stiahnete najnovšiu stabilnú verziu Moodle 40.4.

cd /var/www
wget https://download.moodle.org/download.php/direct/stable404/moodle-latest-404.tgz

Po stiahnutí Moodle ho rozbaľte pomocou príkazu 'tar' nižšie. Zdrojový kód Moodle bude dostupný v adresári '/var/www/moodle'.

tar xvf moodle-latest-404.tgz

Nakoniec vykonajte príkaz uvedený nižšie a vytvorte nový dátový adresár '/var/www/moodledata', zmeňte vlastníctvo adresára Moodle na používateľa 'www-data' a uistite sa, že do Moodle aj do adresára údajov môže zapisovať používateľ 'www-data'.

sudo mkdir -p /var/www/moodledata
sudo chown -R www-data:www-data /var/www/moodle /var/www/moodledata
sudo chmod u+rwx /var/www/moodle /var/www/moodledata

Nastavenie virtuálneho hostiteľa Apache

Po stiahnutí Moodle vytvoríte nový súbor virtuálneho hostiteľa Apache na spustenie Moodle. Uistite sa teda, že máte svoju doménu pripravenú a priradenú k IP adrese vášho servera Ubuntu.

Najprv spustite príkaz 'a2enmod' nižšie, aby ste aktivovali modul 'rewrite'.

sudo a2enmod rewrite

Vytvorte nový súbor virtuálneho hostiteľa Apache '/etc/apache2/sites-available/moodle.conf' pomocou nasledujúceho editora 'nano'.

sudo nano /etc/apache2/sites-available/moodle.conf

Vložte nasledujúcu konfiguráciu a nezabudnite zmeniť názov domény s vašimi informáciami.

<VirtualHost *:80>
 DocumentRoot /var/www/moodle/
 ServerName moodle.howtoforge.local
 ServerAdmin [email 
 
 <Directory /var/www/moodle/>
 Options +FollowSymlinks
 AllowOverride All
 Require all granted
 </Directory>
 ErrorLog /var/log/apache2/moodle_error.log
 CustomLog /var/log/apache2/moodle_access.log combined
</VirtualHost>

Uložte súbor a po dokončení ukončite editor.

Teraz spustite nasledujúci príkaz, aby ste povolili súbor 'moodle.conf' a overili svoju syntax Apache. Ak máte správnu syntax Apache, zobrazí sa výstup „Syntax je v poriadku“.

sudo a2ensite moodle.conf
sudo apachectl configtest

Nakoniec spustite príkaz 'systemctl' nižšie, čím reštartujete Apache a použijete svoje zmeny.

sudo systemctl restart apache2

Zabezpečenie Moodle pomocou UFW

V tomto kroku otvoríte protokoly HTTP a HTTPS prostredníctvom UFW (Uncomplicated Firewall). Pred začatím sa uistite, že máte spustený UFW.

Spustite príkaz nižšie, aby ste povolili profil 'Apache Full' na UFW. Vďaka tomu bude povolený prenos HTTP a HTTPS.

sudo ufw allow 'Apache Full'

Teraz skontrolujte zoznam povolených pravidiel na UFW s nasledujúcim. Uvidíte, že profil „Apache Full“ je povolený.

sudo ufw status

Zabezpečenie Moodle pomocou HTTPS

Okrem firewallu si vygenerujete aj SSL/TLS certifikáty a zabezpečíte Moodle HTTPS. V tejto časti implementujete HTTPS pre Moodle cez Certbot a Letsencrypt. Ak inštalujete Moodle lokálne, toto preskočte.

Nainštalujte balíky 'certbot' a 'python3-certbot-apache' pomocou nasledujúceho príkazu.

sudo apt install certbot python3-certbot-apache -y

Po dokončení inštalácie spustite príkaz 'certbot' nižšie a vygenerujte SSL/TLS certifikáty pre Moodle. Nezabudnite zmeniť názov domény a e-mailovú adresu s vašimi informáciami.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email  -d moodle.howtoforge.local

Po dokončení procesu budú vaše SSL certifikáty dostupné v adresári '/etc/letsencrypt/live/domain.com' a vaša inštalácia Moodle by mala byť zabezpečená automaticky pomocou HTTPS.

Inštalácia Moodle

Navštívte názov svojej domény Moodle, napríklad https://moodle.howtoforge.local/, a zobrazí sa sprievodca inštaláciou.

Vyberte predvolený jazyk a kliknite na tlačidlo Ďalej.

Zadajte svoj dátový adresár pre Moodle '/var/www/moodledata'.

Ako ovládač databázy vyberte MariaDB.

Zadajte podrobnosti o svojej databáze MariaDB a používateľovi.

Kliknutím na tlačidlo Pokračovať potvrďte oznámenie o autorských právach.

V sekcii kontroly servera sa uistite, že je vaše prostredie pripravené.

Teraz sa spustí inštalácia Moodle.

Po dokončení inštalácie zadajte nového administrátora, e-mail a heslo pre Moodle.

Teraz uvidíte panel Moodle takto:

Záver

Gratulujem! Dokončili ste inštaláciu Moodle na server Ubuntu 24.04. Nainštalovali ste Moodle 40.4 na Ubuntu so zásobníkom LAMP (Linux, Apache, MariaDB a PHP) a zabezpečili ste Moodle pomocou UFW (Uncomplicated Firewall) a HTTPS cez Certbot a Letsencrypt.