linux sysadmin installs moodle lms on ubuntu server

Hur man installerar Moodle på Ubuntu server 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.

Innan du börjar

Kolla in vår värdtjänst för Moodle gemenskapsupplagan. Du kan börja använda LMS utan att behöva installera det!

Förhandskrav

  • Installera en VPS-server med Ubuntu 22.04 på den
  • Skaffa en fullt kvalificerad domännamn pointing to your server’s IP address, such as “moodle.example.org”

För exempel i den här guiden kommer vi att använda domän moodle.example.org, ändra det till ditt eget domännamn.

Förbereder Ubuntu-servern för Moodle-installation

Uppdatera systemet

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

Installera Apache, PHP-8.1, MariaDB MySQL-server

Installera sedan Moodle-beroenden. Vi behöver installera Apache webbserver, PHP 8.1, MariaDB SQL-server, e-postserver och en lista över PHP-tillägg som krävs av 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

När installationen är klar starta apache webbserver.

$ sudo systemctl start apache2 
$ sudo systemctl enable apache2

Konfigurera Apache VirtualHost och PHP-FPM

Vi kommer att köra Moodle 4.2 på Apache och PHP-FPM. I nästa steg kommer vi att konfigurera PHP-FPM för Apache.

1. Starta PHP-FPM-tjänsten och aktivera den vid uppstart.

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

2. För att använda PHP-FPM med Apache måste vi aktivera proxy_fcgi och proxymoduler.

sudo a2enmod proxy_fcgi proxy

3. Skapa Apache-konfigurationsfil för Moodle.

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

Ange följande konfiguration i moodle.conf. Byt ut Servernamn, DocumentRoot, Directory med dina värderingar.

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

Spara och stäng filen med CTRL X, sedan Y och sedan Enter.

4. Aktivera ny virtuell värd och ladda om Apache-webbservern.

$ 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

Skapa databas och en databasanvändare

1. Starta och aktivera MariaDB SQL-server

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

2. Skapa MySQL-användare och databas

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;

När vi väl har konfigurerat Apache, PHP och MySQL kan vi fortsätta med att installera moodle-kod.

Installera Moodle Code

1. Skapa en hemkatalog för Moodle-webbplatsen och den offentliga katalogen

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

2. Ladda ner den senaste Moodle-koden och extrahera den till den offentliga katalogen.

Du kan ladda ner senaste moodle från 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”

Kör installationen i webbläsaren

Innan du går vidare till detta sista steg måste du peka ditt domännamn till IP-adressen för din server. När DNS är konfigurerat kan du köra Moodle-installation i en webbläsare.

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
välja ett språk för moodle under installationen

 

3. Bekräfta sökvägar

Bekräfta i nästa steg att webbadress, moodle-katalog och datakatalog är korrekta. Datakatalogen saknades i vår installation, så vi skapade den i det här steget.

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

confirm web address, moodle directory, data directory

4. Välj en databasserver

Vi använder MariaDB för den här guiden. Välj MariaDB från rullgardinsmenyn.

choose MariaDB from dropdown

5. Ange databasinställningar

Mata in databasnamn, databasanvändare och lösenord som vi skapade tidigare.

input database settings

6. Skapa filen 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. Acceptera licens

Du måste läsa och acceptera Moodles licensavtal för detta steg.

8. Passera serverkontroller

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. Konfigurera ditt huvudadministratörskonto

I det här steget bör du konfigurera administratörskontot. Ange administratörens användarnamn, lösenord och andra nödvändiga uppgifter.

10. Ange webbplatsens heminställningar

Konfigurera webbplatsens namn, kortnamn för webbplatsen, sammanfattning av webbplatsens startsida och annan information.

 

configure moodle site settings

Skapa din första 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