Saltar al contenido principal

Instalación y Configuración

Este documento cubre todo lo necesario para instalar MIH en un entorno Moodle y configurarlo para su primer uso.


Requisitos

RequisitoVersión MínimaNotas
Moodle4.1Probado hasta 4.5
PHP8.08.1+ recomendado
MySQL / MariaDB5.7 / 10.4PostgreSQL también soportado
php-amqplib3.xSolo requerido para soporte AMQP/RabbitMQ
RabbitMQ3.8+Solo si se usa el transporte AMQP

Extensiones PHP Requeridas

  • curl — para el transporte HTTP
  • soap — para el transporte SOAP (normalmente incluido con PHP)
  • json — siempre disponible en PHP 8+
  • openssl — para conexiones AMQPS (SSL)

Pasos de Instalación

Paso 1: Copiar el Plugin

cp -r integrationhub /ruta/a/moodle/local/

O clonar directamente en el directorio de Moodle:

cd /ruta/a/moodle/local
git clone https://github.com/tu-org/integrationhub.git integrationhub

Paso 2: Instalar Dependencias de Composer (solo AMQP)

Si planeas usar el transporte AMQP (RabbitMQ), instala la librería PHP AMQP:

cd /ruta/a/moodle/local/integrationhub
composer require php-amqplib/php-amqplib

Nota: Si no vas a usar AMQP, omite este paso. Los transportes HTTP y SOAP no tienen dependencias de Composer.

Paso 3: Ejecutar la Actualización de Moodle

Via CLI (recomendado para producción):

php /ruta/a/moodle/admin/cli/upgrade.php

O via la interfaz web:

  1. Inicia sesión como Administrador del Sitio
  2. Ve a Administración del Sitio > Notificaciones
  3. Sigue las instrucciones de actualización

Paso 4: Verificar las Tablas de Base de Datos

Después de la actualización, confirma que se crearon las siguientes tablas:

SHOW TABLES LIKE 'local_integrationhub%';

Resultado esperado:

local_integrationhub_cb
local_integrationhub_dlq
local_integrationhub_log
local_integrationhub_rules
local_integrationhub_svc

Paso 5: Verificar las Tareas Programadas

Confirma que la tarea programada está registrada:

php admin/cli/scheduled_task.php --list | grep integrationhub

Resultado esperado:

\local_integrationhub\task\consume_responses_task   Cada minuto

Configuración del Plugin

Ve a Administración del Sitio > Servidor > Integration Hub.

ConfiguraciónClavePor DefectoDescripción
Máximo de entradas de logmax_log_entries500Máximo de filas en local_integrationhub_log antes de la auto-purga. Pon 0 para desactivar la purga.

Configuración de Permisos

Por defecto, la capacidad manage se asigna a los roles manager y admin. La capacidad view se asigna a manager, admin y editingteacher.

Para personalizar:

  1. Ve a Administración del Sitio > Usuarios > Permisos > Definir Roles
  2. Edita el rol deseado
  3. Busca local/integrationhub
  4. Asigna local/integrationhub:manage y/o local/integrationhub:view

Configuración del Cron de Moodle

El Event Bridge depende del sistema cron de Moodle™ para procesar tareas adhoc. Asegúrate de que el cron se ejecute al menos cada minuto:

# Entrada de crontab recomendada
* * * * * /usr/bin/php /ruta/a/moodle/admin/cli/cron.php > /dev/null 2>&1

Solución de Problemas de Instalación

Las tablas no se crearon

Si faltan las tablas después de la actualización, ejecuta:

php admin/cli/upgrade.php --non-interactive

Revisa el log de errores de Moodle para errores XMLDB.

Clase AMQP no encontrada

Si ves Class 'PhpAmqpLib\Connection\AMQPStreamConnection' not found:

cd /ruta/a/moodle/local/integrationhub
composer install

Asegúrate de que vendor/autoload.php existe.

El observer no se dispara

Purga las cachés de Moodle:

php admin/cli/purge_caches.php