Cómo instalar Moodle en Ubuntu 20.04 LTS

En esta ocasión vamos a ver cómo instalar Moodle en Ubuntu 20.04 LTS Focal Fossa paso a paso, de modo que puedas trabajar con la plataforma de eLearning más conocida en Internet sobre tu servidor o VPS Ubuntu.

Antes de instalar Moodle en Ubuntu 20.04 LTS

Si tienes interés en seguir los pasos de esta guía de instalación de Moodle en Ubuntu 20.04, asegúrate de cumplir al menos estos requisitos mínimos:

  • Un sistema Ubuntu 20.04 LTS actualizado.
  • Una pila o entorno tipo LAMP (servicio web con PHP versión desde 7.3 hasta 8.0 y motor de bases de datos).
  • Un usuario con permisos de sudo.
  • Acceso a Internet.

En caso de que no dispongas todavía del entorno necesario, te aconsejamos echar un vistazo a nuestra guía de instalación de la pila LAMP en Ubuntu 20.04. Puedes integrar Moodle en el servicio web de Ubuntu 20.04 de múltiples formas, ya sea como el sitio web principal, un servidor virtual independiente o, como haremos en este artículo, como parte del sitio web principal. También es importante trabajar con conexiones seguras HTTPS, aunque por simplicidad en este artículo lo haremos sobre HTTP.

Con todo el entorno preparado, es hora de regular la altura más cómoda para nuestra mesa, abrir nuestra terminal de comandos favorita y ponernos a trabajar.

¡Ahorra 29,00 EUR!Bestseller No. 1 TRIUMPHKEY 120x60cm Escritorio de pie Ajustable en Altura con estantes para Monitor Escritorio de pie eléctrico Ajustable en Altura Estante de Almacenamiento Home Office Tablero de Empalme Blanco
¡Ahorra 44,00 EUR!Bestseller No. 3 SANODESK QS1 110 x 60 cm Escritorio Elevable Eléctrico con Tablero Escritorio Regulable en Altura Eléctrico Telescópico Bidireccional con Control de Memoria y Tecnología Anticolisión (Blanco)

Cómo descargar Moodle para Ubuntu 20.04

Vamos a descargar Moodle para Ubuntu 20.04 LTS desde la zona de descargas de la web oficial, donde encontraremos la última versión estable:

como descargar moodle para ubuntu 20.04 server lts focal fossa

Si en el momento de visitar la página de descargas, además del lanzamiento original encontramos una versión con la numeración terminada en +, será esta la que elijamos, ya que incorpora todos parches aparecidos desde el lanzamiento de la versión actual.

Los paquetes están disponibles en formato .tgz y .zip, cuyos enlaces conducen a una página de descarga automática, aunque en este tutorial realizaremos la descarga del paquete .tgz directamente desde consola con el comando wget:

~$ wget https://download.moodle.org/download.php/direct/stable400/moodle-latest-400.tgz

Cómo instalar Moodle en Ubuntu 20.04

Para poder instalar Moodle en Ubuntu 20.04 LTS necesitaremos realizar unas cuantas tareas de preparación del sistema, de modo que el instalador web posteriormente corra sin encontrar problemas. Veamos con más detalles estos procesos.

Archivos de Moodle

Descomprimiremos el paquete que acabamos de descargar directamente en la ubicación que nos interese:

~$ sudo tar xf moodle-latest-400.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 20.04 (www-data):

~$ 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:

~$ sudo mkdir /var/www/moodledata

Cambiamos el propietario de este directorio al usuario con el que corre el servicio web en Ubuntu 20.04 (www-data) para que Moodle pueda escribir:

~$ sudo chown www-data: /var/www/moodledata/

Base de datos

Moodle necesita el soporte necesario del motor de base de datos que tengamos en Ubuntu 20.04, por lo que explicaremos cómo preparar los más usados.

MariaDB/MySQL

Usaremos el cliente de consola mysql y el usuario con el que administremos:

~$ mysql -u root -p

Creamos la base de datos:

> create database moodle charset utf8mb4 collate utf8mb4_unicode_ci;

En MariaDB o MySQL 5 creamos el usuario de la siguiente forma:

