linux sysadmin installs moodle lms on ubuntu server

Hvordan installere 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.

Før du begynner

Sjekk ut vår vertstjeneste for Moodle fellesskapsutgave. Du kan begynne å bruke LMS uten å måtte installere det!

Forhåndskrav

  • Installer en VPS server med Ubuntu 22.04 på den
  • Få en fullt kvalifisert domenenavn pointing to your server’s IP address, such as “moodle.example.org”

For eksempler i denne veiledningen vil vi bruke domene moodle.example.org, endre det til ditt eget domenenavn.

Forbereder Ubuntu-serveren for Moodle-installasjon

Oppdater 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

Installer Apache, PHP-8.1, MariaDB MySQL-server

Installer deretter Moodle-avhengigheter. Vi må installere Apache-webserver, PHP 8.1, MariaDB SQL-server, e-postserver og en liste over PHP-utvidelser som kreves 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 installasjonen er fullført, start apache webserver.

$ sudo systemctl start apache2 
$ sudo systemctl enable apache2

Konfigurer Apache VirtualHost og PHP-FPM

Vi kommer til å kjøre Moodle 4.2 på Apache og PHP-FPM. På neste trinn vil vi konfigurere PHP-FPM for Apache.

1. Start PHP-FPM-tjenesten og aktiver den ved oppstart.

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

2. For å bruke PHP-FPM med Apache må vi aktivere proxy_fcgi og proxy-moduler.

sudo a2enmod proxy_fcgi proxy

3. Lag Apache-konfigurasjonsfil for Moodle.

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

Skriv inn følgende konfigurasjon i moodle.conf. Bytt ut Servernavn, DocumentRoot, Directory med dine verdier.

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

Lagre og lukk filen med CTRL X, deretter Y og deretter Enter.

4. Aktiver ny virtuell vert og last inn Apache-nettserveren på nytt.

$ 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

Opprett database og en databasebruker

1. Start og aktiver MariaDB SQL-server

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

2. Opprett MySQL-bruker og database

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 har konfigurert Apache, PHP og MySQL, kan vi fortsette med å installere moodle-kode.

Installer Moodle Code

1. Opprett en hjemmekatalog for Moodle-nettstedet og den offentlige katalogen

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

2. Last ned den nyeste Moodle-koden og pakk den ut i den offentlige katalogen.

Du kan laste ned siste moodle fra 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”

Kjør installasjonen i nettleseren

Før du fortsetter til dette siste trinnet, må du peke domenenavnet ditt til IP-adressen til serveren din. Når DNS er konfigurert kan du kjøre Moodle-installasjon i en nettleser.

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
velge et moodle-språk under installasjonen

 

3. Bekreft stier

På neste trinn bekrefter du at nettadressen, moodle-katalogen og datakatalogen er korrekte. Datakatalogen manglet i installasjonen vår, så vi opprettet den på dette trinnet.

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

confirm web address, moodle directory, data directory

4. Velg en databaseserver

Vi bruker MariaDB for denne veiledningen. Velg MariaDB fra rullegardinmenyen.

choose MariaDB from dropdown

5. Angi databaseinnstillinger

Skriv inn databasenavn, databasebruker og passord som vi opprettet tidligere.

input database settings

6. Opprett config.php-fil

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. Godta lisens

Du må lese og godta Moodle-lisensavtalen på dette trinnet.

8. Pass 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. Konfigurer hovedadministratorkontoen din

På dette trinnet bør du konfigurere administratorkontoen. Skriv inn administratorbrukernavn, passord og andre nødvendige detaljer.

10. Angi innstillingene for nettstedets hjem

Konfigurer nettstedsnavn, kort navn for nettstedet, Hjemmesidesammendrag og annen informasjon.

 

configure moodle site settings

Lag ditt første 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