Cómo instalar Moodle en CentOS 8

En esta entrada vamos a ver cómo instalar Moodle en CentOS 8 paso a paso, de modo que puedas montar una de las plataformas de eLearning más aclamadas en tu servidor o VPS CentOS.

Antes de instalar Moodle en CentOS 8

Si quieres seguir esta guía de instalación de Moodle en CentOS 8 debes partir necesariamente de los siguientes requisitos básicos:

  • Una máquina CentOS 8 actualizada.
  • Una pila tipo LAMP o LEMP (servidor web con PHP y servicio de bases de datos).
  • Paquetes policycoreutils-python-utils, tar y wget.
  • Acceso a consola de comandos como root o un usuario con permisos de sudo.
  • Conexión a Internet.

En caso de que aún no dispongas del entorno necesario, podría interesarte consulta nuestra guía de instalación de la pila LAMP en CentOS 8. Tienes distintas posibilidades para integrar Moodle en el servicio web de CentOS 8, tanto como el sitio por defecto como un servidor virtual independiente, aunque en este tutorial integraremos la aplicación como parte del sitio por defecto. Es muy importante trabajar con HTTPS, aunque para facilitar el tutorial trabajamos excepcionalmente con HTTP.

Cómo descargar Moodle para CentOS 8

Puesto que no hay paquetes en los repositorios de la distribución, tenemos que descargar Moodle para CentOS 8 desde su página oficial.

como descargar moodle para centos 8

Visitando la zona de descargas encontraremos el enlace de acceso a la última versión estable de Moodle:

descargas de moodle para centos 8

Encontraremos Moodle en paquetes con distinto formato de compresión, una versión .tgz y otra .zip. No son enlaces directos, sino que nos conducen a una página de descarga automática. Si en el momento de acceder existe una versión finalizada en +, es la más actualizada, puesto que se le habrán aplicado los parches disponibles desde el lanzamiento de la versión actual.

Puedes descargar el paquete desde el navegador, en este ejemplo copiaremos en enlace y descargaremos el paquete desde consola:

~$ wget https://download.moodle.org/download.php/direct/stable38/moodle-latest-38.tgz

Cómo instalar Moodle en CentOS 8

Antes de poder instalar Moodle en CentOS 8 hay que realizar una serie de preparativos del sistema para que el instalador no encuentre obstáculos posteriormente.

Preparativos de la base de datos

Como muchas aplicaciones web, Moodle se apoya sobre un servicio de bases de datos. En este tutorial explicamos cómo preparar los más usados en CentOS 8 y Moodle.

MariaDB/MySQL

Accedemos a MariaDB o MySQL con nuestro usuario administrador, root, etc. según como lo tengamos configurado, con el cliente de consola mysql y el usuario administrador que usemos:

~$ mysql -u root -p

Empezamos creando la base de datos:

> create database moodle_db character set utf8mb4 collate utf8mb4_unicode_ci;

Creamos el usuario sólo para acceso local, con su contraseña. En MySQL 5.x y MariaDB lo haríamos así:

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

En MySQL 8.x, sin embargo, es importante especificar además el plugin de autenticación del usuario:

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

Concedemos los permisos al usuario sobre la base de datos:

> grant all privileges on moodle_db.* to moodle_user@localhost;

Refrescamos la tabla de permisos y salimos del cliente:

> exit

PostgreSQL

Creamos un nuevo rol con contraseña:

~$ sudo -iu postgres createuser moodle -P

Y creamos la base de datos asociada sobre la que trabajará Moodle:

~$ sudo -iu postgres createdb moodle -O moodle_user

Eso es todo lo que necesitamos.

Preparativos de PHP

Moodle requeire que tengamos instaladas ciertas extensiones de PHP en CentOS 8, como pueden ser curl, gd, intl, json, mbstring, opcache, soap, xml, xmlrpc y zip.

~$ sudo yum install -y php-curl php-gd php-intl php-json php-mbstring php-opcache php-soap php-xml php-xmlrpc php-zip

Al terminar, recargaremos el servicio PHP para aplicar la nueva configuración:

~$ sudo systemctl reload php-fpm

Preparativos de los archivos

Ya podemos descomprimir el paquete de Moodle que descargamos anteriormente en su ubicación definitiva:

~$ sudo tar xf moodle-latest-38.tgz -C /var/www/html/

