Revolucionando el modelo de distribución de contenido pedagógico en zonas rurales de paises en desarrollo…
Este artículo sigue mi previo artículo sobre la XO y un intento para instalar Chamilo como servidor, intento que falló por falta de RAM. El objetivo aquí es de permitir a otros, a partir de este procedimiento, de instalar por completo un servidor de Chamilo (a la excepción de la videoconferencia y del convertidor de PowerPoint en lecciones) para permitir su uso con otras XO en un salón de clase sin conectividad a internet.
La idea es que el aporte en salón de clase permita introducir una noción de e-learning colaborativo y a distancia en un pueblo, y la acumulación de recursos educativos (y su posible re-uso a partir de cursos elaborados por el ministerio de educación, descargables desde una cabina internet e instalables en una versión local de Chamilo). Faltan unos pasos todavía en este procedimiento general, pero en la medida de lo posible esta guía debería eliminar unas barreras comunes en el montaje de la plataforma.
El cambio de modelo de distribución de contenido pedagógico que este pequeño paso implica tiene un impacto posiblemente gigantesco para los 2 próximos años.
Paso 0: Conectarse a internet
Para todo lo que sigue, se supone que la XO estará conectada a internet por un buen tiempo. Si no tiene la posibilidad de mantenerla conectada, aguarde este procedimiento hasta tener esta oportunidad, sino podría tener que dejar el procedimiento en el medio, lo que podría dañar su sistema.
Paso 1: actualizar la XO (opcional)
Si tiene una XO que fecha un poco, vale la pena actualizarla. Se puede actualizar la XO a partir del sitio de OLPC, siguiendo el procedimiento explicado aquí: http://wiki.laptop.org/go/Olpc-update#Simple_online_update y en particular para la versión de Julio de 2011, el procedimiento exacto aquí: http://wiki.laptop.org/go/Release_notes/11.2.0#XO-1_2 . Se planifica una nueva versión para Noviembre 2011. A este momento, será necesario consultar la página siguiente: http://wiki.laptop.org/go/Releases para saber cual es la última versión.
En esta explicación, me basaré en un sistema de Julio 2011.
Paso 2: actualizar la base de aplicaciones disponibles para el sistema operativo
Una vez instalada la actualización, será necesario actualizar la base de aplicativos disponibles en total libertad para instalar en su XO. Para esto, usaremos un comando propio al sistema operativo (en base a Linux RedHat), pero primero tenemos que conectarnos como se debe.
En la laptop, presione simultáneamente las teclas CTRL + ALT + F3 (o el tercer botón a partir de arriba a la izquierda en el teclado, el que normalmente da la vista de redes inalámbricas disponibles alrededor). Esto les dará una vista terminal. Se puede regresar a la vista gráfica en cualquier momento presionando CTRL + ALT + F5 (o el quinto botón a partir de la izquierda). Si en cualquier momento se siente perdido, puede apagar la laptop para después reiniciarla, presionando y manteniendo el podón de encendido/apagado por más de 5 segundos.
Una vez en el terminal, lanzar los comandos siguientes:
-bash-3.2# su
bash-3.2#
Note la diferencia entre las dos líneas… cuando no haya un prefijo “-“, significa que está en modo administrador. Por lo tanto, puede hacer cosas peligrosas para el sistema. Para salir de este modo, simplemente entrar el comando “exit” seguido de la tecla “enter”. Siga bien las instrucciones siguientes para no hacer nada daniño para su XO.
bash-3.2# yum update
Aparecerán progresivamente unas líneas como sigue:
updates-newkey | 3.4 kB 00:00
8b20a393f4caa93598f1148bc171d320b45c1814-primary.sqlite. | 4.4 MB 04:26
fedora | 2.4 kB 00:00
primary.sqlite.bz2 | 6.1 MB 01:40
olpc_development | 1.9 kB 00:00
primary.sqlite.bz2 | 565 kB 00:11
olpc-joyride | 951 B 00:00
primary.xml.gz | 82 kB 00:03
olpc-joyride 325/325
updates | 2.6 kB 00:00
primary.sqlite.bz2 | 9.1 kB 00:00
Excluding Packages from Fedora 9 – i386 – Updates Newkey
Finished
Excluding Packages from Fedora 9 – i386
Finished
Excluding Packages from OLPC Development repo based off of Fedora 9
Finished
Excluding Packages from Fedora 9 – i386 – Updates
Finished
Setting up Update Process
Resolving Dependencies
–> Running transaction check
–> Processing Dependency: NetworkManager >= 0.6.5 for package: olpc-update
—> Package NetworkManager-glib.i386 1:0.7.1-1.fc9 set to be updated
–> Processing Dependency: NetworkManager = 1:0.7.1-1.fc9 for package: NetworkManager-glib
–> Finished Dependency Resolution
1:NetworkManager-glib-0.7.1-1.fc9.i386 from updates-newkey has depsolving problems
–> Missing Dependency: NetworkManager = 1:0.7.1-1.fc9 is needed by package 1:NetworkManager-glib-0.7.1-1.fc9.i386 (updates-newkey)
olpc-update-2.18-1.noarch from installed has depsolving problems
–> Missing Dependency: NetworkManager >= 0.6.5 is needed by package olpc-update-2.18-1.noarch (installed)
Error: Missing Dependency: NetworkManager = 1:0.7.1-1.fc9 is needed by package 1:NetworkManager-glib-0.7.1-1.fc9.i386 (updates-newkey)
Error: Missing Dependency: NetworkManager >= 0.6.5 is needed by package olpc-update-2.18-1.noarch (installed)
Dejelo acabar tránquilamente (puede tomar un cierto tiempo).
Paso 3: Instalar el software necesario
Una vez recupere la mano (línea con cursor cuadrado cintillando), entre los comandos siguientes:
bash-3.2# yum install nginx mysql-server mysql php php-mysql php-common php-gd php-mbstring
bash-3.2# yum install nginx mysql-server mysql php php-mysql php-common php-gd php-mbstring
Esto les dará un resultado largote como el siguiente, al fin del cual se les preguntará si están de acuerdo con descargar algo de 29M (les había dicho: es necesario tener una conexión internet por un rato). indicar que sí, presionando “y”.
Excluding Packages from Fedora 9 – i386 – Updates Newkey
Finished
Excluding Packages from Fedora 9 – i386
Finished
Excluding Packages from OLPC Development repo based off of Fedora 9
Finished
Excluding Packages from Fedora 9 – i386 – Updates
Finished
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
–> Running transaction check
—> Package mysql-server.i386 0:5.0.77-1.fc9 set to be updated
–> Processing Dependency: perl-DBD-MySQL for package: mysql-server
–> Processing Dependency: perl(POSIX) for package: mysql-server
–> Processing Dependency: libmysqlclient_r.so.15(libmysqlclient_15) for package: mysql-server
–> Processing Dependency: perl(warnings) for package: mysql-server
–> Processing Dependency: perl(Data::Dumper) for package: mysql-server
–> Processing Dependency: perl(strict) for package: mysql-server
–> Processing Dependency: perl(Sys::Hostname) for package: mysql-server
–> Processing Dependency: perl(File::Path) for package: mysql-server
–> Processing Dependency: libmysqlclient.so.15(libmysqlclient_15) for package: mysql-server
–> Processing Dependency: perl-DBI for package: mysql-server
–> Processing Dependency: perl(Getopt::Long) for package: mysql-server
–> Processing Dependency: perl(vars) for package: mysql-server
–> Processing Dependency: perl(File::Copy) for package: mysql-server
–> Processing Dependency: /usr/bin/perl for package: mysql-server
–> Processing Dependency: perl(File::Temp) for package: mysql-server
–> Processing Dependency: libmysqlclient.so.15 for package: mysql-server
–> Processing Dependency: perl(DBI) for package: mysql-server
–> Processing Dependency: perl(File::Basename) for package: mysql-server
–> Processing Dependency: libmysqlclient_r.so.15 for package: mysql-server
—> Package mysql.i386 0:5.0.77-1.fc9 set to be updated
—> Package nginx.i386 0:0.6.36-1.fc9 set to be updated
–> Processing Dependency: libperl.so for package: nginx
—> Package php-mysql.i386 0:5.2.9-2.fc9 set to be updated
–> Processing Dependency: php-pdo for package: php-mysql
—> Package php-common.i386 0:5.2.9-2.fc9 set to be updated
–> Running transaction check
—> Package perl.i386 4:5.10.0-68.fc9 set to be updated
–> Processing Dependency: perl(Module::Pluggable) for package: perl
–> Processing Dependency: perl(version) for package: perl
–> Processing Dependency: perl(Pod::Simple) for package: perl
—> Package perl-DBD-MySQL.i386 0:4.005-8.fc9 set to be updated
—> Package perl-libs.i386 4:5.10.0-68.fc9 set to be updated
—> Package php-pdo.i386 0:5.2.9-2.fc9 set to be updated
—> Package perl-DBI.i386 0:1.607-1.fc9 set to be updated
—> Package mysql-libs.i386 0:5.0.77-1.fc9 set to be updated
–> Running transaction check
—> Package perl-Pod-Simple.i386 1:3.07-68.fc9 set to be updated
–> Processing Dependency: perl(Pod::Escapes) >= 1.03 for package: perl-Pod-Simple
—> Package perl-Module-Pluggable.i386 1:3.60-68.fc9 set to be updated
—> Package perl-version.i386 3:0.74-68.fc9 set to be updated
–> Running transaction check
—> Package perl-Pod-Escapes.i386 1:1.04-68.fc9 set to be updated
–> Finished Dependency ResolutionDependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
mysql i386 5.0.77-1.fc9 updates-newkey 3.3 M
mysql-server i386 5.0.77-1.fc9 updates-newkey 9.8 M
nginx i386 0.6.36-1.fc9 updates-newkey 328 k
php-common i386 5.2.9-2.fc9 updates-newkey 238 k
php-mysql i386 5.2.9-2.fc9 updates-newkey 81 k
Installing for dependencies:
mysql-libs i386 5.0.77-1.fc9 updates-newkey 1.5 M
perl i386 4:5.10.0-68.fc9 updates-newkey 11 M
perl-DBD-MySQL i386 4.005-8.fc9 fedora 165 k
perl-DBI i386 1.607-1.fc9 updates-newkey 776 k
perl-Module-Pluggable i386 1:3.60-68.fc9 updates-newkey 29 k
perl-Pod-Escapes i386 1:1.04-68.fc9 updates-newkey 23 k
perl-Pod-Simple i386 1:3.07-68.fc9 updates-newkey 196 k
perl-libs i386 4:5.10.0-68.fc9 updates-newkey 904 k
perl-version i386 3:0.74-68.fc9 updates-newkey 33 k
php-pdo i386 5.2.9-2.fc9 updates-newkey 63 kTransaction Summary
================================================================================
Install 15 Package(s)
Update 0 Package(s)
Remove 0 Package(s)Total download size: 29 M
Is this ok [y/N]: y
Esto les dará ya otra pantalla de descarga como esta:
Downloading Packages:
(1/15): perl-Pod-Escapes-1.04-68.fc9.i386.rpm | 23 kB 00:03
(2/15): perl-Module-Pluggable-3.60-68.fc9.i386.rpm | 29 kB 00:02
(3/15): perl-version-0.74-68.fc9.i386.rpm | 33 kB 00:02
(4/15): php-pdo-5.2.9-2.fc9.i386.rpm | 63 kB 00:02
(5/15): php-mysql-5.2.9-2.fc9.i386.rpm | 81 kB 00:03
(6/15): perl-DBD-MySQL-4.005-8.fc9.i386.rpm | 165 kB 00:09
(7/15): perl-Pod-Simple-3.07-68.fc9.i386.rpm | 196 kB 00:30
(8/15): php-common-5.2.9-2.fc9.i386.rpm | 238 kB 00:52
Es probable que el sistema le pide confirmación varias veces. Es muy probable que no haya ningun riesgo mayor en validar esta pedidas de seguridad. En realidad, existe un riesgo pero es muy poco probable que alguien esté destinando algo malicioso para las XO, por lo tanto y por enfoque a la sencillez ante todo, ignoramos este paso.
Ahora queremos descargar Chamilo, pero no cualquier versión de Chamilo. Queremos una versión disminuida con solo los idiomas Inglés, Español, Francés, Brasilenio y Quechua. Por lo tanto podemos lanzar el comando siguiente:
wget http://chamilo.googlecode.com/files/chamilo-1.8.8.4-mini.tar.gz
Si la última versión de Chamilo es distinta de la 1.8.8.4, puede averiguar la URL correcta desde la lista de paquetes aquí: http://code.google.com/p/chamilo/downloads/list
Una vez todos estos elementos mencionados así como esta guía han sido descargados, ya puede desconectar la conección internet: no debería ser necesaria a partir de este punto.
Paso 4: Determinar el nombre de su portal
Para que sus alumnos luego puedan conectarse a Chamilo a través de la interconexión de las XO, necesitan tener un nombre específico al cual tendrán que apuntar sus navegadores (estamos viendo la posibilidad con Sebastián Silva de crear una “Aplicación Chamilo” que permita quitar este requerimiento, pero todavía no está).
Por lo tanto, tiene que decidir de un nombre parecido a una URL en el cual su Chamilo va a estar disponible. Recomendamos, si es que su institución tiene un nombre de dominio, de usar este. Por ejemplo, para un colegio imaginario “Las palomitas” que tendría como dominio “www.palomitas.edu.pe”, usaríamos “aula1.palomitas.edu.pe”. Por ahora no parece ser muy importante, pero si a futuro su portal se vuelve más usado, podría ser muy práctico haber pensado en algo así en el etapa de instalación.
Paso 5: Configurar la base de datos
MySQL es un sistema ligero si uno usa las mediciones comunes en sistemas, pero cuando se trata de instalarlo en una XO, suele ser una buena idea bajar sus requerimientos para que su uso de memoria no sea tan alto, porque la memoria en una XO 1.0 es realmente un recurso escaso.
Aquí debería aprender a usar VI para poder hacer un buen trabajo, pero tratemos de explicarlo en unos pasos simples:
bash-3.2# vi /etc/my.cnf
posicionar el cursos sobre la línea después de “old_passwords=1”
teclar la letra “i”
copiar las siguientes líneas hasta “skip networking”
query_cache_limit = 1M
query_cache_size = 4M
key_buffer = 1M
max_allowed_packet = 8M
thread_stack = 2K
thread_cache_size = 16
tmp_table_size = 2M
max_heap_table_size = 1M
sort_buffer_size = 2M
;The following two settings prevent MySQL from booting. Hence disabled.
;table_open_cache = 16
;table_definition_cache = 64
read_buffer_size = 128
max_connections = 64
key_buffer_size = 4M
skip-innodb
skip_networkingahora presionar succesivamente: “escape” (la tecla más arriba a la derecha), “:”, “wq”, “enter”.
Esto debería haberles devuelto al terminal
bash-3.2# /etc/init.d/mysql start
Ahora tenemos una base de datos MySQL funcionando. Es tiempo de definir nuestro portal de Chamilo.
Paso 6: Configurar el servidor web
Como hemos descargado Chamilo desde la carpeta actual, deberíamos ahora encontrarnos en /home/olpc/. Para verificarlo:
bash-3.2# pwd
Ahí debería tener la mini versión de Chamilo. Para verificarlo:
bash-3.2# ls
Esto debería darme una lista de ficheros. Uno de ellos se llama “chamilo-1.8.8.4-mini.tar.gz”. Es tiempo de descomprimirlo.
bash-3.2# tar zxf chamilo*
bash-3.2# mv chamilo-1.8.8.4-mini chamilo
bash-3.2# chmod -R 0777 chamilo
Si ya no va a necesitar el paquete de Chamilo para ninguna otra cosa, puede eliminarlo para recuperar el espacio usado.
bash-3.2# rm chamilo-1.8.8.4-mini.tar.gz
Ahora tenemos una carpeta que se llama “chamilo”, y se encuentra en /home/olpc/. Por lo tanto, sabemos (porque lo necesitaremos ahora) que la instalación de Chamilo se encuentra en /home/olpc/chamilo/.
Ahora pasemos a la configuración de nginx, nuestro servidor web. Esto se hace en dos pasos: (1) asegurar que el servidor web funcione con páginas HTML simples, y (2) hacerlo funcionar con el lenguaje PHP que permite a Chamilo funcionar.
bash-3.2# vi /etc/nginx/conf.d/virtual.conf
ponga lo siguiente, como contenido del ficher (puede insertarlo después de las 3 primeras líneas de comentario poniendo el curso en la 4ta línea y presionando “i”. Use el nombre de su colegio en lugar de “palomitas” en la línea que dice “server_name”.
server {
listen 80;
server_name localhost aula1.palomitas.edu.pe;
root /home/olpc/chamilo/;
index index.php index.html;
location / {
client_max_body_size 20M;
}
location ~ .php$ {
include /etc/nginx/fastcgi_params;
expires 5m;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/olpc/chamilo$fastcgi_script_name;
}
}ahora presionar succesivamente: “escape” (la tecla más arriba a la derecha), “:”, “wq”, “enter”.
En la línea de comando, entrar:
bash-3.2# /etc/init.d/nginx start
para iniciar al servidor web.
Desde ahora debería poder ver una página de Chamilo desde la aplicación de navegador de su XO. Presione CTRL + ALT + F5 (la quinta tecla arriba del teclado) para regresar en modo visual. Ahí, vaya a su aplicación de navegador (browser) e indique la URL siguiente: http://localhost/documentation/index.html. Debería ver la página de inicio de la documentación de instalación y versiones de Chamilo. Todo conforme? Pase al etapa siguiente…
Presione CTRL + ALT + F3 para regresar al modo terminal, donde lo habíamos dejado.
bash-3.# php-cgi -b 127.0.0.1:9000 -c /etc/php.ini &
Este método de inicio de php no es muy elegante, porque no sobrevivirá una alta carga ni un re-inicio de la máquina, pero hasta mejorar el proceso, será suficiente. Esta última línea tendrá que ser lanzada a cada vez que reinicie su XO, o si el servidor responde “Bad gateway” en algún momento.
Finalmente, y para simplificar todo lo que sigue, edita el fichero /etc/hosts y defina ahí el nombre que usará para su portal:
bash-3.2# vi /etc/hosts
añadir la línea siguiente cambiando el nombre por el que usará
127.0.0.1 aula1.palomitas.edu.pe
salga guardando (“escape” + “:wq” + “enter”)
Ya está para la infraestructura del sistema. Ahora pasemos a instalar Chamilo.
Paso 7: Instalar Chamilo
En los pasos anteriores, se tomó un atajo de simplificación: usaremos el usuario de base de datos “root”. Es fácil cambiar esto antes de instalar Chamilo, pero no *tan* fácil como para detallarlo aquí en unas líneas.
Regrese a la pantalla gráfica con CTRL + ALT + F5. En el navegador, entre: http://aula1.palomitas.edu.pe/ y Enter
Debería aparecer la página del instalador de Chamilo. Básicamente tiene que validar todo y seguir las instrucciones. Las únicas cosas que debe modificar (frente a lo propuesto por defecto en el paso 5 de 6) son:
- cambiar la dirección del portal (probablemente esté proponiendo http://localhost/, pongale http://aula1.palomitas.edu.pe/ o lo que corresponde para usted)
- cambiar la contraseña (pongale algo más fácil de recordar y más personal)
- cambiar la opción “Permitir que los propios usuarios puedan registrarse como creadores de cursos” a “No”
Todo lo demás solo tiene que leer y dar clic en “siguiente”.
Paso 8: Aprovechar
Desde ahora en adelante, el único paso que se tiene que repetir para iniciar el portal son los 2 comandos siguiente en el terminal:
bash-3.2# su
bash-3.2# php-cgi -b 127.0.0.1:9000 -c /etc/php.ini &
Para que sus alumnos puedan aprovechar del portal, tendrá (hasta que desarrollemos una “aplicación Chamilo”) que configurar cada una de las XO para que vinculen el nombre aula1.palomitas.edu.pe con su dirección IP. Para esto, tendrá que identificar su propia dirección en un terminal con el comando /sbin/ifconfig, y de ahí extraer la primera dirección de la línea “inet addr” en la sección “eth0”. Si su dirección es 10.42.43.81, tendrá que añadir la siguiente línea en la XO de los niños:
10.42.43.81 aula1.palominas.edu.pe
De ahí, solo necesitarán cargar http://aula1.palominas.edu.pe en su navegador para poder acceder al aula virtual.
Este artículo será continuado… para que podamos llegar algun día a esto pero con el aporte adicional de un Chamilo con recursos del ministerio de educación respectivo:
Comments
Gracias por el post…
Gracias por el post. Intentaré instalar chamilo en la OLPC