linux sysadmin installs moodle lms on ubuntu server

Hoe Moodle op Ubuntu-server 22.04 te installeren | 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.

Voordat u begint

Bekijk onze hostingservice voor Moodle gemeenschap editie. U kunt het LMS gaan gebruiken zonder dat u het hoeft te installeren!

Vereisten

  • Installeer een VPS-server met Ubuntu 22.04 erop
  • Ontvang een volledig gekwalificeerd domeinnaam pointing to your server’s IP address, such as “moodle.example.org”

Voor voorbeelden in deze handleiding gebruiken we domain moodle.voorbeeld.org, verander deze naar uw eigen domeinnaam.

Ubuntu-server voorbereiden voor Moodle-installatie

Update het systeem

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

Installeer Apache, PHP-8.1, MariaDB MySQL-server

Installeer vervolgens Moodle-afhankelijkheden. We moeten Apache-webserver, PHP 8.1, MariaDB SQL-server, mailserver en een lijst met PHP-extensies installeren die vereist zijn voor 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

Wanneer de installatie is voltooid, start u de Apache-webserver.

$ sudo systemctl start apache2 
$ sudo systemctl enable apache2

Configureer Apache VirtualHost en PHP-FPM

We draaien Moodle 4.2 op Apache en PHP-FPM. In de volgende stap zullen we PHP-FPM voor Apache configureren.

1. Start de PHP-FPM-service en schakel deze in tijdens het opstarten.

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

2. Om PHP-FPM met Apache te gebruiken, moeten we proxy_fcgi en proxymodules inschakelen.

sudo a2enmod proxy_fcgi proxy

3. Maak een Apache-configuratiebestand voor Moodle.

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

Voer de volgende configuratie in moodle.conf in. Vervangen Servernaam, DocumentRoot, Directory met jouw waarden.

<VirtualHost *:80>
ServerName moodle.voorbeeld.org
ServerAlias www.moodle.voorbeeld.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>

Bewaar en sluit het bestand met CTRL X, vervolgens Y en vervolgens Enter.

4. Schakel de nieuwe virtuele host in en laad de Apache-webserver opnieuw.

$ 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

Maak een database en een databasegebruiker aan

1. Start en schakel de MariaDB SQL-server in

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

2. Maak een MySQL-gebruiker en database aan

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;

Zodra we Apache, PHP en MySQL geconfigureerd hebben, kunnen we doorgaan met het installeren van de Moodle-code.

Installeer Moodle-code

1. Maak een thuismap voor de Moodle-site en een openbare map

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

2. Download de nieuwste Moodle-code en pak deze uit in de openbare map.

Je kunt de nieuwste Moodle downloaden van 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”

Voer de installatie uit in de browser

Voordat u doorgaat met deze laatste stap, moet u uw domeinnaam verwijzen naar het IP-adres van uw server. Wanneer DNS is geconfigureerd, kunt u de Moodle-installatie in een browser uitvoeren.

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
het kiezen van een taal van Moodle tijdens de installatie

 

3. Bevestig paden

Bevestig bij de volgende stap dat het webadres, de Moodle-map en de gegevensmap correct zijn. De gegevensmap ontbrak in onze installatie, dus hebben we deze bij deze stap gemaakt.

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

confirm web address, moodle directory, data directory

4. Kies een databaseserver

We gebruiken MariaDB voor deze handleiding. Selecteer MariaDB in het vervolgkeuzemenu.

choose MariaDB from dropdown

5. Voer de database-instellingen in

Voer de databasenaam, databasegebruiker en wachtwoord in die we eerder hebben gemaakt.

input database settings

6. Maak het config.php-bestand aan

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. Accepteer licentie

Bij deze stap moet u de Moodle-licentieovereenkomst lezen en accepteren.

8. Voer servercontroles uit

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. Configureer uw hoofdbeheerdersaccount

Bij deze stap moet u het beheerdersaccount configureren. Voer de gebruikersnaam, het wachtwoord en andere vereiste gegevens van de beheerder in.

10. Voer de thuisinstellingen van de locatie in

Configureer de sitenaam, korte naam voor de site, samenvatting van de startpagina van de site en andere informatie.

 

configure moodle site settings

Creëer je eerste cursus!

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