Sistemas y servicios informáticos para Internet. Curso 2010-2011

Capítulo 1. Instalación y configuración

Tabla de contenidos

1.1. Introducción
1.2. Creación de la máquina virtual
1.3. Instalación del sistema operativo
1.4. Instalación de Moodle
1.4.1. Carga del idioma correcto

1.1. Introducción

Moodle es un gestor de contenidos libre especialmente indicado para la enseñanza. Típicamente, a un gestor de contenidos, del inglés Content Management System (CMS), adaptado a la tele-enseñanza se le conoce como gestor de aprendizaje o Learning Management System (LMS).

Moodle se distribuye con licencia GNU y está disponible para un conjunto de plataformas. Tanto sus binarios como su código fuente pueden ser descargados desde su página oficial.

En esta primera práctica instalaremos Moodle y todos los paquetes necesarios en una máquina corriendo Linux. Aunque también es posible la instalación en Windows, la instalación resultará más cómoda en una máquina LAMPP (Linux + Apache + MySQL + PHP + Perl).

Dividiremos esta práctica en dos partes: una en la que trabajaremos sobre una máquina virtual y la otra en la que trabajaremos sobre una máquina física. Inicialmente, realizaremos la instalación del sistema operativo y todos los paquetes necesarios sobre una máquina virtual. Para ello, utilizaremos VirtualBox como software de virtualización para crear una máquina virtual en la que ilustrar el proceso de instalación.

Posteriormente, una vez que hemos instalado el sistema operativo, la configuración propia de Moodle se realizará sobre una máquina real donde se han instalado los mismos paquetes instalados en la máquina virtual. De esta forma, todos tendremos nuestro servidor de Moodle corriendo. La máquina sobre la que trabajaremos es tecgrid05.epv.uniovi.es.

1.2. Creación de la máquina virtual

Arranca el programa VirtualBox que podrás encontrar a partir del menú inicio. Una vez arrancado, debes crear una máquina virtual para instalar el sistema operativo. Configura la máquina virtual de acuerdo a una serie de parámetros.

  • Sitema operativo: Ubuntu Linux.
  • Tamaño de memoria: 1 Gbyte.
  • Disco duro virtual: 8 Gbytes con expansión dinámica y de nombre Moodle Server Hard Disk. El profesor te indicará dónde crear este disco virtual.

Tras la creación de la máquina virtual, se nos mostrará una ventana tal como la siguiente:

Una vez que la máquina virtual esté lista, antes de arrancarla debemos hacer dos cosas: modificar la configuración de la CPU y montar el CD-ROM o la imagen ISO donde está el instalador del sistema operativo. La configuración de la CPU debe ser la indicada en la figura siguiente:

Atención

Fíjate en el bit PAE/NX, debe estar habilitado. Esto es así porque vamos a instalar una versión de Ubuntu para servidores.

1.3. Instalación del sistema operativo

Para evitar tener que descargar la imagen, el profesor te proporcionará una imagen ISO a partir de la que instalar el sistema operativo. En concreto, instalaremos la versión 8.04 de Ubuntu Server, que es la versión instalada en tecgrid05.epv.uniovi.es. Hay que indicarle al software de virtualización que monte dicha imagen para que sea visible a nuestra máquina virtual. Para ello, accede a las opciones de configuración de la máquina virtual y configura el CD-ROM tal como aparece en la siguiente figura:

Ahora ya podemos arrancar la máquina virtual.

Nota

Recuerda que la ventana donde se ejecuta la máquina virtual captura los movimientos del ratón y las pulsaciones del teclado. Si quieres que el foco pase a otra ventana del sistema operativo anfitrión debes pulsar el botón de CRTL derecho.

Al arrancar la máquina se lanzará el menú del CD-ROM de Ubuntu. Selecciona la opción de instalar el sistema operativo en el disco duro local para arrancar el asistente. Durante la instalación elegiremos las opciones apropiadas del instalador de Ubuntu.

Nombre de la máquina

Es el nombre de red de la máquina. Aunque no tiene por qué coincidir, en nuestro caso le asignaremos el mismo nombre que tenga la máquina en el sistema operativo anfitrión.

Nota

Se puede consultar el nombre de la máquina en Windows a través del comando ipconfig /all.

Método de particionado

