## 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. Establecer el crono
10. Crear un nuevo curso

### 1. Requisitos

Moodle está desarrollado principalmente en Linux usando PHP, Apache y MySQL, y revisado regularmente con PostgreSQL y en en los entornos Windows XP y Mac OS X.

Lo único que necesitará es:

1. Una instalación de PHP que esté funcionando (versión 4.1.0 o posterior), con las siguientes caracterísitcas habilitadas (la mayoría de las instalaciones de PHP de hoy en día las tienen):
   - GD library con soporte para los formatos JPG y PNG.
   - Soporte para sesiones.
   - Habilitada la posibilidad de subir archivos.
2. Una base de datos funcionando: Se recomienda MySQL o PostgreSQL. (MSSQL, Oracle, Interbase, Foxpro, Access, ADO, Sybase, DB2 o ODBC teóricamente también pueden usarse pero requerirán que usted cree manualmente las tablas de la base de datos).

Sobre una plataforma Windows, la forma más rápida de satisfacer estos requisitos es descargar FoxServ, o EasyPHP que instalarán Apache, PHP, y MySQL por usted. Asegúrese de habilitar el módulo GD de manera que Moodle pueda procesar imágenes. Tendrá que editar php.ini y eliminar el comentario (;) de la siguiente línea: 'extension=php_gd.dll'. Es posible que también tenga que arreglar el directorio para session.save_path - en vez del que viene por defecto "/tmp", use un directorio de Windows tal como "c:/temp".

Sobre Mac OS X yo recomiendo el proyecto fink como forma de descargar paquetes fáciles de mantener. Si usted no se siente seguro con el uso de comandos en línea, entonces, Marc Liyanage's PHP Apache Module es la manera más sencilla de conseguir subir PHP y ejecutarlo en un nuevo servidor Mac OS X.

¡Si usted usa Linux u otro sistema Unix, entonces asumiré que usted ya se figura todo esto por sí mismo! ;-)

### 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.com/.

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

Usted puede tanto colocar la carpeta completa en su directorio de documentos de su servidor Web, en cuyo caso el sitio estará localizado en http://yourwebserver.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://yourwebserver.com.

### 3. Estructura del sitio

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

config.php - El único archivo que necesita editar para conseguir comenzar
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 (Ej., esta página).
- files/ - Código para presentar y gestionar los archivos subidos.
- 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 presentar 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 subidos, tales como la documentación de los cursos y las fotos de los usuarios.

Cree un directorio para esto en cualquier parte. Por seguridad, es mejor que este directorio no esté accesible directamente a través de la Web. La manera más sencilla de conseguir esto, es 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 software del 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 prevenir que los clientes de otros sitios Web alojados allí vean o cambien sus archivos), pero proporcionar pleno acceso de lectura/escritura a cualquiera (lo que permitirá el servidor Web acceder 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 (Ej. Moodle) en su sistema de base de datos, junto con un usuario especial (Ej. "moodleuser") que tenga acceso a esa base de datos (y sólo a esa base de datos). Si quisiera podría usar la "ruta" de usuario, pero esto no es recomendable en un sistema de producción: si los "hackers" 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 su base de datos).

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 así).

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, el 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. Usted 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 están activadas por defecto. Si 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
>     magic_quotes_runtime = Off
>     file_uploads = On
>     short_open_tag = 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.

>     DirectoryIndex index.php index.html index.htm

>     <IfDefine APACHE2>
>          AcceptPathInfo on
>     </IfDefine>

>     php_value magic_quotes_gpc On
>     php_value magic_quotes_runtime Off
>     php_value file_uploads On
>     php_value short_open_tag On
>     php_value session.auto_start Off
>     php_value session.bug_compat_warn Off

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

>     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 más tarde.

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 archivo config contiene instrucciones detalladas.

Para el resto de este documento de instalación vamos a asumir que su sitio está en: http://example.com/moodle

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

La página de administración debe estar ahora funcionando en: http://example.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á el acuerdo 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 declaraciones 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 host 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 "buggy referrer". Esto es fácil de arreglar: sólo tiene que editar su config.php y establecer la variable buggy_referrer como true, 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 cree 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.

Una vez conseguido esto usted puede volver a la página principal de administración, que contiene una serie de enlaces dispuestos en un menú (estos elementos también aparecen en la página principal cuando usted entra como usuario administrador). Toda su gestión de administración futura puede 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 los temas, etc.

### 9. Establecer el crono

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 (Ej., cada cinco 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 cronometra no tiene que ser necesariamente la misma en la que está corriendo Moodle. Por ejemplo, si usted tiene un servicio de alojamiento Web limitado que no tiene crono, usted puede elegir ejecutar el crono en otro servidor o en su ordenador personal. Lo que importa es que el archivo cron.php sea llamado cada cinco minutos o así.

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

>     http://example.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://example.com/moodle/admin/cron.php

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

Es lo mismo usando lynx:

>     lynx -dump http://example.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

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

### 10. Crear un nuevo curso

Ahora que Moodle está funcionando de manera apropiada, usted 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.

Seleccione el enlace "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 quiere crear una nueva cuenta para un profesor debe pedirle al profesor que cree una cuenta él mismo (vea la página de entradas) o crear una para él usando 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 a él 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.8 2003/03/26 14:13:42 moodler Exp $