Browsing Tag

Moodle

    Instalar Moodle en IIS – Recomendaciones

    Recientemente nos tocó la tarea de migrar las aplicaciones Web a otros servidores todos corriendo Windows Server 2012, y fue necesario instalar instalar todos las aplicaciones desde 0.  Preparamos un  servidor solo para las bases de datos (MySQL) y luego configuramos los servidores de aplicaciones con IIS y PHP.

    Curiosamente instalar Moodle en los nuevos servidores, fue de las aplicaciones que nos presentó más problemas para estar en forma óptima.   Les contare algunas recomendaciones  para instalar Moodle en IIS de forma óptima y que nos funcionó en los nuevos servidores, la mayoría sacadas del sitio de Moodle de IIS  en inglés.

    Al ser éste tema eminentemente técnico, el propósito de escribirlo es para dejar una bitácora(memoria), que  me sirva en futuras referencias y por que no para todo aquel internauta que se  vea en la necesidad de instalar un Moodle en un servidor Windows con IIS.

    ¿Que es Moodle?

    Moodle es una plataforma de aprendizaje (LMS)  diseñada para proporcionarle a educadores, administradores y estudiantes un sistema integrado único, robusto y seguro para crear ambientes de aprendizaje personalizados.

    Pasos para instalar Moodle en IIS

    Suponemos que ya tenemos preparado una computadora con Windows Server, y éste ya tiene habilitado el servidor Web IIS y el servicio de MySQL está instalado ya previamente.    Así que para los fines de éste tutorial, solo nos remiteremos a configurar correctamente PHP en IIS para que se instale de forma óptima Moodle y los pasos para instalar Moodle uan vez el servidor está hábil

    1. Instalar PHP e integrarlo en IIS
    2. Configurar PHP con los parámetros óptimos para Moodle
    3. Configurar IIS con los parámetros recomendados
    4. Descarga Moodle desde la Web de Moodle.org 
    5. Descomprimir zip y copiar en el directorio de Web del servidor, usualmente www
    6. Crear sitio Web en IIS de Moodle apuntando al directorio donde se copiaron los archivos de Moodle
    7. Instalar Moodle desde el navegador

    A continuación se describen los pasos anteriores en detalle.

    PHP 

    1. Instalar Microsoft Web Platform Installer
    2. Instalar la última versión de PHP 5.6.x usando  Web Platform Installer
    3. Instalar URL Rewrite 2.0 utilizando Web Platform Installer

    Aunque recomendamos utilizar la Plataforma de Instalación  Web de Microsoft, en ocasiones no están disponibles las últimas vePHP Managerrsiones en ella y es necesario realizarlo de forma manual:

    1. Descargar  e instalar PHP manager for IIS
    2. Descarga la última versión de  PHP 5.6.x VC11 x64 (o x86 si es no de 64 bits) Non Thread Safe desde http://windows.php.net/download/
    3. Extraer el comprimido (Zip) al directorio como C:\PHP\
    4. Instalar the Visual C++ Redistributable for Visual Studio 2012 –  en servidores de  64bit  se deben instalar los ambos: x86 y x64
    5. Abrir  Internet Information Service (IIS) Manager
    6. Hacer Click en el icono de  PHP Manager
    7. Registrar  la nueva versión de PHP – seleccionando C:\PHP\php-cgi.exe

    Siempre registrar PHP como FastCGI en IIS, otra forma podría ocasionar problemas.

    Pasos para configurar PHP

    1. Ajuste la configuración de PHP  a los valores recomendados por PHP Manager
    2. Habilitar  en PHP Manager las extensiones: php_intl.dll, php_pgsql.dll, php_curl, OPcache
    3. Ajuste su zona horaria (timezone)  en el  PHP.inimoodleiis1
    4. Ajustar los limites de memoria apropiados en PHP.ini

    Pasos para configurar IIS

    1. Configurar la re-escritura de urls ( URL rewriting)
    2. Configurar IIS para mostrar los errores de detallados.
    3. Ajustar CGI timeout – 1 hora o más
    4. Agregar en IIS en el nuevo sitio o directorio virtual de Moodle.

    Slasharguments

    La función  slash arguments  es requerida por varias características de Moodle:  Ver Using slash arguments.

    IIS 7 la soporta por defecto, pero si es así, colocar  en php.ini:  cgi.fix_pathinfo = 1

    Re-escritura de UrlsRewrite Rule

    Para evitar errores con nombres de archivos unicode recomendamos instalar la siguientes reglas de re-escritura, que recomendamos se realice desde módulo URL Rewrite 2.0, el cual se ha instalado ya previamente desde  Microsoft Web Platform Installer.

    • Matches the Pattern – Regular Expressions^([^\?]+?\.php)(\/.+)$
    • Action – Rewrite – {R:1}\?file={R:2}
    • Append query string – enabled
    • Stop processing of subsequent rules – enabled

    Fix de nombres de archivos  UTF-8

    Por defecto IIS no maneja los caracteres unicode de los archivos a ser subidos por Moodle.  Por lo que recomendamos  ejecutar el siguiente Fix:

    Execute: reg add HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\w3svc\Parameters /v FastCGIUtf8ServerVariables /t REG_MULTI_SZ /d REQUEST_URI\0PATH_INFO

    Ver también Using UTF-8 Encoding for Server Variables and How to get UTF-8 Encoding support in IIS 7.5 in Windows 7 and Windows Server 2008 R2 with the KB 2277918 hotfix.

    CGI timeouts

    Por defecto IIS está configura para parar la ejecución de los scripts PHP en 5 minutos, lo cual ocasiona interfiere con el buen funcionamiento de scripts largos de Moodle como el cron o las actualizaciones.  El timeout debe ser incrementado al menos a una hora.

    FastCGI Settings > Edit (Right-click on PHP application)

    • Ajustar Process Model > Activity Timeout to ‘3600’ (1 hora)
    • Ajustar Process Model > Request Timeout to ‘3600’ (1 hora)

    Permisos de directorio

    Se le debe dar permisos de escritura y lectura (read/write)  a la cuenta de IIS, que por defecto es  IIS_IUSRS,  al directorio de datos (moodledata) y de lectura  al directorio de Moodle.moodleiis2

    Soporte de subida de archivos grandes

    Por defecto IIS no permite subir archivos más grandes 30MB, por lo que debemos ajustar ese dato en IIS en Request Filtering -> Edit featuring settings -> Maximum allowed content length (bytes), por defecto esa propiedad tiene el valor de  30 MB (30000000), lo ajustamos preferiblemente a 1GB (1000000000).  Bastante dolor de cabeza no dio ésta característica.

    Ahora bien debemos ajustar los siguientes valores en PHP.ini para que nos permita subir archivos grandes:

    Si lo ajustamos a un máximo de 512MB, sería

    • upload_max_filesize = 512M
    • post_max_size = 512M

    Instalación de Moodle paso a paso

    Fuentes:

Visit Us On TwitterVisit Us On FacebookVisit Us On Google PlusCheck Our Feed