Indica cómo se organiza el disco en particiones. Elige la opción Guiado - utilizar todo el disco y acepta los cambios que te proponga el asistente.

Nota

No te preocupes. Estamos particionando el disco virtual.
Nombre completo para el nuevo usuario

Pon tu nombre completo.

Nombre de usuario para la cuenta

El nombre de usuario será usuario.

Atención

Todos debemos utilizar las mismas credenciales.
Contraseña para el nuevo usuario

La contraseña debe ser practicas

Atención

Todos debemos utilizar las mismas credenciales.
Información del proxy HTTP

Proxy HTTP a utilizar para acceder a Internet. El proxy debe ser http://proxy.uniovi.es:8888.

Falta especificar el software que se instalará junto con el sistema operativo. En nuestro caso basta con instalar el servidor web Apache, la base de datos MySQL y el intérprete de PHP. Para ello elige las opciones mostradas en la siguiente figura:

Por último, cuando el instalador te solicite por pantalla la contraseña del usuario root de MySQL, especifica como contraseña root.

Ya tenemos listo el servidor sobre el que instalar Moodle. Arranca la máquina y entra en sesión especificando las credenciales (usuario, prácticas).

Especifica el proxy que se va a utilizar por línea de comandos:

$> export http_proxy=http://proxy.uniovi.es:8888

Ahora instalaremos unas librerías de extensión de PHP que Moodle necesita:

$> sudo apt-get install php5-gd php5-xmlrpc php5-curl

Por último, instalaremos un servidor FTP para subir ficheros al servidor, dado que Moodle da problemas a la hora de subir ficheros grandes al servidor.

$> sudo apt-get install vsftpd

Configura el servidor de FTP para que acepte conexiones de cuentas locales, que impida el acceso anónimo y que permita la escritura asignando los permisos adecuados:

$> sudo editor /etc/vsftpd.conf
# Example config file /etc/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
#
#
# Run standalone?  vsftpd can run either from an inetd or as a standalone
# daemon started from an initscript.
listen=YES
#
# Run standalone with IPv6?
# Like the listen parameter, except vsftpd will listen on an IPv6 socket
# instead of an IPv4 one. This parameter and the listen parameter are mutually
# exclusive.
#listen_ipv6=YES
#
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
#anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
#anon_mkdir_write_enable=YES
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES
#
# Activate logging of uploads/downloads.
xferlog_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
# You may override where the log file goes if you like. The default is shown
# below.
#xferlog_file=/var/log/vsftpd.log
#
# If you want, you can have your log file in standard ftpd xferlog format
#xferlog_std_format=YES
#
# You may change the default value for timing out an idle session.
#idle_session_timeout=600
#
# You may change the default value for timing out a data connection.
#data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that on some FTP servers, ASCII support allows a denial of service
# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
# predicted this attack and has always been safe, reporting the size of the
# raw file.
# ASCII mangling is a horrible feature of the protocol.
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# You may fully customise the login banner string:
#ftpd_banner=Welcome to blah FTP service.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd.banned_emails
#
# You may restrict local users to their home directories.  See the FAQ for
# the possible risks in this before using chroot_local_user or
# chroot_list_enable below.
#chroot_local_user=YES
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
#ls_recurse_enable=YES
#
#
# Debian customization
#
# Some of vsftpd's settings don't fit the Debian filesystem layout by
# default.  These settings are more Debian-friendly.
#
# This option should be the name of a directory which is empty.  Also, the
# directory should not be writable by the ftp user. This directory is used
# as a secure chroot() jail at times vsftpd does not require filesystem
# access.
secure_chroot_dir=/var/run/vsftpd
#
# This string is the name of the PAM service vsftpd will use.
pam_service_name=vsftpd
#
# This option specifies the location of the RSA certificate to use for SSL
# encrypted connections.
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
# This option specifies the location of the RSA key to use for SSL
# encrypted connections.
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

Reinicia el servidor FTP:

$> sudo /etc/init.d/vsftpd restart

A partir de aquí, podríamos continuar la instalación de Moodle en la máquina virtual siguiendo los pasos indicados en el siguiente apartado. Sin embargo, utilizaremos una máquina real para que nuestro servidor de Moodle esté siempre accesible y corriendo. Así que cierra la máquina virtual:

$> sudo halt

1.4. Instalación de Moodle

