Documentación de Moodle: Instalación Básica

# Instalación de Moodle

## ¡No se asuste!

> 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 Moodle se instala en unos pocos minutos!

> Si tiene dificultades, por favor lea este documento cuidadosamente, pues la mayoría de los problemas habituales están contestados aquí. Si aún así tiene problemas, puede buscar ayuda en Ayuda de Moodle.

> Otra opción es contactar con una compañía de hosting que pueda mantener Moodle por usted, de forma que pueda despreocuparse de todo esto y centrarse en la formación.

> Secciones de este documento:

> 1. Requerimientos
> 2. Descarga
> 3. Estructura del sitio
> 4. Ejecutar el script de instalación para crear el archivo config.php
>    - Comprobar la configuración del servidor web
>    - Crear una base de datos
>    - Crear un directorio de datos
> 5. Ir a la página de administración para continuar la configuración
> 6. Configurar el cron
> 7. Crear un nuevo curso

### 1. Requerimientos

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

> Los requerimientos de Moodle son los siguientes:

> 1. Un servidor web. La mayoría de los usuarios usan 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 en funcionamiento (versión 4.1.0 o posterior). PHP 5 está soportado a partir de Moodle 1.4.
> 3. Una base de datos: MySQL o PostgreSQL, que están completamente soportadas y recomendadas para su uso con Moodle.

> 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 otro sitio.

> 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 estos programas 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 actualizar los archivos vía CVS, tendrá un directorio llamado "moodle", que contiene varios archivos y carpetas.

> Puede o bien 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, o bien copiar todos los contenidos directamente en el directorio principal de documentos del servidor web, en cuyo caso el sitio será simplemente http://suservidor.com.

> Si está descargando Moodle a su ordenador para después subirlo a su sitio web, normalmente es preferible subirlo todo como un solo archivo y descomprimirlo en el servidor. Incluso los paneles de control como Cpanel le permitien descomprimir archivos en el "Administrador de Archivos".

### 3. Estructura del sitio

> Puede saltarse sin problemas esta sección, pero en ella encontrará un breve resumen de los contenidos del directorio Moodle, para ayudarle a orientarse:

> > config.php | - | contiene la configuración fundamental. Este archivo no viene con Moodle - usted lo creará.
> > install.php | - | el script que ejecutará para crear el archivo config.php
> > 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.
> > - blocks/ - Módulos para los pequeños bloques laterales contenidos en muchas páginas
> > - calendar/ - Código para manejar y mostrar eventos de calendario
> > - 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. Ejecutar el script de instalación para crear config.php

> Para ejecutar el script de instalación (install.php), solo tiene que acceder a la dirección URL de su instalación Moodle usando un navegador web, o simplemente acceder a http://suservidor/install.php directamente.

> (El instalador tratará de establecer una sesión de cookies. Si se encuentra con una ventana de aviso en su navegador, asegúrese de aceptar esa cookie).

> Moodle detectará la configuración necesaria y le guiará a través de algunas pantallas para ayudarle a crear el archivo de configuración llamado config.php. Al final del proceso, Moodle intentará escribir el archivo en el lugar apropiado, pero si esto no fuera posible puede presionar un botón para bajarlo desde el instalador y despúes subirlo dentro del directorio principal de Moodle en el servidor.

> Al mismo tiempo, el instalador comprobará las características de su servidor y le sugerirá cómo resolver cualquier problema. Para la mayoría de las cuestiones habituales estas sugerencias deberían ser suficientes, pero si se queda atascado, mire abajo para encontrar más información sobre algunas cuestiones comunes que le deberían permitir poder continuar.

> ### 4.1 Configuración general del servidor web

> > Lo primero de todo, asegúrese de que su servidor web está configurado para usar index.php como página inicial (quizá además de index.html, default.htm, etc.).

> > En Apache, esto se hace usando un parámetro DirectoryIndex en su archivo httpd.conf. Habitualmente aparece de esta forma:

> > >     DirectoryIndex index.php index.html index.htm

> > Sólo asegúrese de que index.php está en la lista (y preferiblemente al principio de la lista, por razones de eficiencia).