Además crearemos un directorio para datos de Moodle en la ruta por defecto que se usa en la instalación:

~$ sudo mkdir /var/www/moodledata

Para que Moodle pueda escribir en este directorio (a través del servidor web), cambiaremos el propietario al usuario con el que corre el servicio (apache en el caso de Apache):

~$ sudo chown apache:apache /var/www/moodledata/

Además, el instalador de Moodle debe poder guardar la configuración en el directorio de la aplicación, así que seguiremos una aproximación similar, cambiando la propiedad del directorio al usuario y grupo que usa el servidor web:

~$ sudo chown -R apache:apache /var/www/html/moodle/

Preparativos de SELinux

Si tenemos SELinux activado en CentOS 8, como ocurre por defecto, debemos realizar una serie de ajustes.

Además de haberle dado permisos de escritura, el directorio de datos de Moodle debe tener contexto de lectura/escritura para el servidor web:

~$ sudo chcon -R -t httpd_sys_rw_content_t /var/www/moodledata/

Y lo mismo ocurre con el directorio de instalación de Moodle:

~$ sudo chcon -t httpd_sys_rw_content_t /var/www/html/moodle/

Hacemos permanente la aplicación del contexto anterior para evitar que un reetiquetado del sistema de archivos lo elimine:

~$ sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/moodle(/.*)?"

Por otro lado, el servicio web y PHP deben poder conectar a Internet para descargar módulos y paquetes extra de Moodle, como los paquetes de idioma:

~$ sudo setsebool -P httpd_can_network_connect on

Apache

En el caso de que instales Moodle en una máquina no muy veloz, para pruebas, etc. es posible que durante la instalación se superen los tiempos de espera entre el servidor web y el servicio PHP, lo que dejaría la instalación a medias. Para evitarlo se puede configurar el tiempo máximo de espera mediante una configuración adicional de Apache, que crearemos en un archivo independiente:

~$ sudo nano /etc/httpd/conf.d/moodle.conf

Con el siguiente contenido:

<IfModule proxy_fcgi_module>
        Timeout 180
        ProxyTimeout 180
</IfModule>

Guardados los cambios y cerrado el archivo, habrá que recargar la configuración del servicio web:

~$ sudo systemctl reload httpd

Puedes alargar o acortar los tiempos de espera según tus propias necesidades, pero si la instalación falla, además de reconfigurar estos tiempos, habrá que borrar los directorios de Moodle, la base de datos e iniciar de nuevo el proceso.

Instalación web

Accedemos a la URL del sitio según la hayamos configurado y aparecerá el instalador web de Moodle. Por ejemplo, la máquina en la que realizamos este tutorial es accesible en el dominio centos8.local.lan, así que teniendo en cuenta que hemos instalado Moodle en la ruta moodle/ de la raíz de documentos del sitio web por defecto, usaremos http://centos8.local.lan/moodle como URL.

Empezaremos eligiendo el idioma de la instalación y del sitio Moodle:

como instalar moodle en centos 8

Seleccionamos el idioma que nos interese y continuamos.

Tendremos que confirmar las rutas de los directorios de Moodle, aunque sólo podemos modificar el directorio de datos (pero lo dejaremos como tal):

instalar moodle en centos 8

El instalador muestra los controladores de bases de datos disponibles, si hay varios en la lista desplegable elegiremos el apropiado para nuestro sistema:

instalacion de moodle en centos 8

A continuación debemos introducir los datos de conexión, tal como los preparamos anteriormente:

instalador de moodle en centos 8

El instalador guardará su configuración y creará la infraestructura de bases de datos necesaria.

Antes de continuar, tenemos que confirmar que estamos de acuerdo con las condiciones de la licencia de Moodle:

instalando moodle en centos 8

Una página de comprobación de requisitos nos mostrará si nuestro sistema CentOS 8 cumple con todos los requerimientos necesarios para el funcionamiento de Moodle:

configuracion de centos 8 para instalar moodle

Si no cumples alguno, puedes intentar satisfacerlo y volver a recargar la página de requisitos.

Comenzará la instalación y se irá generando una larga lista de tareas y el resultado de las mismas:

Al terminar la instalación en sí, continuaremos completando el perfil del administrador del sitio:

Y también los datos del propio sitio Moodle:

Cuando por fin entramos en el sitio, se nos pedirá completar el registro a través de un formulario:

