Instalar Chamilo en una XO 1.0

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.

Picture of Chamilo 1.8.8.4 server on the OLPC's XO

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 Resolution

Dependencies 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 k

Transaction 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_networking

ahora 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:

Indigenas usando la XO

Comments