> > En segundo lugar, si está utilizando Apache 2, debería de habilitar la variable AcceptPathInfo, la cual permite que se puedan pasar argumentos a los scripts como http://servidor/archivo.php/arg1/arg2. Esto es esencial para permitir vínculos relativos entre sus recursos, y también proporciona una mejora de rendimiento en la utilización de su sitio web Moodle. Puede habilitar ésto añadiendo estas líneas a su archivo httpd.conf:

> > >     AcceptPathInfo on

> > En tercer lugar, Moodle necesita tener activada una determinada configuración en su instalación PHP para funcionar. En la mayoría de ellas ya serán las opciones de configuración establecidas por defecto. Sin embargo, algunos servidores PHP (y algunas de las versiones más recientes de PHP) pueden tener una configuración diferente. Estas opciones se definen en el archivo de configuración de PHP (normalmente llamado php.ini):

> > >     magic_quotes_gpc = 1    (preferible pero no necesario)
> > >     magic_quotes_runtime = 0    (necesario)
> > >     file_uploads = 1
> > >     session.auto_start = 0
> > >     session.bug_compat_warn = 0

> > Si no tiene acceso a los archivos httpd.conf o php.ini en su servidor, o tiene Moodle en un servidor con otras aplicaciones que requieren una configuración diferente, no se preocupe, aún puede normalmente sobrepasar -OVERRIDE- la configuración por defecto.

> > Para hacer esto, necesita crear un archivo llamado .htaccess en el directorio principal de Moodle que contenga líneas como las que siguen. Esto solo funciona en servidores Apache y únicamente cuando Overrides ha sido permitido en la configuración principal.

> > >     DirectoryIndex index.php index.html index.htm

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

> > >     php_flag magic_quotes_gpc 1
> > >     php_flag magic_quotes_runtime 0
> > >     php_flag file_uploads 1
> > >     php_flag session.auto_start 0
> > >     php_flag session.bug_compat_warn 0

> > También puede hacer cosas como definir el tamaño máximo para los archivos subidos:

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

> > Lo más fácil es copiar el archivo de ejemplo localizado en lib/htaccess y editarlo para adecuarlo a sus necesidades. Contiene además más instrucciones. Por ejemplo, en un intérprete de comandos de Unix:

> > >     cp lib/htaccess .htaccess

> ### 4.2 Crear una base de datos

> > Necesitará 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 en 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.

> > Si está utilizando un servicio de hosting, probablemente tendrá un panel de control que le permitirá crear su base de datos.

> > El sistema Cpanel es uno de los más populares entre ellos. Para crear una base de datos con Cpanel:

> > 1. Haga click en el icono "Bases de datos MySQL".
> > 2. Escriba "moodle" en el campo base de datos y haga click en "Añadir Base de Datos".
> > 3. Escriba un usuario y contraseña (no uno que use en cualquier sitio) en el campo respectivo y haga click en "Añadir Usuario".
> > 4. Ahora utilice el botón "Añadir Usuario a la Base de Datos" para dar a esta nueva cuenta de usuario "TODOS" los derechos en la nueva base de datos.
> > 5. Note que el nombre de usuario y el nombre de la base de datos pueden estar prefijados por su nombre de cuenta en su Cpanel. Cuando introduzca esta información en el instalador de Moodle utilice los nombres completos.

> > Si tiene acceso a la línea de comandos de Unix puede hacer estas mismas cosas escribiendo comandos.

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

> ### 4.3 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.

> > El instalador de Moodle intenta crear este directorio pero si no puede hacerlo tendrá que crearlo usted manualmente.

> > Por seguridad, es mejor que este directorio NO sea accesible directamente desde la web. La manera más sencilla de conseguir esto es simplemente colocarlo FUERA del directorio web, pero en caso de que no pueda hacerlo así, protéjalo creando un archivo .htaccess en el directorio de datos que contenga 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 lectura, escritura y ejecución en ese directorio.

> > En las máquinas Unix, esto significa establecer que el dueño del directorio sea algo como "nobody" o "apache" y dar a ese usuario permiso de lectura, escritura y ejecución.

