viernes, 19 de septiembre de 2008

Instalación de Moodle sobre Windows XP SP2

Antes de comenzar con los pasos de la instalación, conviene saber que esta forma de mantener Moodle está orientada únicamente a desarrollo. Mantener un servidor Moodle sobre un sistema operativo Windows XP no es una solución fiable por limitaciones de seguridad. Asunto que está dedicado a las versiones Windows Server. Por tanto, insistimos, está instalación está orientada a quienes se dediquen al desarrollo sobre Moodle en Windows XP.

  1. Servidor Apache

    Es necesario el uso de un servidor que interprete páginas PHP y utilizar bases de datos Oracle. Para ello, existen multitud de servidores con está capacidad, aunque nosotros nos basaremos en el que se instala con el paquete open source XAMPP, cuyo manejo es muy sencillo:

    1.1. Descargar el instalador del paquete XAMPP para Windows desde www.apachefriends.org

    1.2. Durante la instalación podéis seleccionar todos los servicios, aunque con Apache service será suficiente.

    1.3. En el proceso de instalación se advertirá del cortafuegos de Windows si lo tiene habilitado. Será necesario que lo deshabilite desde la ventana de advertencia que le aparecerá.

    1.4. Una vez instalado, ejecute la aplicación y compruebe que el proceso Apache está corriendo.

  1. Servidor Oracle

    2.1. Basándonos en la versión 10g Release 2 (10.2.0.1.0), necesitamos descargar el paquete 10201_database_win32.zip desde http://www.oracle.com/technology/software/products/database/oracle10g/htdocs/10201winsoft.html.

    2.2. Una vez descargado, desde el fichero setup comenzamos la instalación. Con los siguientes pasos conseguiremos la instalación de Oracle justo con lo que necesitamos para trabajar.

Seleccionamos el modo de instalación avanzada.

Seleccionamos el tipo de instalación Enterprise Edition. Solo será necesario 653 Mb de espacio en el disco duro.

Indicamos el nombre del directorio con que contendrá los ficheros de la base de datos y la ruta de acceso a las aplicaciones Oracle.

Seleccionamos la primera de las opciones para crear la nueva base de datos con las aplicaciones básicas necesarias.

Dado que Moodle es una aplicación cuyo conjunto de operaciones sobre la base de datos es en su mayoría de consulta, el tipo de base de datos que podemos utilizar es de uso general.

¡Ojo!, este paso es el más importante de todo el proceso de instalación. En cuanto al nombre de la base de datos podemos decir poco. Podemos dejar el que se asigna por defecto. Sin embargo, el juego de caracteres a utilizar debemos cambiarlo a AL32UTF8 forzosamente. Este es un requisito que Moodle exigirá en el proceso de instalación, de manera que si el juego de caracteres es distinto de este, Moodle no podrá interactuar con la base de datos.

La opción válida es la marcada por defecto ya que, evidentemente, no estamos usando un grid. No vamos a utilizar ninguna de las aplicaciones Oracle para enviar correo, por tanto, dejamos la opción de notificación de correo electrónico sin marcar.

Indicamos el directorio donde se ubicara el sistema de archivos de la base datos. Podemos dejar el asignado por defecto.

En este paso determinamos la contraseña de los principales usuarios del sistema (SYS, SYSTEM...). Por comodidad, podría usar la misma contraseña para todas las cuentas. Esto es a libre elección, pero cabe recordar al menos la del usuario SYSTEM o SYS porque posteriormente será el usuario desde el que crearemos el usuario necesario para Moodle.

Llegados a este punto, la instalación ha finalizado. A partir de ahora solo tendremos que asegurarnos de que, de los cuatro servicios de Oracle instalados, está corriendo OracleOraDb10g_homeTNSListener y OracleServiceORCL. Esto lo podemos ver dentro del Panel de Control en Herramientas Administrativas -> Servicios.
  1. Usuario Oracle para Moodle

    Desde cualquier interfaz para lanzar sentencias SQL (por ejemplo, http://127.0.0.1:5560/isqlplus) autenticado como usuario SYS o SYSTEM, solo crearemos el usuario que asignaremos a la sesión de Moodle. Sin crear un nuevo espacio de tablas ya que la base de datos la usaremos, en este caso, solo para el desarrollo sobre Moodle:

    create user identified by ;

    grant connect, resource to ;

    grant create view to ;

    grant create trigger to ;

    Instanciando los campos entre '<' y '>', podríamos usar los siguientes valores:

    : usuario_moodle

    : usuario_modle

  2. Librería OCI8

    Moodle utiliza la librería en PHP ADOdb (Database Abstraction Library for PHP and Python) para poder integrarlo con cualquier sistema gestor de bases de datos. Esta librería, a su vez, utiliza otras de enlace dinámico que permiten comunicarse con la base de datos resolviendo las funciones concretas que utiliza cada gestor en tiempo de ejecución. Para nuestro caso en concreto, donde queremos comunicar Moodle con una BD Oracle, necesitamos la librería de enlace dinámico denominada OCI8 (Oracle Call Interface).

    El proceso para la instalación de esta librería es mucho más simple que en Ubuntu. De hecho, al haber instalado Apache mediante XAMPP, ya la tenemos instalada en \php (php_oci8.dll). Lo único que debemos hacer, para que Apache permita la comunicación desde PHP con Oracle con está librería, es descomentar la línea extension=php_oci8.dll que aparece en los ficheros

    \php\php.ini

    \apache\bin\php.ini

    Para acabar con la instalación, reiniciamos el servidor Apache desde el panel de control de XAMPP.

    Una forma de comprobar la correcta instalación de la librería consiste en lanzar la función “phpinfo()” en una página PHP local. Así, los parámetros de la configuración

    de OCI8 deben ser:

        default_prefetch => 10 => 10

        max_persistent => -1 => -1

        old_oci_close_semantics => 0 => 0

        persistent_timeout => -1 => -1

        ping_interval => 60 => 60

        provileged_connect => Off => Off

        statement_cache_size => 20 => 20

Además, puede comprobar la comunicación con la BD creada para Moodle con este código de prueba también desde un script PHP local:

$conn = OCILogon("usuario_moodle", "usuario_moodle");

        $query = 'select table_name from user_tables';

        $stid = OCIParse($conn, $query);

        OCIExecute($stid, OCI_DEFAULT);

        while($succ = OCIFetchInto($stid, $row)){

        foreach($row as $item){

        echo $item." ";

        }

        echo " ";

        }

        OCILogoff($conn);


  1. Moodle

    1. Descargamos la versión 1.8.5+ que es la más estable hasta ahora. Lo hacemos desde la web oficial descargando el paquete .zip: http://download.moodle.org/download.php/stable18/moodle-weekly-18.zip

    2. Lo descomprimimos en el directorio \htdocs.

    3. Comenzamos la instalación desde el navegador con la URL http://127.0.0.1/moodle.

    4. El desarrollo de la instalación es muy intuitivo, por lo que solamente comentamos el paso para la selección de la BD. Debe indicarse cuidadosamente los siguientes parámetros de configuración:

        SSID (por defecto “orcl”).

        Usuario (si hemos seguido el ejemplo del paso 3, el usuario será “usuario_moodle”).

        Contraseña (si hemos seguido el ejemplo del paso 3, la contraseña será “usuario_moodle”).

        Prefijo de las tablas (solo permite 2 caracteres, por ejemplo podemos indicar “m_”).