> create user moodle@localhost identified by 'XXXXXXXX';

Pero en MySQL 8 conviene especificar el plugin compatible:

> create user moodle@localhost identified with mysql_native_password by 'XXXXXXXX';

Otorgamos los permisos necesarios al usuario sobre la base:

> grant all privileges on moodle.* to moodle@localhost;

Y cerramos la conexión:

> exit

PostgreSQL

En el caso de trabajar con este servicio de bases de datos, crearemos un rol con contraseña para Moodle:

~$ sudo -u postgres createuser -P moodle

Y también crearemos la base de datos asociada al rol:

~$ sudo -u postgres createdb moodle -O moodle

PHP

Moodle requiere la presencia en Ubuntu 20.04 LTS de ciertas extensiones que instalaremos desde los repositorios de la distribución, por lo que actualizaremos la información de los mismos:

~$ sudo apt update

Ya podemos instalar los paquetes necesarios.

Si se trata de la versión nativa de PHP para Ubuntu 20.04:

~$ sudo apt install -y php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip

Si en cambio se trata de alguna versión procedente del repositorio alternativo, habrá que especificar el número de la misma en la nomenclatura de los paquetes; por ejemplo, para PHP 8.0:

~$ sudo apt install -y php8.0-curl php8.0-gd php8.0-intl php8.0-mbstring php8.0-soap php8.0-xml php8.0-xmlrpc php8.0-zip

Si utilizas PostgreSQL como base de datos para la plataforma, instala su extensión correspondiente, teniendo en cuenta la versión de PHP que uses.

Para la versión de la distribución:

~$ sudo apt install -y php-pgsql

Y si usas una versión alternativa, por ejemplo la 8.0:

~$ sudo apt install -y php8.0-pgsql

También editaremos el archivo php.ini para realizar algún ajuste (si usas una versión alternativa de PHP, modifica la ruta en el siguiente comando):

~$ sudo nano /etc/php/7.4/apache2/php.ini

Buscamos la directiva max_input_vars:

...
;max_input_vars = 1000
...

Suprimimos el carácter ; al inicio de línea y cambiamos el valor por el que requiere Moodle:

...
max_input_vars = 5000
...

Hecho esto, podemos guardar y cerrar el archivo.

En caso de usar Apache y su módulo de PHP será necesario recargar la configuración del servicio web:

~$ sudo systemctl reload apache2

Instalador web

Para acceder al instalador web de Moodle desde un navegador añadiremos la ruta de instalación, /moodle en este tutorial, a la dirección del servidor Ubuntu 20.04 LTS.

Por ejemplo, la máquina Ubuntu 20.04 LTS sobre la que realizamos este artículo es accesible en el subdominio o nombre DNS ubuntu2004.local.lan, por lo que usaremos http://ubuntu2004.local.lan/moodle como URL:

como instalar moodle en ubuntu 20.04 lts focal fossa

Una vez seleccionado el idioma confirmaremos las rutas de Moodle, aunque realmente sólo podríamos modificar la ruta para el directorio de datos:

instalar moodle en ubuntu 20.04 lts focal fossa

En este artículo hemos creado el directorio de datos en el valor por defecto que sugiere el instalador, por lo que no será necesario modificarlo.

El siguiente paso es seleccionar el motor de base de datos:

instalacion de moodle en ubuntu 20.04 lts focal fossa

El desplegable mostrará las opciones disponibles en el sistema, por lo que elegiremos la que se adecúe a la configuración que hemos realizado antes. Importante: MySQL y MariaDB tienen opciones independientes.

Seguidamente un formulario nos solicitará los datos de conexión al servicio:

instalador de moodle en ubuntu 20.04 lts focal fossa

Proporcionaremos los nombres de la base de datos y el usuario, así como la contraseña, tal como los creamos en pasos anteriores.

Comprobada la conexión, será necesario aceptar las condiciones del servicio:

instalando moodle en ubuntu 20.04 lts focal fossa

A continuación se muestra una lista de comprobación de requisitos para la instalación de Moodle en Ubuntu 20.04:

configuración de ubuntu 20.04 lts para moodle

Si has seguido los pasos anteriores, todos los requisitos fundamentales se cumplirán y podrás continuar con el proceso de instalación.

