Instalar Ubuntu Server 22.04 con servidor SSH
Antes de nada debes tener un Ubuntu Server 22.04 instalado. Puedes seguir los pasos de mi artículo Tutorial: Instalar Ubuntu Server 22.04.
Instalar la pila LAMP
Instala la pila LAMP (Apache, MySQL y PHP) siguiendo mis pasos.
Instalamos dependencias
Actualizamos el sistema:
1
$sudo apt update
Instalamos los paquetes necesarios:
1
$sudo apt install -y apache2 libapache2-mod-php mariadb-server php-mysql
Comprobamos que el estado de Apache y MariaDB es activo:
1
$systemctl status apache2 mariadb -n 0
Permitimos las conexiones http y https desde el firewall UFW:
1
2
$sudo ufw allow http
$sudo ufw allow https
Configurar pila LAMP
Comprobamos que versión tenemos:
1
$php --version
En mi caso, tengo la versión 8.1 y tú deberás tener la misma:
1
2
3
4
PHP 8.1.2-1ubuntu2.9 (cli) (built: Oct 19 2022 14:58:09) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
with Zend OPcache v8.1.2-1ubuntu2.9, Copyright (c), by Zend Technologies
Editamos el fichero de configuración de PHP:
1
$sudo nano /etc/php/8.1/apache2/php.ini
Buscamos la línea con Ctrl + W:
1
;date.timezone =
Y sustituimos por:
1
date.timezone = Europe/Madrid
Una vez guardado y cerrado el archivo aplicamos los cambios recargando la configuración del servicio web:
1
$sudo systemctl reload apache2
El servicio de bases de datos viene listo para usar sin necesidad de configuraciones adicionales. El único usuario que se incluye es el administrador root y para conectar al servicio desde consola habrá que usar sudo:
1
$ sudo mysql
Puedes cerrar la conexión al servicio con el comando exit:
1
> exit
Probando que todo funciona
Creamos el archivo en un lugar que pueda ser accedido por el servicio web:
1
$sudo nano /var/www/html/info.php
Con el contenido:
1
<?php phpinfo();
Y vamos a la dirección web “<túIP>/info.php”, en mi caso, “http://192.168.56.102/info.php”. Deberíamos ver lo siguiente:
Sitio web con Apache, PHP y MariaDB funcionando
Instalar Moodle 4.1
Para instalar Moodle 4.1 deberás seguir los siguientes pasos.
Descargamos y copiamos el código de Moodle
Seguramente ya lo tendrás instalado pero necesitaremos tener instalado el programa Git:
1
$sudo apt install git
Descargamos el código fuente de Moodle 4.1 de la web oficial:
1
$wget https://download.moodle.org/download.php/direct/stable401/moodle-4.1.tgz
Si hacemos ls
deberemos ver el fichero comprimido que acabamos de descargar:
1
2
$ ls
moodle-4.1.tgz
Descomprimiremos el paquete que acabamos de descargar directamente en la ubicación que nos interese:
1
$sudo tar xf moodle-4.1.tgz -C /var/www/html/
Como Moodle necesita escribir en su propio directorio de instalación, cambiamos el propietario de este directorio al usuario con el que corre el servicio web en Ubuntu 22.04 (www-data):
1
$sudo chown -R www-data: /var/www/html/moodle/
Necesitamos también un directorio para datos de Moodle, que crearemos fuera del alcance de la navegación web:
1
$sudo mkdir /var/www/moodledata
Cambiamos el propietario de este directorio al usuario con el que corre el servicio web en Ubuntu 22.04 (www-data) para que Moodle pueda escribir:
1
$sudo chown www-data: /var/www/moodledata/
Base de datos MariaDB/MySQL
Usaremos el cliente de consola mysql y el usuario con el que administremos:
1
$sudo mysql
Creamos la base de datos:
1
>create database moodle charset utf8mb4 collate utf8mb4_unicode_ci;
En MariaDB o MySQL 5 creamos el usuario de la siguiente forma:
1
>create user moodle@localhost identified by 'tiempos';
Otorgamos los permisos necesarios al usuario sobre la base:
1
>grant all privileges on moodle.* to moodle@localhost;
Y cerramos la conexión:
1
>exit
PHP 8.1
Moodle requiere la presencia en Ubuntu 22.04 LTS de ciertas extensiones que instalaremos desde los repositorios de la distribución, por lo que actualizaremos la información de los mismos:
1
$sudo apt update
Ya podemos instalar los paquetes necesarios.
Si se trata de la versión nativa de PHP para Ubuntu 22.04:
1
$sudo apt install -y php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip
También editaremos el archivo php.ini para realizar algún ajuste:
1
$sudo nano /etc/php/8.1/apache2/php.ini
Buscamos la directiva max_input_vars, que está comentada:
1
;max_input_vars = 1000
Suprimimos el carácter ; al inicio de línea y cambiamos el valor por el que requiere Moodle:
1
max_input_vars = 5000
Hecho esto, podemos guardar y cerrar el archivo.
Al usar Apache y su módulo de PHP será necesario recargar la configuración del servicio web:
1
$sudo systemctl reload apache2
Instalador web de Moodle 4.1
Vamos a “<túIP>/moodle/install.php”, en mi caso “http://192.168.56.102/moodle/install.php” y deberemos ver lo siguiente:
Inicio web para configurar Moodle 4.1
Seleccionamos el idioma:
Añadimos los directorios:
Indicamos que vamos a usar MariaDB:
Añadimos información de la base de datos MariaDB:
Aceptamos el Copyright:
Vemos las comprobaciones y continuamos:
Esperamos a que finalice la instalación:
Creamos el usuario de Moodle que va a ser el administrador:
Le ponemos nombre a nuestro Moodle:
Añadimos un correo de soporte:
Entramos en la Bienvenida:
En Administración del sitio, Usuarios, Cuentas podremos crear y administrar los usuarios que creemos:
Post instalación
Mantenimiento en segundo plano
Moodle necesita realizar tareas de mantenimiento de la plataforma en segundo plano, utilizando el servicio Cron de Ubuntu 22.04. Para ello crearemos una nueva tarea programada:
1
$sudo nano /etc/cron.d/moodle
La configuración constará de la siguiente línea:
1
*/1 * * * * www-data /usr/bin/php /var/www/html/moodle/admin/cli/cron.php
Ghostscript
Instalaremos Ghostscript para el soporte PDF en Moodle:
1
$sudo apt install -y ghostscript
Unoconv (no necesario)
Para poder realizar la conversión de formatos de archivo procedentes de distintas aplicaciones de ofimática una solución puede ser utilizar Unoconv como complemento de Moodle. Por tanto instalaremos el paquete unoconv:
1
$sudo apt install -y unoconv
Unoconv se instala como herramienta de línea de comandos, pero no como servicio, así que crearemos un archivo de configuración para Systemd:
1
$sudo nano /etc/systemd/system/unoconv.service
Con el siguiente contenido:
1
2
3
4
5
6
7
8
9
[Unit]
Description=Unoconv listener para Ubuntu 22.04 LTS
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=fork
Environment="UNO_PATH=/usr/lib/libreoffice/program"
ExecStart=/usr/bin/unoconv --listener
[Install]
WantedBy=multi-user.target
Una vez guardado y cerrado el archivo, disponemos del servicio unoconv o unoconv.service que podemos habilitar para su inicio automático junto a Ubuntu 22.04:
1
$sudo systemctl enable unoconv
Para no esperar al siguiente inicio del sistema, podemos iniciar el servidor Unoconv por primera vez:
1
$sudo systemctl start unoconv
Se puede comprobar el estado del servicio con la opción status de systemctl:
1
$systemctl status unoconv
Estado de unoconv en la consola
1
$sudo mkdir /var/www/.cache
1
$sudo chown www-data: /var/www/.cache/
Es el momento de acceder al área personal de Moodle para comprobar si Unoconv funciona.
Bibliografía
- Cómo instalar la pila LAMP en Ubuntu 22.04 LTS
- Cómo instalar Moodle en Ubuntu 20.04 LTS → El enlace proporcionado usa Ubuntu 20.04 por lo que la versión por defecto de PHP también cambiará:
- Ubuntu 20.04 → PHP 7.4
- Ubuntu 22.04 → PHP 8.1