moodle en centos 8

Podemos saltarnos el proceso de registro siguiendo un pequeño enlace «Skip«.

Por último, un paseo interactivo nos mostrará las principales de nuestra página personal en Moodle:

Al terminar este paseo, nuestro nuevo sitio Moodle ya estará listo para empezar a trabajar con él.

moodle para centos 8

Conclusión

Ahora ya sabes cómo preparar tu sistema CentOS 8 para instalar Moodle, de modo que puedes dejar lista esta plataforma de eLearning para empezar a trabajar con ella, sobre tu servidor o VPS.

Si tienes dudas, preguntas, sugerencias, etc. siempre puedes dejar un comentario.

¡Apoya este sitio!

Y si esta guía de instalación de Moodle en CentOS 8 te ha resultado útil, quizás quieras realizar una mínima aportación para el mantenimiento de este sitio y la creación de más guías de CentOS 8 y Moodle. Puedes contribuir de varias formas:

Invitándome a un café:

 

O dejando una pequeña propina en PayPal:

¡Gracias!

Valora esta entrada

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (3 votos, promedio: 5,00 de 5)
Cargando…

7 comentarios en “Cómo instalar Moodle en CentOS 8”

  1. Hola. Sigo los pasos de este tutorial. Logro instalar el sitio Moodle en local, pero NO logro que se conecte desde otro equipo en la misma red… Gracias

    Responder
    • ¡Hola, Martha! ¿Responde el servidor al ping con el dominio o dirección IP que intentas usar en el navegador? ¿Has configurado el firewall de CentOS 8 para permitir conexiones entrantes vía http y https? Seguro que va por ahí el problema. Ya nos dirás…

      Responder
      • Hola. Seguí las instrucciones de https://comoinstalar.me/como-instalar-lamp-en-centos-8/ y de este tutorial, incluido el apartado sobre firewall (~$ sudo firewall-cmd –permanent –add-service={http,https} y ~$ sudo firewall-cmd –reload, con su positiva respuesta al abrir el navegador con: http://matematicas/info.php.

        La plataforma abre y se comporta a la perfección, en el equipo en el que está instalado Moodle (Centos 8 con GUI), pero NO es posible que se conecte desde otro dispositivo en la misma red, como lo he hecho en años anteriores con Debian, Ubuntu y LinuxMint…

        Responder
        • Entiendo que la máquina CentOS 8 se llama ‘matematicas‘ y que desde cualquier máquina de la red funcionan los comandos ‘ping 10.56.54.169‘ y ‘ping matematicas‘.

          Asimismo entiendo que desde cualquier máquina de la red, usando un navegador se puede visitar la página por defecto usando como URL http://10.56.54.169 y http://matematicas. También se puede visitar la página de prueba de PHP, tanto en http://10.56.54.169/info.php y http://matematicas/info.php.

          Si todo lo anterior es correcto, puede que lo que ocurra es que la instalación de Moodle se haya realizado en local sobre la propia máquina CentOS 8 usando como URL del instalador web alguna dirección o nombre de máquina que no se pueda resolver desde la red, como http://localhost/moodle/, http://127.0.0.1/moodle/, etc. Si es así, editando (con sudo) el archivo config.php de la carpeta de Moodle encontraríamos una línea con la variable $CFG->wwwroot presentando la URL desde la que Moodle espera ser accedido.

          Si su valor es ‘http://matematicas/moodle‘ y se puede acceder a http://matematicas desde la red, no sé qué ocurre, habría que revisar los registros de Moodle, Apache y PHP al intentar acceder.

          ¿Qué valor tiene esa variable?

          Responder
          • Hola. Solucionado. Tenías razón: Busqué el archivo config.php y edité la línea $CFG->wwwroot, quedando así: $CFG->wwwroot = ‘http://’.$_SERVER[‘HTTP_HOST’].’/moodle’; Además fue necesario deshabilitar SELinux.
            Muchísimas gracias por la paciencia y el apoyo…

          • ¡Me alegra saberlo! Por si te sirve, en comoinstalar.me solemos trabajar en red usando consola remota a través de SSH y el navegador, sin trabajar localmente en los sistemas que configuramos. De esa forma nos aseguramos de que las aplicaciones funcionan a la primera.

            ¡Un saludo!

Deja un comentario

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies.

ACEPTAR
Aviso de cookies