Antes de empezar hay que conectarse a tecgrid05.epv.uniovi.es, la máquina donde cada uno instalaremos un servidor de Moodle personal. La conexión debe ser ssh, por lo que es necesario utilizar un cliente que soporte este protocolo. Se recomienda utilizar el cliente PuTTY.

Atención

El profesor te proporcionará las credenciales.

Una vez que iniciamos sesión en tecgrid05.epv.uniovi.es, la forma de instalar Moodle es muy sencilla, dado que la mayor parte de los componentes (Apache y MySQL) ya los tenemos instalados (son los mismos que instalamos sobre la máquina virtual).

En primer lugar, descargamos Moodle de la página web:

$> wget http://download.moodle.org/download.php/direct/stable19/moodle-weekly-19.tgz

Podemos comprobar que el fichero se ha descargado correctamente:

$> ls
moodle-weekly-19.tgz

Nota

En realidad habría que utilizar alguna comprobación algo más elaborada como la suma MD5.

Descomprimimos el fichero:

$> tar xf moodle-weekly-19.tgz

Lo que creará un nuevo directorio donde se encontrarán los ficheros de Moodle:

$> ls -la
total 13672
drwxr-xr-x  3 jcgranda jcgranda     4096 2010-03-25 18:05 .
drwxr-xr-x  8 jcgranda jcgranda     4096 2010-03-25 17:51 ..
drwxr-xr-x 34 jcgranda jcgranda     4096 2010-03-24 01:43 moodle
-rw-r--r--  1 jcgranda jcgranda 13964949 2010-03-24 01:44 moodle-weekly-19.tgz

Podemos hacer un listado para ver qué ficheros contiene la instalación de Moodle:

$> ls moodle
admin            course    help.php     manifest.txt  README.txt  user
auth             enrol     index.php    message       rss         userpix
backup           error     install      mnet          search      version.php
blocks           file.php  install.php  mod           sso
blog             files     iplookup     my            tag
calendar         filter    lang         notes         tags
config-dist.php  grade     lib          pix           tags.txt
COPYING.txt      group     login        question      theme

A continuación, movemos el contenido del directorio moodle al raíz del servidor web, donde existirá un directorio con el mismo nombre que nuestro login. Por ejemplo, si te conectas a la máquina utilizando usuario como login, deberás especificar el siguiente comando:

