Cómo hacer portable Moodle

Imaginemos el escenario: no nos es posible instalar Moodle en un alojamiento web para que se pueda acceder a él a través de Internet pero sí queremos aprovechar su funcionalidad en un aula de Informática. Una solución rápida es utilizar un servidor web portable en el que se instala Moodle en el aula de informática, mientras trabajamos con los alumnos. Tener ese servidor web portable en un disco duro externo nos ahorraría mucho tiempo: podemos hacerlo funcionar en el aula y después "pincharlo" en otro ordenador para revisar actividades.


Así, sólo necesitaríamos llegar al ordenador que utilicemos en el aula de informática, conectar el disco duro externo, poner XAMPP en ejecución y que los alumnos pudieran acceder a través de la red local al Moodle instalado en nuestro XAMPP. En esta entrada se van a explicar los pasos para conseguir instalar Moodle sobre XAMPP en Windows y, además, hacerlo portable. Vamos a seguir los siguientes pasos:

  1. Descargar, instalar XAMPP y ponerlo en ejecución.

  2. Instalar Moodle sobre XAMPP.

  3. Hacer portable Moodle para que no haya que hacer cambios en su configuración.

  4. Repasar la puesta en funcionamiento.

1. Descargar, instalar XAMPP y ponerlo en ejecución.


XAMPP es un servidor web portable para Windows totalmente gratuito y basado en distintos proyectos de software libre. Podemos hacer que Moodle funcione de forma portable con la versión "Portable Lite" de XAMPP, que incluye únicamente PHP+MySQL+Apache, y que se puede descargar desde esta página.

Tras descargar XAMPP Portable Lite, sólo habrá que hacer doble click e indicar el directorio en el que descomprimir.

Una vez descomprimido, habrá que hacer doble click sobre setup-xampp.bat. Pueden ocurrir dos cosas: que aparezca un mensaje en inglés indicando que no hay cambios que hacer y que se presione una tecla para continuar (lo que hay que hacer para finalizar) o bien que aparezca un menú con dos opciones, siendo Refresh la primera de ellas: se presiona 1, se presiona Intro y después de que se cambie la configuración, únicamente hay que presionar una tecla para finalizar.

Contenido de la ventana cuando se ejecuta setup-xampp.bat: hay que presionar 1 y luego Intro.

Para poner XAMPP en marcha, sólo hay que hacer doble click sobre xampp-control y hacer click en los botones Start que hay junto Apache y MySQL.

Botones en los que hacer click para iniciar MySQL y Apache.

2.- Instalar Moodle sobre XAMPP


Con Apache y MySQL funcionando, el primer paso para instalar Moodle es crear la base de datos que usará posteriormente Moodle. Para ello, en un navegador visitamos la dirección localhost/phpmyadmin para acceder al gestor PHPMyAdmin, que viene instalado con XAMPP, y con el que podremos gestionar las bases de datos con MySQL.

Los pasos para la creación de la base de datos para Moodle aparecen en la diapositiva número 9 de la presentación en SlideShare que hay a continuación.

Creada la base de datos, tendremos que descargar Moodle desde su página web en formato .zip y descomprimirlo dentro de la carpeta pública de XAMPP, que es htdocs. Tras descomprimir, se visita en un navegador localhost/moodle para iniciar la instalación, que podemos realizar siguiendo los pasos que hay a partir de la diapositiva 12 de esta presentación en SlideShare.



Tras los pasos de instalación de Moodle en la presentación se muestran pasos a seguir para la configuración de Moodle que aseguren una mejor seguridad y comodidad en su uso. La creación de cronjobs es un paso a saltar cuando lo instalamos de forma portable en XAMPP y es algo que tendremos que ejecutar nosotros a mano de vez en cuando, visitando la página http://direccionDelAulaVirtual/admin/cron.php?password=XXX

Por defecto, XAMPP está configurado para que no sea posible subir archivos de más de 2MB. Puesto que este límite se puede quedar algo corto, es el momento estupendo para configurar XAMPP para aumentar el tamaño de los archivos de subida.


3.- Hacer portable Moodle para evitar cambios en su configuración.


La instalación por defecto de Moodle hace complicado que sea portable, principalmente porque guarda la ruta absoluta a la carpeta moodledata, donde se guardan los archivos que se usan en la plataforma, y porque utiliza localhost para referirse a la máquina en la que está ejecutándose XAMPP.

Que use la ruta absoluta puede no ser un problema si instalamos XAMPP en un ordenador y jamás lo movemos de sitio. Pero esto tiene poco de "portable". Sería más fácil instalar XAMPP en un disco duro externo, pero entonces es difícil asegurar que al disco duro se le vaya a asignar siempre la misma letra de unidad al conectarlo en distintos ordenadores. Afortunadamente, esto no debe preocuparnos.

