En esta ocasión vamos a ver cómo instalar Moodle en Fedora 33/32/31 paso a paso, de modo que puedas desplegar la plataforma de eLearning más famosa del mundo sobre tu servidor o VPS Fedora.
Contenido
Antes de instalar Moodle en Fedora 33/32/31
Para poder seguir los pasos de esta guía de instalación de Moodle en Fedora 33/32/31 será necesario satisfacer una serie de requisitos básicos:
- Una máquina Fedora 33/32/31 convenientemente actualizada.
- Un entorno o pila tipo LAMP (servicio web con PHP y bases de datos).
- Acceso a consola con un usuario con permisos de sudo o el mismo root.
- Conexión a Internet.
En el caso de no tener aún el entorno mínimo necesario, sería recomendable echar un vistazo a nuestra guía de instalación de la pila LAMP en Fedora 32 o incluso de la guía de instalación de PostgreSQL Server en Fedora 32.
También hay que tener en cuenta que es muy importante trabajar sobre HTTPS, aunque por motivos didácticos en esta guía trabajamos sobre HTTP. Además, de las posibles configuraciones para integrar Moodle en el servicio web de Fedora 33/32/31, elegimos hacerlo como parte del sitio web por defecto, pero es fácil configurar Moodle como el sitio principal o como un servidor virtual. Todos estos aspectos son sencillos de modificar, para lo que puede ser de utilidad consultar nuestra guía de instalación de Apache en Fedora 32.
Por último, necesitamos algunas herramientas del sistema que obtendremos desde los repositorios de Fedora 33/32/31, para lo que actualizamos la información de los paquetes que contienen:
~$ sudo yum update
E instalamos las herramientas mencionadas:
~$ sudo yum install -y tar wget
Cómo descargar Moodle para Fedora 33/32/31
Vamos a descargar Moodle para Fedora 33/32/31 desde la sección de descargas del sitio oficial, donde encontramos la última versión estable:
La última versión estable suele ofrecer el lanzamiento original de dicha versión y usualmente una revisión más reciente con los últimos parches y actualizaciones aplicados. Esta revisión se caracteriza por acabar su número de versión en ‘+’ y se actualiza semanalmente hasta el lanzamiento de la nueva versión. Si está disponible, será esta revisión la que descarguemos.
Se nos ofrecen paquetes en formtato .tar.gz y .zip en páginas de descarga automática. En este tutorial elegiremos el paquete .tar.gz que descargaremos desde consola con el comando wget:
~$ wget https://download.moodle.org/download.php/direct/stable310/moodle-latest-310.tgz
Cómo instalar Moodle en Fedora 33/32/31
El proceso de instalar Moodle en Fedora 33/32/31 es un poco más complejo que descargar e instalar un paquete, ya que se necesita configurar ciertos aspectos del sistema. Estos pasos los desarrollamos al detalle a continuación.
Archivos de Moodle
Descomprimimos el paquete de Moodle que acabamos de descargar en su ubicación definitiva, con arreglo a la forma de integrar la aplicación en el servicio web:
~$ sudo tar xf moodle-latest-310.tgz -C /var/www/html
Moodle necesita además un directorio de datos:
~$ sudo mkdir /var/www/moodledata
Como Moodle necesita escribir en ambos directorios, cambiaremos la propiedad de los mismos y de su contenido al usuario con el que corre el servicio web en Fedora 33/32/31:
~$ sudo chown -R apache: /var/www/html/moodle/ /var/www/moodledata/
SELinux
En el caso de estar activado SELinux en Fedora 33/32/31 no basta con ajustar los permisos ordinarios, sino que habrá que crear contextos especiales de lectura/escritura para el servicio web.
En el caso del directorio de instalación de Moodle:
~$ sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/moodle(/.*)?"
Y para el directorio de datos:
~$ sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/moodledata(/.*)?"
Este último comando es posible que lance un aviso, pero no es importante.
Una vez definidos los contextos, los aplicamos:
~$ sudo restorecon -R /var/www/html/moodle/
Y:
~$ sudo restorecon /var/www/moodledata/
Finalmente, damos permisos al servicio web para que las aplicaciones puedan conectar a Internet:
~$ sudo setsebool -P httpd_can_network_connect on
Servicio web
Creamos una configuración personalizada para Apache:
~$ sudo nano /etc/httpd/conf.d/moodle.conf
En algunos momentos del proceso de instalación, debido a la naturaleza de las tareas realizadas, podrían llegar a alargarse los tiempos de respuesta entre el servicio web y el servicio PHP, máxime si la máquina Fedora 33/32/31 no es muy potente en cuanto a procesador y E/S. Por eso es interesante configurar los tiempos máximos de respuesta por encima de los valores por defecto (este ajuste no afecta al rendimiento de Moodle).
<IfModule proxy_fcgi_module> Timeout 180 ProxyTimeout 180 </IfModule>
Los tiempos de espera están especificados en segundos.
Guardamos los cambios y recargamos la configuración del servicio web:
~$ sudo systemctl reload httpd
Base de datos
Moodle trabaja sobre la base de datos que tengamos en servicio sobre Fedora 33/32/31, admitiéndose varios motores de bases de datos. En este tutorial veremos los dos más usados.
MariaDB/MySQL
Conectamos con el cliente de consola mysql y el usuario administrador con que trabajemos habitualmente:
~$ mysql -u root -p
Creamos la base de datos:
> create database moodle charset utf8mb4 collate utf8mb4_unicode_ci;
Creamos el usuario que la manejará:
> create user moodle@localhost identified by 'XXXXXXXX';
Concedemos suficientes privilegios sobre la base al usuario:
> grant all privileges on moodle.* to moodle@localhost;
Y cerramos la conexión:
> exit
PostgreSQL
Para este servicio los preparativos son más rápidos, ya que creamos un rol con contraseña:
~$ sudo -iu postgres createuser -P moodle
Y creamos y asociamos la base:
~$ sudo -iu postgres createdb moodle -O moodle
PHP
Moodle necesita la presencia en Fedora 33/32/31 de ciertas extensiones que podemos obtener desde los repositorios de la distribución, instalándolas con yum:
~$ sudo yum install -y php-curl php-gd php-intl php-json php-mbstring php-opcache php-pecl-zip php-soap php-xmlrpc
En caso de usar una versión de PHP diferente a la que viene por defecto en el sistema Fedora, será necesario indicarlo en el nombre de los paquetes. Por ejemplo, para la versión 7.3 en Fedora 32:
~$ sudo yum install -y php73-php-gd php73-php-intl php73-php-mbstring php73-php-opcache php73-php-pecl-zip php73-php-soap php73-php-xmlrpc
Instalador web
Es el momento de ejecutar el instalador web de Moodle en Fedora 33/32/31 desde un navegador, utilizando como URL la que sea la adecuada para lanzar la aplicación, según cómo la hayamos integrado en el servicio web.
Por ejemplo, el servidor Fedora 33 con el que hemos realizado este tutorial es accesible en el subdominio fedora.local.lan, y hemos instalado Moodle en la ruta /moodle del sitio web por defecto, por lo que podemos acceder empleando http://fedora.local.lan/moodle como URL:
En la primera página del instalador seleccionamos el idioma.
A continuación confirmamos las rutas:
Realmente sólo es posible modificar el directorio de datos, que en este artículo hemos creado en la ruta por defecto, pero si se hubiese creado en otro lugar sería necesario especificarlo.
Seleccionamos el motor de bases de datos:
Elegiremos el que corresponda con el servicio de bases de datos que hemos preparado previamente para Moodle.
Seguidamente configuramos la conexión al servicio:
Especificamos base de datos, usuario y contraseña tal como los creamos en pasos anteriores.
Se nos mostrará el acuerdo de licencia de Moodle:
Tendremos que confirmar haber leído y comprendido los términos y condiciones para poder continuar.
En el siguiente paso se muestra la lista de requisitos del sistema para la instalación de Moodle:
Si has seguido los pasos anteriores deberían cumplirse todos estos requisitos, por lo que podremos continuar.
En este momento comienza el proceso de instalación, que llevará unos minutos, durante los cuales una lista irá mostrando las tareas realizadas y su resultado:
Continuaremos configurando el perfil del usuario administrador del sitio Moodle:
También debemos introducir información básica identificativa del sitio:
Este ha sido el último paso del instalador, de modo que al guardar estos datos se mostrará la página principal del área personal del usuario administrador:
¡Ya está todo listo para empezar a trabajar en tu nuevo sitio Moodle sacándole todo el partido desde tu máquina Fedora 33/32/31!
Conclusión
Ahora que sabes cómo instalar Moodle en Fedora 33/32/31 ya puedes disponer de este estupendo sistema de eLearning tanto en red local como a través de Internet, utilizando tu servidor o VPS Fedora.
Si durante el tutorial te ha surgido alguna pregunta o duda, tienes sugerencias de mejora de este artículo, crees que necesita actualizarse o quieres notificar posibles errores, lo más indicado es dejar un comentario, que atenderemos lo antes posible. Por cierto, filtramos el SPAM.
¡Apoya comoinstalar.me!
¿Ya tienes lista tu plataforma de eLearning gracias a nuestra guía de instalación de Moodle en Fedora 33/32/31? Si es así y te apetece expresar tu agradecimiento colaborando con el mantenimiento de este sitio y la redacción de nuevos artículos sobre materias como Fedora 33/32/31 y Moodle, puedes hacerlo invitándome a un café:
O dejando una pequeña propina de 1 $ en PayPal:
¡Gracias!
Al momento de iniciar la instalación de Moodle mediante IP: Instalador web:
Fatal error: Uncaught Error: Call to undefined function json_decode() in /var/www/html/moodle/lib/classes/component.php:535 Stack trace: #0 /var/www/html/moodle/lib/classes/component.php(436): core_component::fetch_component_source() #1 /var/www/html/moodle/lib/classes/component.php(395): core_component::fetch_subsystems() #2 /var/www/html/moodle/lib/classes/component.php(230): core_component::fill_all_caches() #3 /var/www/html/moodle/lib/classes/component.php(126): core_component::init() #4 [internal function]: core_component::classloader() #5 /var/www/html/moodle/install.php(228): spl_autoload_call() #6 {main} thrown in /var/www/html/moodle/lib/classes/component.php on line 535
Parece que te está faltando la extensión php_json, lo cual es raro, porque al preparar la pila LAMP suele incluirse en el proceso.
Solucionado lo de php-json, además de php-opcache, php-mbstring, php-xml y php-zip.
Ahora el problema es que después de iniciar la instalación via web da como resultado:
«Lo sentimos, config table no contiene versión, no se puede continuar.
Más información sobre este error
Generalmente no es posible recuperarse de los errores encontrados durante la instalación; es posible que tenga que crear una nueva base de datos o usar un prefijo de base de datos diferente si desea volver a intentar hacer la instalación«.
Acabo de actualizar el tutorial a la versión 3.10+, lo he probado y funciona todo correctamente. Si es una nueva instalación que te está dando problemas te sugiero empezar de cero (borrando los directorios creados y la base de datos). ¿Qué versión de PHP y MariaDB/MySQL estás usando?
Hola. He intentado con PHP 7.3 y 7.4. MariaDB 10.
Al parecer es SELinux. Trataré de bloquearlo.
No creo que SELinux sea la causa.
Me rindo. Rara vez me doy por vencido…
Config table does not contain version, can not continue, sorry.
More information about this error
It is usually not possible to recover from errors triggered during installation, you may need to create a new database or use a different database prefix if you want to retry the installation.
Lo intenté nuevamente. Esta vez no utilicé VirtualBox ni VMWare, sino Qemu. Funcionó a la perfección (bloqueando SELinux previamente). Gracias por sus asesorías. Bendiciones.
Estupendo. Sin embargo no creo que se trate de un problema de usar un tipo de máquina virtual u otra, sino de que realizas la instalación en otro sistema distinto, mucho más «limpio». De hecho SELinux no tiene nada que ver, ya que en el tutorial se realiza la instalación con SELinux activo. Lo que importa es que ya lo tienes funcionando.
Queda pendiente «Cómo instalar QUEMU con interfaz gráfica» y «Cómo instalar cualquier sistema operativo con la interfaz gráfica de QEMU«… ¡¡¡Muchas gracias!!!