domingo, 31 de agosto de 2008

Migrando MOODLE a otro servidor

MOODLE es uno de los sistemas de gestión de aprendizaje de mayor crecimiento en los últimos años y no es para menos, dado que es un producto más de la prestigiosa e increíble comunidad de software libre.

A medida que la comunidad de estudiantes y profesores crece en nuestro MOODLE también van creciendo los requerimiento de hardware en el servidor. Es por esto que una de las tareas como administradores de este tipo de sistemas es saber cómo "mudar" o "migrar" un sistema completo de un servidor a otro.

A continuación explico de una manera "simple" cómo realizar esta migración de un MOODLE 1.7.3 con Apache2 y Mysql5 con Debian Etch.

PASO 0: SUSPENDER LA PUBLICACIÓN DEL SITIO WEB DEL AULA VIRTUAL
  • Este paso depende de la configuración del servidor web. Sin embargo, bastará con dar de baja el sitio web en el "default" o el archivo correspondiente en el Apache2 de nuestro servidor.
PASO 1: RESPALDAR ARCHIVOS DE MOODLE Y BASE DE DATOS
  • tar cvvf moodle.tar /var/www/moodle
  • tar cvvf moodledata.tar /var/moodledata
  • mysqldump -p moodledb > moodledb.sql
PASO 2: INSTALAR LOS ARCHIVOS DE RESPALDO EN EL NUEVO SERVIDOR

Una vez que están todos los archivos respaldados, estos se copian en el nuevo servidor y se descomprimen en los directorios correspondientes:
  • En "/var/" : tar xvvf moodledata.tar
  • En "/var/www" : tar xvvf moodle.tar
  • mysql -p <>
También es necesario cambiar el dueño de los directorios:
  • chown -R www-data.www-data /var/moodledata
  • chown -R www-data.www-data /var/www/moodle
Cuando se importa la base de datos en el nuevo servidor, el usuario que queda registrado para acceder esta base de datos es "root". Evidentemente no queremos que esto se mantenga así. Por fines prácticos, vamos a mantener la misma configuración que el servidor viejo. La información de la base de datos la podemos ver en el archivo "/var/www/moodle/config.php":
  • mysql -p
  • mysql> grant all privileges on moodledb.* to usuario@'localhost' identified by 'clave';
  • mysql> flush privileges;
Si la ubicación de los directorios "moodledata" y "moodle" no fueran los mismos en el nuevo servidor entonces tendríamos que realizar los ajustes correspondientes en el archivo"config.php" de MOODLE.

PASO 3: PROBAR LA INSTALACIÓN NUEVA

Visitamos el nuevo sitio web con algún explorador "serio" como Iceweasel, Firefox u Opera. Si tod ha salido bien, debemos estar viendo correctamente el aula virtual de MOODLE en el nuevo servidor.

La configuración del servidor APACHE2 está fuera del alcance de este ejemplo, sin embargo, dado que se está migrando el servicio de otro servidor que estaba operativo entonces basta con repetir dicha configuración en el nuevo servidor.

Básicamente en el nuevo servidor deben estar previamente instalados los siguientes paquetes para el correcto funcionamiento de MOODLE:
  • aptitude install apache2 php5 mysql-server php-mysql php5-gd php-pear sendmail
Espero sea de utilidad.

Éxitos!

9 comentarios:

Manuel Tello Guerrero dijo...

Estimado José Gregorio:

Es muy ilustrativa tu aportación y te comento que quiero instalar otro moodle en mi servidor. El procedimiento es el mismo que que estás mostrando aquí?

José Gregorio Díaz Unda dijo...

Hola Manuel y gracias por el comentario.

El MOODLE nuevo que quieres instalar:

¿es una migración o se trata de una instalación completamente nueva?

Saludos.

José Gregorio.

Manuel Tello Guerrero dijo...

Hola José Gregorio:

La instalación sería completamente nueva sólo que sería en el mismo servidor.

Investigando en la red, según algunos foros dicen que puedo respaldar la base de datos del moodle existente y la carpeta moodledata para que me sirvan en la instalación nueva a fin de que cada uno de ellos tenga su propia base de datos.

Saludos y espero tus comentarios.

Manuel Tello Guerrero dijo...

Hola José Gregorio:

Estaba analizando mi situación para la instalación del nuevo moodle en mi servidor.

Creo que sin necesidad de hacer un respaldo de la base de datos del moodle actual, puedo crear una nueva base de datos para el moodle nuevo.

Tu que opinas?

José Gregorio Díaz Unda dijo...

Saludos Manuel, espero esté todo chévere.

Me gustaría conocer las razones que te motivaron a realizar una nueva instalación en el servidor.

Particularmente, yo utilizo versiones de MOODLE que tengan cierta madurez. Sobretodo para instalaciones con muchos estudiantes y cursos (más de 1000 estudiantes con más de 100 cursos).

¿Migrarás los cursos a la instalación nueva o crearás cursos desde cero?

Estoy pendiente.

José Gregorio.

Sarilen dijo...

Hola Jose Gregorio,

