linux sysadmin installs moodle lms on ubuntu server

Jak zainstalować Moodle na serwerze Ubuntu 22.04 | 20.04

Moodle is one of the best learning management systems available. It’s an open software, released under the open source ‘GNU General Public License’ which makes it highly flexible and customizable. In this guide you will learn how to install Moodle on Ubuntu server 20.04/22.04.

We are installing Moodle on a brand new, clean Ubuntu server with no software or data on it. If your server has data on it - make data backup first. Author is not responsible for possible data loss.

Zanim zaczniesz

Sprawdź nasze usługa hostingowa dla Moodle wydanie społecznościowe. Możesz zacząć korzystać z LMS-a bez konieczności jego instalacji!

Wymagania wstępne

  • Zainstaluj Serwer VPS z Ubuntu 22.04
  • Zdobądź w pełni wykwalifikowaną osobę nazwa domeny pointing to your server’s IP address, such as “moodle.example.org”

W przykładach w tym przewodniku użyjemy domeny moodle.example.org, zmień ją na własną nazwę domeny.

Przygotowanie serwera Ubuntu do instalacji Moodle

Zaktualizuj system

First thing first – updating the system. To get started connect to your server via SSH. Then run “apt update” and “apt upgrade” commands to update system packages to the latest version.

$ sudo apt update && apt upgrade -y

executing apt update and apt upgrade commands to update Ubuntu server before proceed to moodle installation

Zainstaluj serwer Apache, PHP-8.1, MariaDB MySQL

Następnie zainstaluj zależności Moodle. Musimy zainstalować serwer WWW Apache, PHP 8.1, serwer SQL MariaDB, serwer pocztowy i listę rozszerzeń PHP wymaganych przez Moodle.

$ sudo apt install apache2 php8.1 mariadb-server postfix 
$ sudo apt install php8.1-mysql php8.1-fpm php8.1-iconv php8.1-mbstring php8.1-curl php8.1-tokenizer php8.1-xmlrpc php8.1-soap php8.1-ctype php8.1-zip php8.1-gd php8.1-simplexml php8.1-xml php8.1-intl

Po zakończeniu instalacji uruchom serwer WWW Apache.

$ sudo systemctl start apache2 
$ sudo systemctl enable apache2

Skonfiguruj Apache VirtualHost i PHP-FPM

Będziemy używać Moodle 4.2 na Apache i PHP-FPM. W następnym kroku skonfigurujemy PHP-FPM dla Apache.

1. Uruchom usługę PHP-FPM i włącz ją podczas uruchamiania.

$ sudo systemctl start php8.1-fpm
$ sudo systemctl enable php8.1-fpm

2. Aby używać PHP-FPM z Apache, musimy włączyć moduły proxy_fcgi i proxy.

sudo a2enmod proxy_fcgi proxy

3. Utwórz plik konfiguracyjny Apache dla Moodle.

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

Wprowadź następującą konfigurację do pliku moodle.conf. Wymień Nazwa Serwera, Dokument Główny, Katalog ze swoimi wartościami.

<VirtualHost *:80>
ServerName moodle.example.org
ServerAlias www.moodle.example.org
DocumentRoot /home/moodle/public_html

<Directory /home/moodle/public_html>
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>

<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.1-fpm.sock|fcgi://localhost/"
</FilesMatch>

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Zapisz i zamknij plik za pomocą CTRL X, następnie Y, a następnie Enter.

4. Włącz nowy host wirtualny i ponownie załaduj serwer WWW Apache.

$ a2ensite moodle
$ systemctl reload apache2

5. Also it’s nice to have a rewrite and SSL modules enabled

# a2enmod rewrite
# a2enmod ssl
# systemctl restart apache2

Utwórz bazę danych i użytkownika bazy danych

1. Uruchom i włącz serwer SQL MariaDB

root@moodle-lms-install:~# systemctl start mariadb 
root@moodle-lms-install:~# systemctl enable mariadb

2. Utwórz użytkownika i bazę danych MySQL

root@moodle-lms-install:~# mysql
MariaDB [(none)]> create database moodle_dev;
MariaDB [(none)]> grant all privileges on moodle_dev.* to moodle_user@localhost identified by 'Change_to_Strong_SQL_Password';
MariaDB [(none)]> flush privileges;

Po skonfigurowaniu Apache, PHP i MySQL możemy przystąpić do instalacji kodu moodle.

Zainstaluj kod Moodle

1. Utwórz katalog domowy dla witryny Moodle i katalog publiczny

$ useradd --create-home -s /bin/sh moodle
$ mkdir -p /home/moodle/public_html
$ chmod 711 /home/moodle

2. Pobierz najnowszy kod Moodle i rozpakuj go do katalogu publicznego.

Możesz pobrać najnowszy moodle z https://download.moodle.org/releases/latest/. Get the code and upload it into the public directory. In our case the directory is “/home/moodle/public_html”

Uruchom instalację w przeglądarce

Zanim przejdziesz do tego ostatniego kroku, musisz wskazać nazwę swojej domeny na adres IP swojego serwera. Po skonfigurowaniu DNS możesz uruchomić instalację Moodle w przeglądarce.

1. Open your browser and navigate to your Moodle’s site domain/sub-domain. You should see Moodle Installation page.

2. Choose website’s language. We will keep English.

choosing a language of moodle during installation
wybór języka moodle podczas instalacji

 

3. Potwierdź ścieżki

W następnym kroku potwierdź, że adres internetowy, katalog moodle i katalog danych są prawidłowe. W naszej instalacji brakowało katalogu danych, dlatego utworzyliśmy go na tym etapie.

# mkdir /home/moodle/moodledata
# chown www-data:www-data /home/moodle/moodledata

confirm web address, moodle directory, data directory

4. Wybierz serwer bazy danych

W tym przewodniku używamy MariaDB. Z menu rozwijanego wybierz opcję MariaDB.

choose MariaDB from dropdown

5. Wprowadź ustawienia bazy danych

Wprowadź nazwę bazy danych, użytkownika bazy danych i hasło, które utworzyliśmy wcześniej.

input database settings

6. Utwórz plik config.php

After entering database settings and clicking “Next” a config.php file will be generated. Copy content of the file and create “config.php” in the root moodle directory (/home/moodle/public_html in this example).

7. Zaakceptuj licencję

Na tym etapie musisz przeczytać i zaakceptować umowę licencyjną Moodle.

8. Przejdź kontrolę serwera

Most of the checks passed in our installation. We only had to change “max_input_vars” from its default value to 5000.

$ nano /etc/php/8.1/fpm/php.ini
$ systemctl reload php8.1-fpm

fix max_input_vars error during moodle installation

9. Skonfiguruj swoje główne konto administratora

Na tym etapie należy skonfigurować konto administratora. Wprowadź nazwę użytkownika administratora, hasło i inne wymagane szczegóły.

10. Wprowadź ustawienia główne witryny

Skonfiguruj nazwę witryny, krótką nazwę witryny, podsumowanie strony głównej i inne informacje.

 

configure moodle site settings

Stwórz swój pierwszy kurs!

After few final clicks you will see the LMS dashboard and Calendar. Proceed to “My Courses” tab and create your first Moodle course! Well done!

my courses tab in fresh installed moodle site