Un asistente a un curso de formación en el que colaboro me ha hecho llegar este "truco": si editamos el archivo config.php de la instalación de Moodle, que está dentro de xampp/htdocs/moodle y quitamos la referencia a la unidad, Moodle sigue funcionando siempre que mantengamos la carpeta xampp en la raíz de la unidad. Así, si tenemos un disco duro externo, posiblemente se le asignará una letra distinta en diferentes ordenadores, pero como no movemos la carpeta xampp de sitio dentro del disco duro, Moodle seguirá funcionando.

En el archivo config.php encontraremos una línea que será parecida a:
$CFG->dataroot  = 'C:\\xampp\\moodledata';

Y que debemos modificar eliminando la letra de unidad para que quede:
$CFG->dataroot  = '\\xampp\\moodledata';

El segundo problema es que en cada ordenador al que conectemos el disco duro externo puede tener una dirección IP distinta. Moodle guarda en su fichero de configuración la dirección HTTP de la instalación y sería incómodo tener que estar modificando ese archivo cada vez que encontremos una IP distinta. La situación ideal sería utilizar direcciones IP fijas, pero aún así tenemos complicado que esa IP sea la misma en los distintos ordenadores en los que vayamos a utilizar Moodle portable.

Afortunadamente, podemos modificar el archivo config.php para que sea el propio motor PHP el que "escriba" la dirección IP asignada al puesto de forma automática. De nuevo, en el archivo config.php encontraremos una línea que será parecida a:

$CFG->wwwroot = 'http://localhost/moodle';

Y que debemos modificar por:
$CFG->wwwroot = 'http://'.GetHostByName("").'/moodle';

Con esta modificación, el archivo config.php cogerá la dirección IP del puesto. Incluso nosotros mismos no tenemos que preocuparnos por conseguir la dirección IP: con visitar localhost/moodle en un navegador, Moodle nos advertirá de que la dirección no es correcta y nos llevará a la nueva dirección, que es la que tendremos que proporcionar a los alumnos para que accedan a nuestra instalación.

Algo importante: para mejorar la seguridad de nuestra instalación de Moodle, es necesario evitar que el directorio phpmyadmin sea accesible desde la red. La forma rápida de conseguir esto es cambiando el nombre a la carpeta phpmyadmin que está dentro de xampp: de esta forma, la redirección desde localhost/phpmyadmin dejará de funcionar y aparecerá un error. Si alguna vez nos fuera necesario acceder de nuevo a PHPMyAdmin, sólo habrá que poner el nombre correcto.

4.- Repasar la puesta en funcionamiento.


Instalado XAMPP, Moodle y configurado todo, repasemos los pasos para ponerlo en marcha en cualquier momento:

  1. Conectar el disco duro externo.

  2. Ir a la carpeta de xampp, hacer doble click sobre setup-xampp y refrescar la configuración si es necesario.

  3. Hacer doble click sobre xampp-control y hacer click sobre el botón Start junto a Apache y MySQL.

  4. Cuando los dos indicadores de Apache y MySQL estén en verde, abrir un navegador y escribir localhost/moodle en la barra de direcciones.

  5. Después del mensaje de advertencia, Moodle nos dirigirá a la dirección que habrá que proporcionar a los alumnos y que, habitualmente, tiene la forma 192.168.1.XXX/moodle, donde XXX es un valor entre 2 y 254.

5.- Algunas consideraciones finales.


- Nos podemos encontrar con la situación en que, si el puesto en el que tenemos XAMPP con Moodle tiene IP dinámica, su IP cambie. Esto es fácil de detectar, porque de repente a los alumnos se les muestra un error. Para conocer la nueva dirección IP sólo habrá que visitar de nuevo localhost/moodle en el ordenador del profesor y comprobar cuál es la nueva IP.

- Podemos utilizar XAMPP como servidor web más allá de Moodle, como por ejemplo para distribuir ficheros rápidamente por una red local. Para esto, vendría bien borrar el contenido de la carpeta xampp/htdocs/xampp, ya que es lo que se le muestra a los visitantes si ponen únicamente la dirección IP en el navegador.

- No es recomendable utilizar XAMPP en un pendrive: la tasa de transferencia es muy baja, lo que puede llevar a un rendimiento muy pobre en las operaciones de disco, como por ejemplo cuando varios alumnos intentan subir archivos al mismo tiempo.

- En algunos discos duros externos, MySQL no funciona. Al hacer click sobre el botón Start junto a MySQL aparece un mensaje de error en color rojo en el cuadro de texto inferior:

InnoDB: Operating system error number 87 in a file operation.

La solución a este problema pasa por editar el archivo my.ini que está en la carpeta xampp/mysql/bin. En este fichero, hay que buscar la cadena innodb_lock_wait_timeout y, justo debajo de ella, añadir la siguiente línea:

innodb_flush_method=normal

Tras guardar el fichero, MySQL debería arrancar y funcionar después de hacer click sobre el botón Start en el control de XAMPP.

Fuente de esta solución: Foro de soporte de Apache Friends.

¡Como siempre, los comentarios son bienvenidos!

Comentarios

Publicar un comentario

Entradas populares de este blog

Ecco mormorar l'onde