Aumentando el tiempo del timeout de FastCGI en IIS

El otro día comentaba que tuve que instalar GD (y un par de librerías más) en un servidor Windows con IIS para una instalación de PrestaShop. No fue la única modificación que tuve que hacer, a decir verdad. Al comenzar la instalación de PrestaShop se paraba en el 12% y daba un error creando las tablas. Ya había visto ese tipo de errores antes también en entornos Apache/Linux con alguna instalación de CMS: el proceso lleva demasiado tiempo y el servidor, por seguridad y optimizacion del rendimiento, cierra la conexión.

En el caso de PHP sobre IIS es la actividad fastCGI la que nos está fastidiando la instalación, así que debemos aumentar el tiempo de tiemout para poder acabar la instalación (luego ya lo volveremos a cambiar para asegurarnos el rendimiento del servidor).

Lo primero es lanzar el terminal de línea de comandos e ir a la carpeta c:\Windows\System32\inetsrv . Una vez allí si ejecutamos C:\Windows\System32\inetsrv>appcmd list config -section:system.webServer/fastCgi veremos los datos con la configuración de fastCGI.

Basta un solo comando para cambiar esa configuración, y vamos a poner una hora para ir sobrados de tiempo. Para este ejemplo vamos a suponer que nuestra instalación de php está en la carpeta C:\Program Files\PHP\v5.3\, como era en mi caso. En el vuestro cambiad esta ruta por la que corresponda.

C:\Windows\System32\inetsrv>appcmd set config -section:system.webServer/fastCgi "-[fullPath='C:\Program Files\PHP\v5.3\php-cgi.exe'].activityTimeout:3600"

Si todo va bien recibirás un mensaje tipo:

Applied configuration changes to section “system.webServer/fastCgi” for “MACHINE/WEBROOT/APPHOST” at configuration commit path “MACHINE/WEBROOT/APPHOST”

Tras eso basta con reiniciar el servicio y ya podrás seguir. Al acabar con la tarea que requiere tiempo extra lo recomendable sería volver a reducir el timeout de fastCGI.

Instalando la librería GD de php en IIS

Esta mañana preparaba una instalación de Prestashop en un servidor Windows. Ya había hecho varias en el pasado, pero siempre en entornos Apache-Linux, jamás en Windows con IIS. Supuse que no podría ser muy distinto.

La primera en la frente: PrestaShop me pide la librería de funciones de imágenes GD en el servidor, (y un par más, pero el procedimiento es el mismo) que no está instalada. ¿Qué toca?

Lo primero, abrir el php.ini, buscar la línea ;extension=php_gd2.dll y quitarle el ; para descomentarla. Si por lo que fuera esa línea no existe simplemente la metéis a mano. Luego o hacéis una copia del php.ini en la carpeta C:\Windows o creáis un enlace simbólico desde allí al archivo, cualquiera de las dos opciones vale.

Siguiente paso: dentro de la carpeta PHP buscáis la carpeta ext y allí mirad si está el archivo php_gd2.dll y, en caso afirmativo, lo copiáis al mismo directorio en el que tenéis el php.ini. En caso de que no esté allí (mirad bien, debería estar) debéis descargarla.

Tras estos sencillos pasos ya tenéis GD instalada en vuestro servidor PHP Windows con IIS.