Tienda Wifi

Tienda Wifi
CiudadWireless es la tienda Wifi recomendada por elhacker.NET

Buscador

Entradas Mensuales

Suscripción

¿Quieres recibir las últimas novedades del blog en tu correo?

¡Suscríbete al feed!

Foro de elhacker.net - Noticias

elhacker.NET en Facebook

Entradas populares

PostHeaderIcon Migración Moodle 1.9.x a Moodle 2.x




Moodle es una aplicación web del tipo plataforma de gestión del aprendizaje (LMS, Learning Management System), que permite crear comunidades de aprendizaje en línea. Las principales funciones del LMS son: gestionar usuarios, recursos, materiales y actividades de formación; administrar el acceso, controlar y hacer el seguimiento del proceso de aprendizaje; elaborar evaluaciones, generar informes y gestionar servicios de comunicación como foros de discusión y videoconferencias, entre otros.






Introducción


En el mercado hay otras soluciones LMS comerciales, pero lo que hace que Moodle sea especial es que es Open Source. Esto significa que el código de programación es abierto, de manera que todos-una institución o un particular-lo puede modificar para adaptarlo a sus necesidades y se le puede instalar gratuitamente. Estos dos factores unidos, una amplia comunidad de usuarios y el hecho de ser Open Source han hecho posible la constante evolución de Moodle para adaptarse a un mundo que también cambia constantemente.

Se estima que la mayoría de las universidades catalanas usan Moodle menos la UOC aunque se cree que están migrando también a  Moodle.

A nivel de administrador de Moodle debemos tener en cuenta que Moodle está estructura  a grandes rasgos de la siguiente manera:


  • Base de Datos (más de 300 tablas con todos los registros de moodle, logs, usuarios, asignaturas, permisos, etc)
  • Moodledata (datos del moodle, es decir, ficheros e imágenes que se subirán en los cursos)
  • Public_html (ficheros php del servidor web)


Instalación



El fichero de configuración de moodle se llama config.php y está en la raíz del public_html. Es el fichero que se crea durante la instalación via web de Moodle . Instalar moodle desde 0 es muy sencillo, basta con subir por ftp toda la estructura de ficheros (ficheros php, carpetas, directorios, etc) al servidor web y llamar la url en el navegador, automáticamente si no existe el fichero config.php empezará el instalador web, dónde nos piden todos los parámetros de configuración.

Para instalar moodle de 0 tan sólo hay que cumplir con los requisitos de instalación, especialmente los módulos de php.

MySQL: se recomienda usar las tablas con el motor InnoDB en las últimas versiones, pero no es obligatorio, se puede usar el motor MyIsam, pero si es necesario y obligatorio usar unicode por el tema de los acentos.

Podemos convertir nuestra base de datos a utf8 usando la siguiente consulta SQL

ALTER DATABASE moodle charset=utf8;
A la hora de hacer un mysqldump también es importante especificar por defecto uft8:

mysqldump --user=moodle -p moodle -default-character-set=utf8 < moodle.sql


moodle versión 2.2 es obligatoria y está ejecutando 2.4.5 (Build: 20130708)versión 2.2 es obligatoria y está ejecutando 2.4.5 (Build: 20130708) OK
unicode debe estar instalado/activadodebe estar instalado/activado OK
database mysql versión 5.1.33 es obligatoria y está ejecutando 5.1.69.0.0.10.04.1versión 5.1.33 es obligatoria y está ejecutando 5.1.69.0.0.10.04.1 OK
php versión 5.3.2 es obligatoria y está ejecutando 5.3.2.1.4.19versión 5.3.2 es obligatoria y está ejecutando 5.3.2.1.4.19 OK
pcreunicode debería estar instalado y activado para conseguir los mejores resultadosdebería estar instalado y activado para conseguir los mejores resultados OK
php_extension iconv debe estar instalado/activadodebe estar instalado/activado OK
php_extension mbstring debería estar instalado y activado para conseguir los mejores resultadosdebería estar instalado y activado para conseguir los mejores resultados OK
php_extension curl debe estar instalado/activadodebe estar instalado/activado OK
php_extension openssl debería estar instalado y activado para conseguir los mejores resultadosdebería estar instalado y activado para conseguir los mejores resultados OK
php_extension tokenizer debería estar instalado y activado para conseguir los mejores resultadosdebería estar instalado y activado para conseguir los mejores resultados OK
php_extension xmlrpc debería estar instalado y activado para conseguir los mejores resultadosdebería estar instalado y activado para conseguir los mejores resultados OK
php_extension soap debería estar instalado y activado para conseguir los mejores resultadosdebería estar instalado y activado para conseguir los mejores resultados OK
php_extension ctype debe estar instalado/activadodebe estar instalado/activado OK
php_extension zip debe estar instalado/activadodebe estar instalado/activado OK
php_extension gd debería estar instalado y activado para conseguir los mejores resultadosdebería estar instalado y activado para conseguir los mejores resultados OK
php_extension simplexml debe estar instalado/activadodebe estar instalado/activado OK
php_extension spl debe estar instalado/activadodebe estar instalado/activado OK
php_extension pcre debe estar instalado/activadodebe estar instalado/activado OK
php_extension dom debe estar instalado/activadodebe estar instalado/activado OK
php_extension xml debe estar instalado/activadodebe estar instalado/activado OK
php_extension intl debería estar instalado y activado para conseguir los mejores resultadosdebería estar instalado y activado para conseguir los mejores resultados OK
php_extension json debe estar instalado/activadodebe estar instalado/activado OK
php_extension hash debe estar instalado/activadodebe estar instalado/activado OK
php_setting memory_limit detectado ajuste recomendadodetectado ajuste recomendado OK
php_setting safe_mode detectado ajuste recomendadodetectado ajuste recomendado OK
php_setting file_uploads detectado ajuste recomendadodetectado ajuste recomendado OK