El proceso de instalación en sí mostrará una larga lista de operaciones y sus resultados:

instalador de moodle para ubuntu 20.04 lts focal fossa

Este proceso tomará unos instantes, tras los que la instalación termina y comienza la configuración del administrador para el nuevo sitio Moodle:

También tendremos que suministrar información sobre la identidad del sitio:

moodle para ubuntu 20.04 lts focal fossa

La dirección de correo electrónico del contacto de soporte es obligatoria a partir de Moodle 4.0, por lo que habrá que introducirla. Es una dirección que se mostrará a todos los usarios de nuestra plataforma.

Finalizada la configuración del sitio, se inicia sesión automática en el sitio, mostrándose el área personal:

moodle en ubuntu 20.04 lts focal fossa

¡Ya podemos empezar a trabajar en nuestro nuevo sitio Moodle!

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 20.04. Para ello crearemos una nueva tarea programada:

~$ sudo nano /etc/cron.d/moodle

La configuración constará de la siguiente línea:

*/1 * * * * www-data /usr/bin/php /var/www/html/moodle/admin/cli/cron.php

Una vez guardado el archivo comenzará el mantenimiento en segundo plano.

Ghostscript para Moodle en Ubuntu 20.04 LTS

Instalaremos Ghostscript para el soporte PDF en Moodle, utilizando paquetes disponibles en el repositorio de Ubuntu 20.04:

~$ sudo apt install -y ghostscript

Comprobaremos que Ghostscript queda perfectamente integrado desde el área personal. Visitando la sección «Administración del sitio«, y seleccionando la solapa «Extensiones» buscaremos en la misma página «Módulos de actividad / Tarea / Extensiones de retroalimentación / Anotar PDF«.

Al abrir la página «Anotar PDF» se mostrará un enlace «Prueba del PATH de ghostscript» que nos llevará a la página de comprobación:

ghostscript para moodle en ubuntu 20.04 lts focal fossa

Si todo funciona como debería, se mostrará una imagen generada gracias a Ghostscript.

Unoconv para Moodle en Ubuntu 20.04 LTS

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 con apt:

~$ 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:

~$ sudo nano /etc/systemd/system/unoconv.service

Con el siguiente contenido:

[Unit]
Description=Unoconv listener para Ubuntu 20.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 20.04:

~$ sudo systemctl enable unoconv

Para no esperar al siguiente inicio del sistema, podemos iniciar el servidor Unoconv por primera vez:

~$ sudo systemctl start unoconv

Se puede comprobar el estado del servicio con la opción status de systemctl:

~$ systemctl status unoconv

Aprovechando que estamos usando la consola, crearemos el directorio temporal que se usará para la conversión de documentos:

~$ sudo mkdir /var/www/.cache

Como será el servicio web el que escriba en este directorio, cambiaremos la propiedad del mismo al usuario con el que corre dicho servicio:

~$ sudo chown www-data: /var/www/.cache/

Es el momento de acceder al área personal de Moodle para comprobar si Unoconv funciona. En la solapa «Extensiones» de la sección «Administración del sitio» buscaremos el apartado «Convertidores de documentos«, donde seguiremos el enlace «Gestionar convertidores de documentos«.

Activaremos el conversor Unoconv utilizando el icono con forma de ojo.

A continuación seguiremos su enlace «Configuración» que abrirá una página donde, además de comprobar que la ruta del comando unoconv es correcta, nos permitirá realizar una prueba de funcionamiento mediante el enlace «Probar la ruta de unoconv«.

Visitando este último enlace un mensaje nos informará de que la ruta del comando es correcta mediante la conversión de un archivo de prueba. Además dispondremos de un enlace «Descargar el fichero de prueba pdf convertido«:

unoconv en moodle sobre ubuntu 20.04 lts focal fossa

Abriendo el enlace «Donwload the converted pdf test file» se descargará el archivo PDF procedente de la conversión del archivo de prueba:

unoconv en moodle para ubuntu 20.04 lts focal fossa

Si en lugar del documento obtienes un mensaje de error, seguramente el servicio Unoconv habrá fallado. Comprueba su estado, vuelve a iniciarlo y trata de realizar la prueba de nuevo.