Necesito cambiar un moodle. Expongo el caso:
Tenemos un moodle en un dominio de 1&1 pero queremos cambiar el dominio a otra cuenta que hemos adquirido de 1&1. El dominio está en espera de hacer el traspado.
En la cuenta que hemos adquirido nueva he subido via FTP la web y carpetas moodle y moodledata tal y como están estructuradas en la cuenta antigua pero la he subido a un subdominio que nos ha creado la cuenta porque antes de realizar el cambio de todo queremos probar que moodle funciona bien. Tambien he creado en la nueva cuenta 1&1 2 DB: moodle y moodledata (exportandolas de la cuenta de 1&1 antigua e importandolas a la nueva).

1. Las DB que he creado nuevas tienen un nombre distinto a las que teniamos en la primera cuenta de 1&1, ¿debería cambiar el nombre editando cada DB al nombre nuevo?

2. ¿Debo modificar el config.php a las nuevas rutas y usuario nuevo, nombre de DB, alojamiento nuevo de DB...? Aqui tengo un problema que no las debo poner bien pq yo pongo las rutas de la ubicacion de las carpetas de la web (moodle y moodledata), puesto que no tengo instalado ningun servidor en mi PC.
Y cuales son las rutas??? Debería instalar servidor para hacer ésto???
3. El replace no se como ponerlo para poder cambiar ahi del antiguo al nuevo.

La DB no la he creado yo, el creador se ha desvinculado totalmente y como no nos administra nada (ni web ni DB) le hemos solicitado el cambio del dominio y de la DB pero no nos ha dado instrucciones de ningun tipo y es la primera vez que todo un moodle.

Necesito ayuda para que podamos hacer prueba con la DB y comprobar que hago todo bien para que cuando realicemos el cambio total del dominio no tengamos problema.

Otra pregunta, al cambiar el dominio todas las rutas las debería modificar de nuevo, digo yo o al menos el replace..

Gracias de antemano.
Saludos

José Gregorio Díaz Unda dijo...

Saludos Sarilen.

Voy a tratar de ayudarte, pero necesitaría saber más información como por ejemplo: qué versión de MOODLE usas?, qué características tiene el nuevo servicio de hospedaje?, qué base de datos tienes?, cuanto pesa toda la instalación de MOODLE que quieres migrar?

Acá te dejo algunas respuestas:

1. Las DB que he creado nuevas tienen un nombre distinto a las que teniamos en la primera cuenta de 1&1, ¿debería cambiar el nombre editando cada DB al nombre nuevo?

No es necesario tener los mismo nombres de base de datos. Basta con indicar el cambio en el archivo "config.php".

2. ¿Debo modificar el config.php a las nuevas rutas y usuario nuevo, nombre de DB, alojamiento nuevo de DB...?

Es muy probable que la estructura de directorios del nuevo proveedor de hospedaje sea distinta a la que manejabas con "1&1". Es por esto que debes conocer la estructura de directorios del nuevo proveedor y actualizar el "config.php".

Las rutas de directorios las cambias en estas variables del "config.php":

$CFG->wwwroot = 'http://TuDominio.com/TuMoodle';
$CFG->dirroot = 'Ruta/Hacia/La/Carpeta/MOODLE';
$CFG->dataroot = 'Ruta/Hacia/La/Carpeta/De/Datos/De/MOODLE/moodledata';
$CFG->admin = 'admin';

Recuerda que si el hospedaje es con algún sistema operativo basado en MS Windows, las rutas usan "\" y no "/".

Para instalar MOODLE debes tener disponible un servidor web, servidor de base de datos y acceso a los directorios del sitio web.

3. El replace no se como ponerlo para poder cambiar ahi del antiguo al nuevo.

La DB no la he creado yo, el creador se ha desvinculado totalmente y como no nos administra nada (ni web ni DB) le hemos solicitado el cambio del dominio y de la DB pero no nos ha dado instrucciones de ningun tipo y es la primera vez que todo un moodle.

Necesito ayuda para que podamos hacer prueba con la DB y comprobar que hago todo bien para que cuando realicemos el cambio total del dominio no tengamos problema.

4. Al cambiar el dominio todas las rutas las ¿debería modificar de nuevo?

Dependiendo de la versión de MOODLE que usas pueden estar guardadas algunas rutas del nombre de dominio anterior. Entonces, es posible que tengas que actualizar el archivo de respaldo de la base de datos en formato ".sql" (texto plano) con el nuevo nombre del dominio.

Todo esto dependerá de la versión de MOODLE que tengas.

Éxitos!

José Gregorio.

Manuel Tello Guerrero dijo...

Estimado José Gregorio:
Gracias a tu aporte he logrado migrar múltiples plataformas a mi servidor y me gustaría compartieras conmigo las características de un servidor web para alojar una o varias plataformas para un aproximado de 1500 alumnos (quizá algunos 300 usuarios concurrentes).
Podrías ayudarme en eso?
Gracias.

Yonatan Eric dijo...

Hola ojala puedan ayudarnos tenemos un servidor Dell Optiplex con varias instancias de moodle (1 moodle para cada carrera y son 6 y tenemos 6 moodles en el mismo servidor y una bd con nombre diferente para cada moodle).

Ahora lo que queremos es tener una sola instancia (1 solo moodle) y ahí meter todos los contenidos de los demás moodles (contenidos de las demás carreras que se encuentran en los demás moodles y las demas bd).

¿Cómo podríamos hacer esto?
Gracias.