## Instalación de Moodle

Esta guía explica cómo instalar Moodle por primera vez. Ahonda en detalles de algunos de los pasos, con la finalidad de cubrir una amplia variedad de pequeñas diferencias entre las opciones de los diversos servidores web, de manera que este documento puede parecer largo y complicado. No se desanime por esto, ¡normalmente yo instalo Moodle en unos pocos minutos!

Tómese su tiempo y lea este documento cuidadosamente, esto le ahorrará tiempo después.

Secciones de este documento:

1. Requisitos
2. Descarga
3. Estructura del sitio
4. Crear un directorio de datos
5. Crear una base de datos
6. Revisar las opciones del servidor web
7. Editar el archivo config.php
8. Ir a la página de administración
9. Configurar el cron
10. Crear un nuevo curso

### 1. Requisitos

Moodle está desarrollado principalmente en Linux usando Apache, MySQL y PHP (la también denominada plataforma LAMP), aunque es revisado regularmente con PostgreSQL y en en los sistemas operativos Windows XP y Mac OS X y Netware 6.

Los requisitos de Moodle son:

1. Un servidor web. La mayoría de la gente usa Apache, pero Moodle debe funcionar bien en cualquier servidor web que soporte PHP, como el IIS de las plataformas Windows.
2. Una instalación de PHP que esté funcionando (versión 4.1.0 o posterior), con las siguientes características:
   - GD library activada, con soporte para los formatos JPG y PNG.
   - Librería Zlib activada (si desea usar la copia de seguridad y la restauración en Windows)
   - Soporte para sesiones (sessions) activado.
   - Habilitada la posibilidad de enviar (upload) archivos.
   - Modo seguro (Safe Mode) desactivado (consulte los foros en moodle.org para ver problemas causados por el "Safe Mode").
3. Una base de datos funcionando: Se recomiendan MySQL o PostgreSQL , que están completamente soportadas en Moodle 1.1. El resto de las bases de datos serán soportadas en la próxima versión.

La mayoría de los servicios de alojamiento web (hosting) soportan todo esto por defecto. Si ha contratado los servicios de alguno de los pocos servicios de alojamiento web que no soportan estas características pregúnteles por qué, y considere la posibilidad de trasladar su sistema a otra empresa.

Si quiere instalar Moodle en su propio ordenador y todo esto le parece un poco complicado, entonces vea nuestra guía para Instalar Apache, MySQL y PHP. Le proporcionará instrucciones paso a paso para instalar todo ésto en las plataformas más utilizadas.

### 2. Descarga

Existen dos formas de obtener Moodle, como un paquete comprimido y a través de CVS. Esto se explica con detalle en la página de descarga en http://moodle.org/download/

Tras descargar y descomprimir el archivo, o revisar los archivos vía CVS, tendrá un directorio llamado "moodle", que contiene varios archivos y carpetas.

Puede tanto colocar la carpeta completa en su directorio de documentos de su servidor web, en cuyo caso el sitio estará localizado en http://suservidor.com/moodle, como copiar todos los contenidos directamente en el directorio principal de documentos del servidor web, en cuyo caso el sitio será simplemente http://suservidor.com.

### 3. Estructura del sitio

A continuación hay un breve resumen de los contenidos del directorio Moodle, para ayudarle a orientarse:

config.php - El ÚNICO archivo que necesita editar para empezar a trabajar
version.php - Define la versión actual del código de Moodle
index.php - La página principal del sitio

- admin/ - Código para administrar todo el servidor.
- auth/ - Módulos para la autenticación de usuarios.
- course/ - Código para presentar y gestionar los cursos.
- doc/ - Documentación de ayuda de Moodle. (Por ejemplo esta página).
- files/ - Código para presentar y gestionar los archivos cargados.
- lang/ - Textos en diferentes idiomas, un directorio por idioma.
- lib/ - Librerías del código fundamental de Moodle.
- login/ - Código para manejar las entradas y creación de cuentas.
- mod/ - Todos los módulos de los cursos de Moodle.
- pix/ - Gráficos genéricos del sitio.
- theme/ - Paquetes de temas/pieles para cambiar la apariencia del sitio.
- user/ - Código para mostrar y gestionar los usuarios.

