Instalación de Moodle 4.0 limpia en un NAS Synology - Moodle no empaquetado

Instalación de Moodle 4.0 limpia en un NAS Synology - Moodle no empaquetado

de Pedro Marauri -
Número de respuestas: 0

He instalado una versión limpia de Moodle 4.0 para evitar la constante dependencia de las actualizaciones del propio NAS que suceden de pascuas a ramos y os cuento un poco la experiencia para que la gente no pierda tanto tiempo como yo en lograrlo.

Mi Synology NAS es un DS715 y dispone de la versión del sistema DSM 6.2.4-25556 Update 5. Parece que la gente cuenta que Moodle no funciona con la versión 7 del sistema operativo del NAS.

Trabajo con Apache 2.4, PHP 7.4 y Mariadb10

Pasos dados:

0. Crear copia de seguridad de los cursos que me interesa restaurar en la nueva versión y descargarlos a lugar seguro. También una copia de seguridad de la base de datos.

1.- Si tienes instalado previamente el archivo empaquetado de Moodle es muy importante que guardes una copia del config.php porque vas a necesitar un dato  existente en dicho archivo para poder completar la instalación. La ruta a 'dbsocket'. Es lo que más me ha costado darme cuenta y perder el tiempo.

2.- He eliminado completamente el moodle empaquetado. No así la base de datos porque siempre se puede borrar más adelante.

3.- He creado una nueva base de datos moodle4 y un nuevo usuario moodle4_user mediante el phpmyadmin incluido en Synology. Porque mi intención era comenzar desde cero.

4.- He creado la carpeta moodle4data utilizando directamente el administrador de archivos FileStation fuera de la ruta www. No me ha hecho falta utilizar Midnight Commander para el tema crear carpeta, permisos y demás.

Todos estos pasos han sido sencillos. Sólo he recibido un aviso para modificar el max_var_size a 5000 (lo tenía en 1000) y que mi versión php no era de 64bits. He modificado el PHP mediante la secuencia Menú Principal, Web Station, Configuración de PHP, Default Profile, Editar, Pestaña Núcleo y buscar la variable max_input_vars modificándola a 5000. El PHP 64 lo dejo para más adelante porque dependerá del momento en que SYNOLOGY lo incluya

5.- He comenzado la instalación y he llegado perfectamente hasta la conexión con la base de datos. Aquí fallaba y aparecía constantemente un error que revisando la web aparece en numerosos intentos de instalación y en numerosas versiones. Exactamente:

{$a} 

Warning: mysqli::__construct(): (HY000/2002): No such file or directory in /volume1/web/moodle4/lib/dml/mysqli_native_moodle_database.php on line 83 Call Stack: 0.0001 360288 1. {main}() /volume1/web/moodle4/install.php:0 0.7297 1750200 2. install_db_validate() /volume1/web/moodle4/install.php:287 1.0979 1853232 3. mariadb_native_moodle_database->create_database() /volume1/web/moodle4/lib/installlib.php:190 1.0980 1870024 4. mysqli->__construct() /volume1/web/moodle4/lib/dml/mysqli_native_moodle_database.php:83

Tras buscar en la red no queda muy claro el problema y es más sencillo de lo que parece. Moodle no localiza el conector  de la base de datos. 

He intentado unas 5 ó 6 veces repetir el intento de instalación obteniendo siempre el mismo error y en uno de los intentos,  moodle ha decidido que ya era suficiente y me ha mostrado en pantalla el config.php que se había generado y que tras revisarlo me ha puesto sobre la pista:

<?php  // Moodle configuration file

unset($CFG);

global $CFG;

$CFG = new stdClass();

$CFG->dbtype    = 'mariadb';

$CFG->dblibrary = 'native';

$CFG->dbhost    = 'localhost';

$CFG->dbname    = 'moodle4';

$CFG->dbuser    = 'moodle_user';

$CFG->dbpass    = '************';

$CFG->prefix    = 'mdl_';

$CFG->dboptions = array (

  'dbpersist' => 0,

  'dbport' => 3307,

  'dbsocket' => '',

  'dbcollation' => '',

);

$CFG->wwwroot   = 'http://moodle4.ddns.net/moodle4';

$CFG->dataroot  = '/volume1/moodle4data';

$CFG->admin     = 'admin';

$CFG->directorypermissions = 0777;

require_once(__DIR__ . '/lib/setup.php');

// There is no php closing tag in this file,

// it is intentional because it prevents trailing whitespace problems!

6.- Me he percatado que faltaban estos dos parámetros:

  'dbsocket' => '',  No está la dirección del enlace con la base de datos y el instalador no puede comprobar la base de datos

  'dbcollation' => '', Al no poder leer la base de datos el instalador desconoce el dato, pero nosotros sí al haber creado la base de datos.

7.- En este punto es importante abrir el config.php que moodle nos ha proporcionado en un archivo y completar los datos faltantes con la información que hemos obtenido con el config.php de la versión empaquetada de moodle antiguo.

  'dbsocket' => '/run/mysqld/mysqld10.sock',

  'dbcollation' => 'utf8mb4_spanish_ci',

8.- Una vez completado el archivo lo guardamos como config.php y lo copiamos en el interior del directorio raíz de moodle.

9.- Reiniciamos la instalación y la instalación continúa ya normalmente hasta el final.

10. Restauramos los cursos que habíamos guardado en el nuevo moodle y tras comprobar que todo funciona correctamente ya estamos en disposición de borrar la base de datos antigua.

Espero que esta pequeña ayuda pueda ayudar a alguien a no perder el tiempo.

Saludos cordiales

Pedro Marauri





Promedio de valoraciones:Útil (2)