> > En los sistemas Cpanel puede usar el "Administrador de Archivos" para encontrar la carpeta, hacer click en ella y escoger "Cambiar Permisos". En la mayoría de los servidores compartidos, probablemente necesitará restringir el acceso a archivos a su "grupo" (para evitar que otros clientes del mismo servidor web puedan ver o cambiar sus archivos), pero deberá proporcionar acceso completo de lectura/escritura a cualquiera (lo que permitirá al servidor web acceder a sus archivos).

> > Hable con el administrador de su servidor si tiene algún problema al establecer esto de forma segura. En concreto, algunos sitios que usan una característica de PHP conocida como "Safe Mode" pueden requerir que el administrador cree este directorio de la forma adecuada para usted.

### 5. Ir a la página de administración para continuar la configuración

> Una vez que el archivo config.php ha sido correctamente creado en el paso anterior, al intentar acceder a la página principal de su sitio se encontrará con la página "administración" para continuar con el resto de la configuración.

> La primera vez que acceda a esta página de administración, se le presentará el acuerdo de licencia GPL con el cual debe estar de acuerdo antes de continuar con la instalación.

> En este momento, Moodle empezará configurando la base de datos y creando las tablas para guardar los datos. En primer lugar, se crean las principales tablas de la base de datos. Debería ver una serie de sentencias SQL seguidas por mensajes de estado (en verde o rojo) parecidas a éstas:

> > 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 así sucesivamente, seguidas por: Main databases set up successfully.

> > Si no ve ésto, debe de haber algún problema con la base de datos o con las opciones de configuración establecidas en config.php. Compruebe que PHP no está configurado como "Safe Mode" (a veces las empresas de hosting tienen esta restricción activada). Usted puede comprobar las variables PHP creando un pequeño archivo conteniendo <?php phpinfo() ?> llámelo phpinfo.php y ábralo en un navegador. Compruebe ésto y pruebe esta página de nuevo.

> Baje hasta el final de la página y presione el enlace "Continuar".

> Ahora usted debería 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 ésto más adelante usando la interfaz de administración. Desplácese hasta 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 llamamos el problema de 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.

> A continuación verá más páginas con multitud de mensajes de estado a medida que se configuran todas las tablas requeridas por los diferentes módulos de Moodle. Como antes, deberían ser todos verdes.

> Baje hasta el final de la página y presione el enlace "Continuar".

> 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 ésto 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.

> > (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.

> ¡Pero aún no ha concluido la instalación! Hay aún una cosa muy importante por hacer (vea la próxima sección acerca del cron).

### 6. Configurar el cron ¡IMPORTANTE!

Algunos módulos de Moodle requieren revisiones continuas para llevar a cabo determinadas 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 una señal de manera que el script pueda llevar a cabo funciones en determinados períodos definidos para cada módulo.

Tenga en cuenta que la 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 15 minutos o incluso 30 minutos. Es mejor no establecer un 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ática y regularmente.

En Windows

> La forma más sencilla es usar este pequeño paquete moodle-cron-for-windows.zip que lo hace todo de una forma muy fácil instalando un pequeño servicio Windows. Ejecútelo y olvídese de él.

En servicios de hospedaje web

> Su panel de control puede tener una página web que le permita establecer este proceso de cron. Por ejemplo, en el sistema Cpanel, busque un botón llamado "Tareas de Cron". Ahí podrá establecer los mismos comandos Unix que aparecen más abajo.

#### Usando la línea de comandos en Unix

> Hay diferentes programas de línea de comandos que puede usar para llamar a la página desde la línea de comandos. Puede que no todos ellos estén disponibles en un determinado servidor.

> Por ejemplo, puede usar una utilidad Unix como 'wget':

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

> Observe 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

#### Usando el programa "crontab" en Unix

> Todo lo que Cpanel hace es proporcionar una interfaz web a una utilidad Unix conocida como «crontab». Si dispone de línea de comandos, puede establecer el «crontab» usted mismo usando el comando:

> >     crontab -e

> > y añadiendo 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).

####

### 7. 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 cree 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 2005/02/09 16:33:56 moodler Exp $