### 4. Crear un directorio de datos

Moodle también necesita algo de espacio en su disco duro para almacenar los archivos que vayan a ser cargados, tales como la documentación de los cursos y las fotos de los usuarios.

Crée un directorio para esto en cualquier parte. Por seguridad, es mejor que este directorio NO sea accesible direcamente desde la web. La manera más sencilla de conseguir esto es simplemente colocarlo FUERA del directorio web, en caso contrario protéjalo creando un archivo en el directorio de datos llamado .htaccess, conteniendo la siguiente línea:

>     deny from all

Para asegurarse de que Moodle puede guardar los archivos subidos, en ese directorio, revise que el servidor web (por ejemplo Apache) tiene permiso de escritura en ese directorio. En las máquinas Unix, esto significa establecer que el dueño del directorio sea algo como "nobody" o "apache".

En muchos servidores de alojamiento compartido, probablemente usted tendrá que restringir todo acceso a los archivos de su "grupo" (para evitar que los clientes de otros sitios web alojados allí vean o cambien sus archivos), pero proporcione pleno acceso de lectura/escritura a cualquiera (lo que permitirá que el servidor web acceda a sus archivos). Hable con el administrador de su servidor si tiene algún problema al establecer esto de forma segura.

### 5. Crear una base de datos

Tendrá que crear una base de datos vacía (por ejemplo "moodle") en su sistema de base de datos, junto con un usuario especial (por ejemplo "moodleuser") que tenga acceso a esa base de datos (y sólo a esa base de datos). Si quisiera podría usar el usuario "root", pero esto no es recomendable en un sistema de producción: si los hackers (crackers realmente) descubren la contraseña todo su sistema de base de datos estaría en peligro, en vez de sólo una base de datos.

Ejemplo de líneas de comando para MySQL:

       # mysql -u root -p
       > CREATE DATABASE moodle;
       > GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER ON moodle.*
               TO moodleuser@localhost IDENTIFIED BY 'yourpassword';
       > quit
       # mysqladmin -p reload

Ejemplo de líneas de comando para PostgreSQL:

       # su - postgres
       > psql -c "create user moodleuser createdb;" template1
       > psql -c "create database moodle;" -U moodleuser template1
       > psql -c "alter user moodleuser nocreatedb;" template1