Por ejemplo para instalar la versión 5.2.1 de Moodle es necesario tener PHP 5.3.3 o superior.


El fichero config-dist.php se basa de plantilla para generar automáticamente el config.php

Ejemplo de fichero config.php

unset($CFG);
global $CFG;
$CFG = new stdClass();
$CFG->dbtype    = 'mysqli';
$CFG->dblibrary = 'native';
$CFG->dbhost    = 'localhost';
$CFG->dbname    = 'moodle';
$CFG->dbuser    = 'moodle';
$CFG->dbpass    = 'xxxx';
$CFG->prefix    = 'mdl_';
$CFG->dboptions = array (
  'dbpersist' => 0,
  'dbsocket' => 1,
);
$CFG->wwwroot   = 'http://moodle.elhacker.net';
$CFG->dataroot  = '/home/moodle/moodledata';
$CFG->admin     = 'admin';
$CFG->directorypermissions = 0777;
require_once(dirname(__FILE__) . '/lib/setup.php');
// There is no php closing tag in this file,
// it is intentional because it prevents trailing whitespace problems!
Datos de la base de datos (MySQL) y los paths (rutas) del datamoodle (dataroot) y del public_html (wwwroot)

Más adelante explicaremos la variable passwordsalt del fichero config.php

$CFG->passwordsaltalt1 = 'old long random string';
$CFG->passwordsaltmain = 'new long random string';

// EXAMPLE: set to empty string
$CFG->passwordsaltmain = '';

Migración - Migrando Moodle a una nueva versión superior

Desde la creación de Moodle, han ido apareciendo varias versiones de forma regular hasta llegar a la 1.9, que incorporaba ideas nuevas y desarrollos gracias a la amplia comunidad Open Source. De manera paralela, hace dos años que se desarrolla la versión 2.x.

Desde el punto de vista de la programación, esta última versión no es una evolución de versiones anteriores sino que supone un enfoque completamente nuevo: se ha reescrito una gran cantidad de código tratando de implementar más modularidad en vez de ensamblar piezas de código de orígenes diferentes, como se había hecho hasta ahora. Por otra parte, los usuarios de versiones anteriores verán, al mismo tiempo que una semejanza de familia, un conjunto de características nuevas que dotan Moodle de una gran potencialidad. Se ha procurado que el tráfico no fuera traumático, pero, sin duda, adaptarse a los cambios exige tiempo y esfuerzo al profesorado.

Esta nueva versión incorpora muchas de las características que la comunidad de usuarios pedía. De hecho, la denominación 2.X tiene su origen en una broma: cuando los foros algún usuario preguntaba cómo hacer algo esperando que esta cosa fuera posible y creyendo que era él que no era capaz por su inexperiencia, se le respondía «todavía no es posible, pero estará disponible en Moodle 2.X». Entre otras cosas, los usuarios pedían un aspecto gráfico más "profesional", mejoras en la navegación, más control sobre las actividades del alumnado, módulos nuevos para las actividades y una interacción mejorada. Es posible que con esta nueva versión no se haya conseguido todo, y quizás tendremos que esperar una versión 3.0, pero por ahora tenemos bastantes características nuevas que pueden ser suficientes para que esta plataforma sea un instrumento

Tal y comos hemos comentado anteriormente los cambios de Moodle 1.9.x  a Moodle 2.x son numerosos. No sólo cambios estéticos, con nuevas opciones para los profesores y alumnados, internamente moodle cambia mucho. Además a partir del Moodle 2.3.x el módulo de Tareas es completamente nuevo.

Tampoco es posible migrar las asignaturas (cursos) de Moodle 1.9 a 2.x, es por eso que si migramos el campus entero ya tendremos migradas las asignaturas también.

No podemos migrar Moodle 1.9.x a la última versión 2.5.1 directamente, debemos realizar pasos intermedios de versiones.

La estructura de las tablas de Moodle 1.9.x a la 2.x ha sufrido cambios importantes.

