Configurando PHP en entornos Windows

Aunque con experiencia en entornos Linux, mi trayectoria profesional se ha basado principalmente en Windows y sus herramientas. Cuando tuve que afrontar mi primer proyecto web, elegí Windows como entorno de desarrollo. Por coherencia, prefiero utilizar el software nativo proporcionado por el sistema operativo siempre que sea posible, así que mi entorno general de trabajo suele ser el siguiente:

  • IIS como servidor de aplicaciones
  • Visual Studio como entorno de programación
  • ASP.NET como lenguaje de servidor
  • Microsoft SQL Server como base de datos

Con la proliferación de CMS y soluciones de e-commerce basadas generalmente en PHP y MySQL, he tenido la necesidad de configurar y comprobar el buen funcionamiento de ambos productos en entornos Windows, incluso en producción.

Quiero compartir aquí con vosotros las pautas que sigo habitualmente para la configuración de PHP en IIS. Tengo que indicar que son pautas comprobadas en servidores dedicados con Windows 2008 R2 y/o Windows 2012 y versiones IIS 7 y superiores.

Pautas para la instalación y funcionamiento correcto de PHP

  • Asegúrate que IIS está funcionando correctamente SIN PHP.
  • Para instalar PHP para IIS, utiliza desde el mismo IIS el ‘Instalador de la plataforma Web‘  que te ofrece Microsoft. Busca ‘PHP’ en el instalador y elige la versión que requieras para tu proyecto. La instalación se realiza sin mayor problema.instalador-de-la-plataforma-web-iisinstalador-plataforma-web-pantalla
  • Tras la instalación exitosa, aparentemente nada ha cambiado en IIS. PHP se instala como una aplicación Fast-CGI, por lo que podrás comprobar que se ha instalado haciendo clic en el icono ‘Configuración de FastCGI‘ de IIS y viendo que aparece.configuracion-fast-cgi
  • Para gestionar cómodamente PHP desde el mismo IIS hay un producto gratuito que funciona de maravilla. Se llama ‘PHP Manager for IIS‘ y lo puedes descargar aquí. Además de proporcionar avisos sobre problemas de configuración, te permite conocer la configuración actual y ajustar prácticamente todos los parámetros de forma cómoda y bien explicada. Además, no es necesario reiniciar IIS tras cada cambio.php-manager
  • Otra cosa que se echa habitualmente de menos en una implementación de PHP bajo Windows es un módulo de caché que agilice el acceso a nuestras páginas. Para ello, desde el mismo ‘Instalador de la plataforma Web’ realiza una búsqueda de ‘Windows Cache Extension para PHP‘, elige la versión correspondiente a la versión de PHP que tengas e instálalo.
  • Confirma que la extensión ‘php_wincache.dll’ está activada. Lo puedes hacer fácilmente desde el ‘PHP Manager for IIS’
  • Wincache tiene varios parámetros ajustables. Tienes información sobre ellos aqui.
  • Wincache también incluye un módulo gráfico para ver el uso que se está haciendo de la cache. El módulo se llama ‘wincache.php’ y lo encuentras generalmente en ‘%SystemDrive%\Program Files (x86)\IIS\Windows Cache for PHP’. Para ver las estadísticas, copia el fichero en la raíz de alguna de las webs que tengas operativas y ábrelo desde un navegador. Por seguridad conviene que abras antes el archivo y fuerces la autenticación para que solo tú tengas acceso a los informes.wincache-para-php
  • Y por último: si deseas una configuración de PHP personalizada por cada web o aplicación que alojes en tu servidor, basta con que alteres la configuración de PHP desde el ‘PHP Manager for IIS’, estableciendo el parámetro ‘user_ini.filename‘ a ‘.thissitephp.ini‘ o al nombre que prefieras. (Poner un punto delante del nombre de un archivo es una forma de ocultarlo…en Linux!). Luego, en la raíz de cada sitio web, puedes crear un archivo con ese nombre y definir los parámetros PHP del sitio de forma personalizada. Podrás comprobar que cada configuración es distinta desde el icono ‘PHP Manager for IIS’ de cada sitio.

Siguiendo estos pasos, dispondrás en un entorno PHP en Windows, personalizable por cada site, fácilmente gestionable desde un interfaz gráfico y con caché para que el rendimiento de tus sites sea correcto.

Y…¡no olviden súpervitaminarse y mineralizarse!

Contestar