(Para MySQL yo recomiendo vivamente el uso de phpMyAdmin para manejar sus bases de datos. Puede hacer todo ésto mediante una interfaz web.

Desde la versión 1.0.8, Moodle soporta prefijos en las tablas, de manera que puede compartir de forma segura una base de datos con tablas desde otras aplicaciones.

### 6. Revisar las opciones de su servidor web

En primer lugar, asegúrese de que su servidor web está preparado para usar index.php como página por defecto (quizás además de index.html, default.htm y otras).

En Apache, esto se logra usando un parámetro DirectoryIndex en su archivo httpd.conf. El mío normalmente aparece como sigue:

>     DirectoryIndex index.php index.html index.htm

Tan sólo asegúrese de que index.php está en la lista (y preferiblemente al principio de la lista, por una cuestión de eficacia).

En segundo lugar, si usted está usando Apache 2, entonces debe activar la variable AcceptPathInfo, la cual permite a los scripts que sean pasados por argumentos como http://server/file.php/arg1/arg2. Esto es esencial para permitir que existan enlaces relativos entre sus recursos, y también proporciona un rendimiento mejorado para las personas que usan su sitio Moodle. Puede activar esto añadiendo estas líneas a su archivo httpd.conf.

>     AcceptPathInfo on

En tercer lugar, Moodle requiere que PHP tenga activadas una serie de opciones para funcionar. En la mayoría de los servidores éstas ya están activadas. Sin embargo, algunos servidores PHP (y algunas de las más recientes versiones de PHP) pueden estar configurados de forma diferente. Estas están definidas en el archivo de configuración de PHP (normalmente llamado php.ini):

>     magic_quotes_gpc = On    (preferible, pero no es necesario)
>     magic_quotes_runtime = Off    (necesario)
>     file_uploads = On
>     session.auto_start = Off
>     session.bug_compat_warn = Off

Si usted no tiene acceso en su servidor a httpd.conf o php.ini, o tiene Moodle en un servidor con otras aplicaciones que requieren una configuración diferente, entonces usted puede ANULAR todas las opciones por defecto.

Para hacer esto, necesita crear un archivo llamado .htaccess en el directorio principal de Moodle que contiene definiciones para estas opciones. Esto sólo funciona para servidores Apache y solo cuando están permitidas las anulaciones (overrides).

>     DirectoryIndex index.php index.html index.htm
>     <IfDefine APACHE2>
>          AcceptPathInfo on
>     </IfDefine>

>     php_flag magic_quotes_gpc On
>     php_flag magic_quotes_runtime Off
>     php_flag file_uploads On
>     php_flag session.auto_start Off
>     php_flag session.bug_compat_warn Off

También puede usted definir cosas como el tamaño máximo de los archivos que podrán enviarse:

>     LimitRequestBody 0
>     php_value upload_max_filesize 2M
>     php_value post_max_size 2M

La forma más sencilla de hacerlo es copiar el archivo de ejemplo que hay en lib/htaccess y editarlo de acuerdo con sus necesidades. Ese archivo contiene más instrucciones. Por ejemplo, en Unix:

>     cp lib/htaccess .htaccess

### 7. Editar config.php

Ahora usted puede editar el archivo de configuración, config.php, usando un editor de textos. Este archivo es usado por todos los otros archivos en Moodle.

Para comenzar, haga una copia de config-dist.php y llámelo config.php. Hacemos esto para que su config.php no pueda ser sobrescrito en caso de que actualice Moodle posteriormente.

Edite config.php para especificar los detalles de al base de datos que acaba de definir (incluyendo un prefijo de tabla - tenga en cuenta que esto lo EXIGE PostgreSQL), así como la dirección del sitio, el directorio archivos de sistema y el directorio de datos. El mismo archivo contiene instrucciones detalladas y ejemplos.

Después de haber hecho esto, el resto de la instalación es mediante una interfaz web. Para el resto de este documento de instalación vamos a asumir que su sitio está en: http://ejemplo.com/moodle

### 8. Ir a la página de administración

La página de administración debe estar ahora funcionando en: http://ejemplo.com/moodle/admin. Si intenta acceder a la página principal de su sitio se encontrará automáticamente en ella de todas maneras. La primera vez que acceda a la página de administración, se le presentará la licencia GPL que necesariamente tendrá que aceptar para poder continuar con la configuración.

(Moodle también intentará poner algunas cookies en su navegador. Si tiene configurado su navegador para avisarle antes de aceptar las cookies, entonces debe aceptar las cookies de Moodle, o Moodle no podrá funcionar de forma apropiada.)

Ahora Moodle empezará a preparar su base de datos y a crear tablas para almacenar los datos. En primer lugar, se crean las tablas principales de la base de datos. Verá una serie de sentencias SQL seguidas de mensajes de estado (en color verde o rojo) parecidos a estos:

> CREATE TABLE course ( id int(10) unsigned NOT NULL auto_increment, category int(10) unsigned NOT NULL default '0', password varchar(50) NOT NULL default '', fullname varchar(254) NOT NULL default '', shortname varchar(15) NOT NULL default '', summary text NOT NULL, format tinyint(4) NOT NULL default '1', teacher varchar(100) NOT NULL default 'Teacher', startdate int(10) unsigned NOT NULL default '0', enddate int(10) unsigned NOT NULL default '0', timemodified int(10) unsigned NOT NULL default '0', PRIMARY KEY (id)) TYPE=MyISAM

> SUCCESS

> ...y cosas así, seguidas de: Main databases set up successfully.

Si usted no ve esto, quiere decir que hay algún problema con la base de datos o las opciones de configuración que ha definido en config.php. Revise que PHP no esté restringido por un "safe mode" (a menudo los alojamientos web comerciales tienen establecido el modo seguro). Puede revisar las variables PHP creando un pequeño archivo que contenga <? phpinfo() ?> y mirándolo con un navegador. Revise todo esto e intente entrar en la página de nuevo.

Desplácese a la parte de abajo de la página y presione el enlace "Continuar".

A continuación verá una página similar que establece todos las tablas requeridas por cada módulo de Moodle. Como antes, todas deben aparecer en verde.

Desplácese nuevamente a la parte de abajo de la página y seleccione el enlace "Continuar".

Ahora usted debe ver un formulario en el que puede definir más variables de configuración para su instalación, tales como el idioma por defecto, el servidor SMTP y cosas por el estilo. No se preocupe demasiado de tener todo correcto ahora, siempre podrá volver y editar esto más adelante usando la interfaz de administración. Desplácese a la parte de abajo de la página y seleccione el enlace "Guardar cambios".

Si (y sólo si) usted se encuentra atascado en esta página o en la siguiente, incapaz de continuar, entonces su servidor probablemente tiene lo que yo llamo el problema del la referencia defectuosa ("buggy referrer"). Esto es fácil de arreglar: sólo tiene que desactivar la opción "secureforms" del formulario, luego intente de nuevo entrar en la página.

La siguiente página es un formulario en el que usted puede definir parámetros para su sitio Moodle y la página principal, tales como el nombre, formato, descripción y ese tipo de cosas. Rellénelo (siempre podrá volver y cambiar esto después) y luego haga clic en "Guardar cambios".

Finalmente, se le pedirá que crée un usuario administrador de máximo nivel para el futuro acceso a la página de administración. Rellene los detalles con su propio nombre, dirección de correo electrónico, etc.; y haga clic en "Guardar cambios". No todos los campos son obligatorios, pero si olvida rellenar un campo importante se le avisará.

Asegúrese de recordar el nombre de usuario y contraseña que ha elegido para la cuenta de la administración, ya que serán necesarias para acceder a la página de administración en el futuro.

(Si por alguna razón se interrumpe su instalación, o hay un error del sistema de algún tipo que le impida entrar usando la cuenta de admininstrador, normalmente podrá entrar usando el usuario "admin", con contraseña "admin".)

Una vez conseguido esto usted puede volver a la página principal de su sitio. Ésta contiene una serie de enlaces dispuestos en un menú que aparece en la parte izquierda de la página (estos elementos también aparecen en una página aparte de Administración). Éstos elementos sólo son visibles para usted ya que ha entrado como el usuario administrador. Toda su gestión de administración puede desde ahora hacerse desde este menú, como por ejemplo:

- Crear y borrar cursos
- Crear y editar cuentas de usuario
- Administrar cuentas de profesores
- Cambiar opciones del sitio, como temas, etc.

### 9. Configurar el cron

Algunos módulos de Moodle requieren revisiones continuas para llevar a cabo tareas. Por ejemplo, Moodle necesita revisar los foros de discusión para poder enviar copias de los mensajes a las personas que están suscritas.

El script que hace todo esto está en el directorio admin, y se llama cron.php. Sin embargo, no puede funcionar por sí mismo, de manera que usted tiene que establecer un mecanismo en el que este script se ejecute regularmente (por ejemplo, cada cinco o diez minutos). Esto proporciona un "pulso" de manera que el script pueda llevar a cabo funciones en determinados períodos definidos para cada módulo.

Tenga en cuenta que al máquina que ejecuta el cron no tiene que ser necesariamente la misma en la que está ejecutando Moodle. Por ejemplo, si usted tiene un servicio de alojamiento web limitado que no tiene cron, usted puede elegir ejecutar el cron en otro servidor o en su ordenador personal. Lo que importa es que el archivo cron.php sea llamado regularmente.

La carga de este script no es muy alta, así que un intervalo de 5 minutos es razonable generalmente, pero si ésto le preocupa, puede reducir el periodo de tiempo a algo así como 15 minutos o incluso 30 minutos. Es mejor no hacer el intervalo de tiempo demasiado largo, ya que el retrasar el envío de mensajes de correo puede reducir la actividad del curso.

Primero, pruebe que el script funcione directamente desde su navegador:

>     http://ejemplo.com/moodle/admin/cron.php

Ahora, usted necesita establecer alguna manera de ejecutar el script automáticamente y regularmente.

#### Ejecutar el script desde una línea de comandos

Usted puede llamar a la página desde una línea de comandos tal como hizo en el ejemplo de arriba. Por ejemplo, puede usar una utilidad Unix como 'wget':

>     wget -q -O /dev/null http://ejemplo.com/moodle/admin/cron.php

Advierta en este ejemplo que la salida se elimina (en /dev/null).

Es lo mismo usando lynx:

>     lynx -dump http://ejemplo.com/moodle/admin/cron.php > /dev/null

Como alternativa puede usar una versión de PHP compilada para ejecutarse desde la línea de comandos. La ventaja de hacer esto es que las entradas a su servidor web no se llenan con constantes solicitudes a cron.php. La desventaja es que necesitará tener acceso a una versión de línea de comandos de PHP.

>     /opt/bin/php /web/moodle/admin/cron.php

>     (Windows) C:\apache\php\php.exe C:\apache\htdocs\moodle\admin\cron.php

#### Ejecutar el script automáticamente cada 5 minutos

En un sistema Unix: Use cron. Edite las opciones de cron desde la línea de comandos usando "crontab -e" y añada una línea como la siguiente:

>     */5 * * * * wget -q -O /dev/null http://example.com/moodle/admin/cron.php

Normalmente, el comando "crontab" le enviará al editor 'vi'. Se entra en "modo de inserción" presionando "i", después teclee la línea de arriba, luego salga del modo de inserción presionando ESC. Se guardan los cambios y se sale tecleando ":wq", se puede salir también sin guardar usando ":q!" (sin las comillas).

En sistemas Windows: La manera más sencilla es usar esta pequeá aplicación moodle-cron-for-windows.zip que hace todo esto de forma muy sencilla. También puede probar a usar la aplicación integrada en Windows "Tareas programadas".

En los servidores de alojamiento web (hosting). Su panel de control web puede tener una página web que le permita configurar este proceso de cron. Consulte a su administrador para obtener detalles sobre su funcionamiento.

### 10. Crear un nuevo curso

Ahora que Moodle está funcionando de manera apropiada, puede crear un curso.

Seleccione "Crear un nuevo curso" desde la página "Admin" (o desde los enlaces de administración en la página principal).

Rellene el formulario, prestando especial atención al formato del curso. En este momento no tiene que preocuparse demasiado por los detalles, pues todo puede ser cambiado después por el profesor.

Presione "Guardar cambios", aparecerá un nuevo formulario en el que puede asignar profesores al curso. Desde este formulario sólo pueden añadirse cuentas de usuarios existentes, si necesita una cuenta para un profesor debe pedirle al profesor que crée su cuenta él mismo (vea la página de entradas) o créela usted utilizando la opción "Añadir nuevo usuario" en la página Admin.

Una vez hecho esto, el curso está listo para ser personalizado y puede accederse al mismo a través del enlace "Cursos" en la página principal.

Para obtener más detalles sobre la creación de cursos, vea el "Manual del Profesor"

Documentación de Moodle

Version: $Id: install.html,v 1.16 2003/09/09 16:33:56 moodler Exp $