linux sysadmin installs moodle lms on ubuntu server

Cómo instalar Moodle en el servidor 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.

Antes de comenzar

Echa un vistazo a nuestro servicio de alojamiento para Moodle Edición comunitaria. ¡Puedes empezar a utilizar el LMS sin necesidad de instalarlo!

Requisitos previos

  • Instalar un servidor VPS con Ubuntu 22.04 en él
  • Obtenga un totalmente calificado nombre de dominio pointing to your server’s IP address, such as “moodle.example.org”

Para ejemplos en esta guía usaremos dominio moodle.ejemplo.org, cámbielo a su propio nombre de dominio.

Preparando el servidor Ubuntu para la instalación de Moodle

Actualizar el sistema

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

Instalar Apache, PHP-8.1, servidor MariaDB MySQL

Luego instale las dependencias de Moodle. Necesitamos instalar el servidor web Apache, PHP 8.1, el servidor SQL MariaDB, el servidor de correo y una lista de extensiones PHP requeridas por 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

Cuando se complete la instalación, inicie el servidor web Apache.

$ sudo systemctl start apache2 
$ sudo systemctl enable apache2

Configurar Apache VirtualHost y PHP-FPM

Ejecutaremos Moodle 4.2 en Apache y PHP-FPM. En el siguiente paso configuraremos PHP-FPM para Apache.

1. Inicie el servicio PHP-FPM y habilítelo al arrancar.

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

2. Para usar PHP-FPM con Apache necesitamos habilitar proxy_fcgi y los módulos proxy.

sudo a2enmod proxy_fcgi proxy

3. Cree el archivo de configuración de Apache para Moodle.

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

Ingrese la siguiente configuración en moodle.conf. Reemplazar Nombre del servidor, raíz del documento, directorio con tus valores.

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

Guarde y cierre el archivo con CTRL X, luego Y, luego Enter.

4. Habilite el nuevo host virtual y vuelva a cargar el servidor web 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

Crear base de datos y un usuario de base de datos.

1. Inicie y habilite el servidor SQL MariaDB

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

2. Crear usuario y base de datos 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;

Una vez que tengamos configurado Apache, PHP y MySQL podemos proceder con la instalación del código Moodle.

Instalar código Moodle

1. Cree un directorio de inicio para el sitio Moodle y un directorio público.

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

2. Descargue el código de Moodle más reciente y extráigalo al directorio público.

Puede descargar la última versión de Moodle desde 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”

Ejecute la instalación en el navegador

Antes de continuar con este paso final, debe indicar su nombre de dominio a la dirección IP de su servidor. Cuando DNS está configurado, puede ejecutar la instalación de Moodle en un navegador.

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
elegir un idioma de moodle durante la instalación

 

3. Confirmar rutas

En el siguiente paso, confirme que la dirección web, el directorio de Moodle y el directorio de datos sean correctos. Faltaba el directorio de datos en nuestra instalación, por lo que lo creamos en este paso.

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

confirm web address, moodle directory, data directory

4. Elija un servidor de base de datos

Usamos MariaDB para esta guía. Seleccione MariaDB en el menú desplegable.

choose MariaDB from dropdown

5. Ingrese la configuración de la base de datos

Ingrese el nombre de la base de datos, el usuario de la base de datos y la contraseña que creamos anteriormente.

input database settings

6. Cree el archivo 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. Aceptar licencia

Debe leer y aceptar el acuerdo de licencia de Moodle en este paso.

8. Pasar las comprobaciones del servidor

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. Configura tu cuenta de administrador principal

En este paso debes configurar la cuenta de administrador. Ingrese el nombre de usuario del administrador, la contraseña y otros detalles requeridos.

10. Ingrese a la configuración de inicio del sitio

Configure el nombre del sitio, el nombre corto del sitio, el resumen de inicio del sitio y otra información.

 

configure moodle site settings

¡Crea tu primer curso!

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