Moodle La Instalación debe finalizarse desde la misma dirección IP original

error/admin/installhijacked

Este error compara $adminuser->lastip con la dirección IP actual del usuario.

Esto ocurrirá si un sitio ha sido instalado en un servidor mediante los scripts de la interfaz por línea de comando en admin/cli (install_database.php o install.php). Después de instalar el sitio remotamente, el visitar el sitio mediante un navegador web (con una IP diferente) disparará el mensaje de error.

Solución:

Actualice directamente la BasedeDatos con su dirección IP actual (table: mdl_user, field: lastip, SQL: UPDATE mdl_user set lastip=’159.245.48.2′ en donde username=’admin’;).

Moodle piensa que se cambió la dirección IP de donde originalmente se comenzó la instalación del paquete.

Para los que usan servidores de Amazon AWS EC2: la instalación debe finalizar desde la dirección IP original.

Leyendo el código fuente, es posible que haya descubierto que el mensaje proviene de las siguientes líneas:

if ($adminuser->lastip !== getremoteaddr()) {
    print_error('installhijacked', 'admin');
}

Si bien comentar el código puede hacer que supere ese punto de la instalación, el problema eventualmente volverá a atormentarlo y ni siquiera se dará cuenta de que está relacionado. El problema es que la función getremoteaddr() de Moodle, que se usa en todas partes en Moodle y es responsable de identificar su dirección IP en Moodle, continuará informando una dirección IP incorrecta en cosas como registros e incluso puede afectar la seguridad de su sitio web.

Un mejor enfoque es simplemente agregar la siguiente línea al archivo config.php principal de su Moodle ubicado en webroot. La línea debe colocarse en cualquier lugar entre $CFG = new stdClass(); y require_once(__DIR__ . ‘/lib/setup.php’); linea:

$CFG->getremoteaddrconf = 0;

Si no funciona prueba con 1, 2, 3

Esto deberá agregarse durante la instalación después de que Moodle haya creado su archivo config.php, hasta el momento en que reciba el mensaje de error. Esta configuración hará que Moodle identifique correctamente su dirección IP utilizando la variable de servidor Apache HTTP_X_FORWARDED_FOR en lugar de REMOTE_ADDR y permitirá que continúe la instalación.

Si bien no he intentado lo siguiente, también puede agregar esa línea a un archivo llamado /local/defaults.php (crear si aún no existe).

Para obtener más información sobre defaults.php, consulte https://docs.moodle.org/dev/Local_plugins#Customised_site_defaults

Este archivo defaults.php puede ser útil para establecer la configuración predeterminada durante una nueva instalación si lo incluye en su bifurcación de Moodle.

La línea en defaults.php podría ser:

$defaults['moodle']['getremoteaddrconf'] = 0;  // New default for $CFG->getremoteaddrconf
En mi experiencia algo que no me permitía superar ese mensaje era la codificación de la base de datos, pues la tenía en utf8mb4_spanish_ci y aún configurado nada que pasaba, la cambie a utf8mb4_unicode_ci y listo funciono perfectamente.

Share to...