$> mv moodle/* /var/www/usuario

Nota

Habitualmente, se movería el contenido de este directorio al raíz del servidor web. Sin embargo, de esta forma podemos tener varios Moodle instalados en la misma máquina. Puedes recordar tu login utilizando el comando whoami.

Cambia los permisos de los ficheros que acabas de copiar para que Apache tenga permiso para modificarlos:

$> chmod -R o+w /var/www/usuario/*

Ahora es necesario crear la base de datos que utilizará Moodle para almacenar sus datos internos tales como la información de los usuarios, los cursos, las tareas de cada curso, etc. Para ello debemos utilizar la herramienta de gestión de MySQL. También podríamos dejar que sea Moodle quien la cree durante la instalación, pero lo haremos manualmente para ilustrar todo el proceso.

En primer lugar, nos conectamos a la consola de administración de MySQL:

$> mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 17
Server version: 5.0.51a-3ubuntu5.1 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> 

Nota

Recuerda que la contraseña del usuario root de MySQL es root.

A continuación, crea la base de datos. Dale un nombre que permita relacionarla con tu nombre de usuario:

mysql> create database moodle_usuario;      
Query OK, 1 row affected (0.01 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| moodle_usuario     |
| mysql              |
+--------------------+
3 rows in set (0.00 sec)

mysql> quit;
Bye

A partir de este momento, utilizaremos la interfaz de Moodle para configurar la plataforma. Para ello, abre el navegador y escribe la dirección la siguiente URL en la barra de direcciones http://tecgrid05.epv.uniovi.es/usuario/index.php. Fíjate que la dirección depende de tu nombre de usuario. Esto te llevará a la página de instalación de tu Moodle. La página inicialmente te permitirá elegir el idioma de la instalación.

Seleccionamos el idoma apropiado y pulsamos siguiente. Nos aparecerá una ventana de comprobación de requisitos. Que debería informarnos de que todos los requisitos se cumplen.

Tras pulsar el botón Siguiente nos aparece la ventana de configuración del sitio web y los datos de Moodle. Dependiendo de nuestro nombre de usuario, las opciones de configuración a especificar son las siguientes:

La siguiente pantalla nos permite configurar la base de datos que utilizará Moodle durante su funcionamiento para almacenar toda su información. Fíjate que esta base de datos es la que acabas de crear. Recuerda también especificarle las credenciales necesarias para acceder a MySQL (root, root).

Nota

En un entorno de producción no es recomendable utilizar la cuenta de root para que Moodle acceda a la base de datos. Sería más recomendable una cuenta con menores privilegios.

La pulsación del botón Siguiente supone la creación de todos los datos que Moodle necesita, por lo que es posible que tarde unos segundos. Tras esto, aparece una ventana donde se te muestra el resultado de unas comprobaciones en el servidor. Debería estar todo correcto. Pulsamos Siguiente.

La siguiente pantalla nos permite descargar el paquete de idioma Español. Asegúrate de que el idioma es el correcto y pulsa Descargar el paquete de idioma "Español - España (es_es)". Pulsa Siguiente:

Tras esto, nos aparecerá una ventana indicando que la instalación ha finalizado. Dale al botón Continuar para acceder por primera vez a Moodle. Te aparecerá la página de aceptación de la licencia. Acepta las condiciones.

A continuación te aparece una ventana en la que debes pulsar Continue. Tras pulsar el botón, se lanzan una serie de scripts que cargan información en la base de datos de Moodle. Dale al botón Continue reiteradamente hasta que aparezca una ventana como la siguiente:

Debes prestarle especial atención a esta página, pues te permite crear la cuenta de administrador. Como puedes observar, los campos que debes cubrir obligatoriamente están en rojo y tienen un asterisco al lado. Lee con detenimiento la información que se te ofrece en pantalla. En cualquier caso, Moodle proporciona gran cantidad de ayuda contextual a través del icono .

Nota

No te desesperes. Moodle es muy "tikismikis" con las contraseñas.

Tras rellenar el formulario del administrador aparecerá otro formulario (mostrado en la figura justo debajo) donde podemos configurar la información que aparecerá en la página principal del servidor. Esta información comprende aspectos tales como el nombre del sitio (por ejemplo una universidad) y una breve descripción del sitio. Rellena los campos según estimes oportuno:

Una vez que confirmes los nuevos datos, te aparecerá la ventana principal de Moodle, que deberá tener un aspecto al de la figura siguiente:

Atención

Es posible que el idioma no se te haya cargado correctamente y estés visualizando la página en inglés, o incluso en una mezcla de español e inglés. Si es así, sigues los pasos que vienen a continuación. Si el idioma se te ha cargado correctamente no tienes que hacer nada más en la instalación de Moodle.

1.4.1. Carga del idioma correcto

Vamos a descargar el idioma correspondiente al español de España. Para ello sitúate en el directorio /var/www/usuario/lang (dependiendo de tu nombre de usuario) y descarga los paquetes de idioma correspondiente al español de España y a la versión internacional del español:

$> cd /var/www/usuario/lang
$> wget http://download.moodle.org/lang16/es_es_utf8.zip
--21:29:57--  http://download.moodle.org/lang16/es_es_utf8.zip
=> `es_es_utf8.zip'
Resolving proxy.uniovi.es... 156.35.14.6
Connecting to proxy.uniovi.es|156.35.14.6|:8888... connected.
Proxy request sent, awaiting response... 200 OK
Length: 54,382 (53K) [application/zip]

100%[===================================================================>] 54,382        --.--K/s

21:29:57 (2.98 MB/s) - `es_es_utf8.zip' saved [54382/54382]

$> wget http://download.moodle.org/lang16/es_utf8.zip
--21:30:37--  http://download.moodle.org/lang16/es_utf8.zip
=> `es_utf8.zip'
Resolving proxy.uniovi.es... 156.35.14.6
Connecting to proxy.uniovi.es|156.35.14.6|:8888... connected.
Proxy request sent, awaiting response... 200 OK
Length: 863,338 (843K) [application/zip]

100%[===================================================================>] 863,338       --.--K/s

21:30:37 (10.61 MB/s) - `es_utf8.zip' saved [863338/863338]

Descomprime los ficheros descargados:

$> unzip es_es_utf8.zip
$> unzip es_utf8.zip