La mejor manera para empezar es hacer una copia de seguridad de la base de datos de MySQL con MySQLdump, navicat lite, o phpMyAdmin, una copia de los ficheros html (vía ftp o vía shell con tar cvzf moodle.tar.gz moodle) y una copia de seguridad del moodledata. Especialmente recomendado comprimir la carpeta moodledata porque su estructura es bastante complicada (con muchas carpetas y subcarpetas) y si nuestro campus es grande (con muchos cursos) esta carpeta puede ocupar varios GB de espacio.

Guardamos a parte del fichero de configuración config.php.

Para migrar un Moodle 1.9.x podemos usar Moodle 2.0.10:

wget http://download.moodle.org/download.php/direct/stable20/moodle-2.0.10.zip
unzip moodle-2.0.10.zip
Sobrescribimos la carpeta moodle con los nuevos ficheros y subimos de nuevo el fichero config.php

Si escribimos la url en el navegador de moodle sin el fichero config.php empezará a configurar moodle desde 0 y en nuestro caso nos interesa migrar una instalación de moodle ya instalada y funcionando.

Lo importe es cumplir con todos los requisitos (Comprobaciones del servidor)

    Página Principal/ ► Administración del sitio/ ► Servidor/ ► Entorno

Al llamar la url del moodle desde el navegador Moodle detecta automáticamente que hay una nueva versión de Moodle para instalar (configurar) y nos lleva directamente al asistente de update (migración). Moodle realizará todos los cambios internos de la estructura de la base de datos (nuevos campos, nuevas tablas, etc).

Una de las mejoras maneras para realizar la migración satisfactoriamente es usar el upgrade.php vía shell, mucho más rápido y eficiente que además nos ahorrará problemas de timeouts.

Importante si tenemos problemas activar las opciones para depurar en los ficheros php (para ver los errores de php)

 error_reporting(E_ALL);
 
 ini_set("display_errors", 1);
?> 


/usr/bin/php /home/moodle/campus/admin/cli/upgrade.php --non-interactive

Basta con llamar al interprete de php (normalmente en /usr/bin) y el path del uprade.php en modo no interactivo. Des de la shell van saliendo la conversión de los datos con un "Success" y nos avisa una vez completado el proceso, que puede ser especialmente largo si el moodle a migrar contiene muchos registros.

Podemos llamar de nuevo la url de moodle desde el navegador y comprobar que la nueva versión de moodle está instalado y funcionando correctamente.

De nuevo podemos ver en:

   Página Principal/ ► Administración del sitio/ ► Servidor/ ► Entorno

Si la versión está instalada correctamente.

Ahora que tenemos instalado Moodle 2.0.x ya podemos actualizar a Moodle 2.2.x sin problemas:

wget http://download.moodle.org/download.php/direct/stable22/moodle-2.2.11.zip
unzip moodle-2.2.11.zip 

No podemos pasar directamente de Moodle 2.0.x a un 2.4.x o 2.5.x directamente.

De nuevo descomprimimos moodle 2.2.11 encima de la carpeta moodle y subimos de nuevo el fichero config.php

Y actualizamos de nuevo en modo shell:

/usr/bin/php /home/moodle/campus/admin/cli/upgrade.php --non-interactive

Ya sólo queda el último paso y actualizar a Moodle 2.4.5

wget http://download.moodle.org/download.php/stable24/moodle-2.4.5.zip 
rm -r moodle  
unzip moodle-2.4.5.zip 

Y subimos de nuevo el fichero config.php.

Ya deberíamos tener migrado completa y correctamente Moodle 2.4.5 versión estable.

Los themes (temas de diseño) no son compatibles del 1.9.x al 2.x. Y también tenemos que tener en cuenta si usamos todos los módulos estandard (por defecto) o hemos instalado plugins diferentes.

Si hemos migrado los cursos (asignaturas) debemos tener en cuenta que el módulo de "Tareas" es muy diferente y hay que migrarlo a parte desde:

    Página Principal/ ► Administración del sitio/ ► Motor de Ayuda para actualizar Tareas/ ► Lista de tareas que no se han actualizado

En las próximas entradas veremos las diferencias más importantes entre Moodle 1.9.x y Moodle 2.x y Moodle 2.4.x y superiores. Diferencias, nuevas características (Mensajería, Bloques, Cohortes, Grupos, etc) y el tema de automatizar el alta de usuarios y alta de usuarios cursos (con ficheros csv separados por comas) añadir repositorios de Dropbox y Google Docs (con la api de Google Auth).

2 comentarios :

Unknown dijo...

Hola, una pregunta quiero hacer esta migración pero no tengo la carpeta de moodledata, debido a que la instalación la hicieron con otro nombre y no como moodle, alguna idea de donde esté?

el-brujo dijo...

En el fichero config.php del Moodle encontrarás la variable: $CFG->dataroot = y allí está la ruta de tu directorio del moodle Data

Publicar un comentario

Los comentarios pueden ser revisados en cualquier momento por los moderadores.

Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.

Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.