Con esto ya tendríamos operativo Unoconv integrado con Moodle sobre Ubuntu 20.04 LTS.

Conclusión

Ahora que sabes cómo instalar Moodle en Ubuntu 20.04 LTS Focal Fossa ya puedes desplegar esta plataforma de eLearning para trabajar tanto en red local como a través de Internet, desde tu servidor o VPS Ubuntu.

Si tienes dudas o preguntas, quieres sugerir mejoras o actualizaciones de este artículo, notificar algún error, etc. deja un comentario y lo atenderé lo antes posible.

¡Apoya comoinstalar.me!

¿Ya tienes lista la plataforma de eLearning gracias a esta guía de instalación de Moodle en Ubuntu 20.04 LTS? Si es así y te apetece agradecérnoslo, cualquier pequeña contribución aporta mucho al mantenimiento de este sitio y la creación de próximos artículos sobre temas como Ubuntu 20.04 y Moodle.

Puedes ayudarnos dejando una propina de tan sólo 1 $ desde PayPal:

O, si te sientes especialmente agradecido, puedes invitarnos a un café:

¡Gracias!

Valora esta entrada

5/5 - (4 votos)

28 comentarios en «Cómo instalar Moodle en Ubuntu 20.04 LTS»

  1. En el instalador web me sale el siguiente error:

    Error: se ha detectado un problema en el controlador de la base de datos.
    El administrador del sitio debe comprobar la configuración del servidor
    PHP no ha sido configurado adecuadamente con la extensión MySQLi de forma que se pueda comunicar con MySQL. Por favor compruebe su archivo php.ini o recompile PHP

    Responder
  2. Hola de nuevo, te vuelvo a agradecer este tutorial que me ha ayudado bastante, ahora tengo una consulta acerca de los últimos pasos del unoconv y es que seguí todos los pasos hasta que me aparece este mensaje:

    «La ruta de unoconv paraece estar configurada apropiadamente.»

    Pero cuando hago clic al enlace «Descargar el archivo PDf de prueba convertido.» me aparece este mensaje:

    Excepción – Path cannot be empty
    Más información sobre este error

    Espero me puedas apoyar acerca de esta duda, quedo en la espera.

    Responder
    • El servicio unoconv es muy inestable de modo que puedes lanzarlo, comprobar su estado y que caiga en la primera conexión. Reinícialo con sudo systemctl restart unoconv y comprueba de nuevo su funcionamiento.

      Responder
  3. Estimado Instalador, espero me puedas apoyar.

    Tengo un servidor al cual accedo por consola powershell
    Description: Ubuntu 20.04.3 LTS
    Codename: focal
    PHP 8.0.15 (cli) (built: Jan 29 2022 07:24:52) ( NTS )
    y MariaDB instalado
    Pero al momento de intentar instalar Moodle me presenta este error:

    wget https://download.moodle.org/download.php/stable311/moodle-latest-311.tgz
    –2022-02-08 21:50:36– https://download.moodle.org/download.php/stable311/moodle-latest-311.tgz
    Resolving download.moodle.org (download.moodle.org)… 172.67.26.233, 104.22.64.81, 104.22.65.81, …
    Connecting to download.moodle.org (download.moodle.org)|172.67.26.233|:443… connected.
    HTTP request sent, awaiting response… 200 OK
    Length: unspecified [text/html]
    moodle-latest-311.tgz: Permission denied

    Cannot write to ÔÇÿmoodle-latest-311.tgzÔÇÖ (Success).

    Espero me puedas indicar cuál es mi error.

    Responder
    • Hola, Omar. Por descartar lo obvio, ¿el usuario con el que trabajas tiene permisos de escritura sobre el directorio activo en el que estás intentando realizar la descarga?

      Responder
      • Sí, omití el sudo pero sí lo estaba usando. Antes que nada agradezco tu pronta respuesta, pero ya lo resolví, no tengo acceso al FTP, sólo tengo acceso por terminal de PowerShell ya que es una instancia de Amazon. El problema consistía en que no tenía instalado el programa para descomprimir el paquete de Moodle, una vez que lo instalé ya pude hacer la instalación.

        Responder
    • No es así como se pide ayuda. Y no me refiero a la omisión de las más elementales fórmulas de cortesía, como el saludo, el uso de «por favor«, «gracias«, etc. Al fin y al cabo asumo que perteneces a una de estas últimas generaciones que acabarán con la civilización y que considera que las cosas se consiguen porque sí, sólo basta pedir.

      Es que ni siquiera ayudas a que te ayuden.

      Para empezar no indicas el mensaje de error que has obtenido, lo que ayudaría a encontrar más fácilmente el problema.

      Por otro lado, el error ocurre cuando intentas configurar la base de datos de PostgreSQL sobre la que trabajará Moodle. Entiendo que por el motivo que sea has decidido trabajar con ese motor de bases de datos en lugar de cualquier otro, pero ¿realmente tienes instalado PostgreSQL en tu sistema? Y si es así, ¿de qué versión se trata?

      Responder
  4. Hola de nuevo, el problema de configuración PHP max_imput_vars debe ser al menos 5000, no me deja avanzar, ¿me puedes sugerir algo?, ¿estará relacionado con otra comprobación de HTTPS en amarillo?

    Responder
    • ¿Qué versión de PHP estás usando? ¿Has hecho el cambio en el archivo php.ini y has recargado la configuración del servicio web? La otra alerta no tiene nada que ver.

      Responder
  5. Hola de nuevo, muchas gracias, ya quedó el problema anterior.

    Tengo otro detalle con la instalación, me pide que la configuración PHP max_imput_vars lo ponga en 5000, yo lo hice en /etc/php/7.3/apache2/php.ini porque en /etc/php/7.4/apache2/ no me aparece nada, ayuda por favor.

    Responder
    • Es raro que uses la versión 7.3 en lugar de la 7.4. En cualquier caso no hay problema, has editado el archivo correcto y la instalación debería poder continuar.

      Responder
  6. Buenos días, en la instalación me genera un error y me dice que en el archivo config.php debo cambiar mysql a mariadb, pero ni siquiera encuentro el archivo config.php, soy novato ¿me puedes ayudar?

    Responder
    • Hola, Juan. Parece ser que trabajas con MariaDB pero sin embargo dejaste seleccionado MySQL en el desplegable del instalador web.

      El archivo config.php se encuentra en el directorio base de Moodle, que en el caso del ejemplo de esta guía de instalación en Ubuntu 20.04 sería /var/www/html/moodle/. Puedes editarlo con el siguiente comando:

      ~$ sudo nano /var/www/html/moodle/config.php

      Busca esta línea:

      $CFG->dbtype = ‘mysqli’;

      Y cambia su valor por mariadb:

      $CFG->dbtype = ‘mariadb’;

      Una vez guardados los cambios puedes regresar al instalador web, que ahora te permitirá continuar con el proceso de instalación.

      Responder
    • Hola, Pedro. Lo que comentas son complementos, más que la instalación principal de Moodle sobre Ubuntu 20.04. Sin embargo, he incluido la instalación y su configuración. Espero que sirva.

      Responder
  7. Hola. Una respetuosa sugerencia: Muy interesante sería poder tener dos opciones para la pila (LAMP Y LEMP), teniendo en cuenta a aquellos que prefieran el ya muy aclamado NGINX, en lugar de Apache. Lo he intentado hacer por mi cuenta (con LEMP), pero aún me encuentro en el nivel de «copiar y pegar», por lo que los resultados no han sido los esperados… (con LAMP sí se pudo). Bendiciones.

    Responder
  8. Muchas gracias, buena la explicación, tengo una pregunta, si quiero registrar el sitio pero todo lo hice en mi servidor local, ¿cómo hago este procedimiento?

    The hub cannot access your site at http://localhost/moodle – Unable to connect (cURL error 6). Make sure that the site is not blocking HTTP requests from AWS IP address ranges.. Your Moodle site and the hub need to be able to communicate with each another. If you are unable to register your site please email support@moodle.org

    Responder
    • Hola, Gloria. Básicamente no tiene sentido registrar sitios locales, ya que la idea es que pueda haber cierta interactividad entre los sitios registrados.

      Responder

Deja un comentario