El componente FastCGI en IIS permite que las estructuras de aplicaciones populares que admiten el sistema FastCGI se alojen en el servidor web de IIS, lo que las hace funcionar mejor y de manera más confiable.

FastCGI proporciona una opción altamente funcional para la Common Gateway Interface (CGI) ampliamente utilizada, que es un método típico para conectar aplicaciones externas a servidores web, que es una de las características de IIS que se han admitido desde su lanzamiento por primera vez.

Los programas CGI son archivos compartidos por el servidor web para procesar la consulta y crear respuestas inestables que se devuelven al usuario.

Debido a que muchas de estas estructuras no admiten la ejecución de subprocesos múltiples, CGI les permite ejecutarse correctamente en IIS procesando solo una solicitud a la vez.

Desafortunadamente, su rendimiento es deficiente debido al alto costo de configurar y cerrar un procedimiento para cada consulta que envía.

FastCGI supera los problemas de funcionalidad que son comunes en CGI al proporcionar un mecanismo para procesar un procedimiento repetidamente para muchas consultas.

FastCGI también ayuda a mantener el soporte con bibliotecas no seguras para subprocesos al ofrecer un conjunto de procedimientos reutilizables y garantizar que cada uno de los procedimientos solo administre una solicitud a la vez.

Este artículo explica cómo configurar el elemento FastCGI y PHP para alojar aplicaciones PHP en IIS 7 y superior. Aprenderá a instalar y utilizar el módulo FastCGI en Windows Server 2008 y Windows Vista SP1. Se requiere SP1 en Windows Vista.

Paso 1: Habilite la compatibilidad con FastCGI en IIS Windows Server 2008

Para hacer esto, abra el Administrador del servidor, navegue hasta Roles y desde allí busque Insertar servicios de rol. En la página Seleccionar servicios de función, seleccione la casilla de verificación CGI. Los servicios CGI y FastCGI están activados.

Cómo utilizar FastCGI para alojar aplicaciones PHP en IIS 7

Abra el Panel de control -> Programas y funciones -> Activar / desactivar funciones de Windows. En la pantalla Características de Windows, seleccione la casilla de verificación CGI. Los servicios CGI y FastCGI están activados.

Cómo utilizar FastCGI para alojar aplicaciones PHP en IIS 7

IMPORTANTE: Configure una actualización para el módulo FastCGI

La actualización para el módulo IIS FastCGI corrige algunos problemas de compatibilidad identificados con aplicaciones PHP famosas. Instale la actualización desde una de las siguientes ubicaciones:

  • Actualización para Windows Server 2008
  • Actualización para Windows Server 2008 x64 Edition
  • Actualización para Windows Server 2008 para sistemas basados ​​en Itanium
  • Actualización para Windows Vista SP1
  • Actualización para Windows Vista SP1 para sistemas basados ​​en x64

Paso 2: configurar el paquete de administración para IIS

Tenga en cuenta que esto no es obligatorio. El Paquete de administración de IIS tiene una interfaz de usuario conveniente para configurar los ajustes de FastCGI. El Paquete de administración se puede instalar desde las siguientes ubicaciones:

  • Paquete de administración para IIS 7 y superior – x86
  • Paquete de administración para IIS 7 y superior – x64

Paso 3: instale y configure PHP

Usar la compilación PHP sin subprocesos con IIS FastCGI es mejor, ya que ofrece mejoras de rendimiento notables sobre la estructura normal al omitir cualquier prueba de seguridad de subprocesos que sea innecesaria, ya que FastCGI garantiza una configuración de implementación de un solo subproceso.

Para configurar PHP:

PASO A: Descargue el último paquete zip no seguro para subprocesos con binarios de PHP: http://www.php.net/downloads.php.

PASO B: Descargue los archivos en cualquier directorio (por ejemplo, C: PHP). Cambie el nombre de archivo recomendado por php.ini a php.ini.

EP-C: abrir php.ini file. Luego, descomente la configuración de la siguiente manera:

  • Poner fastcgi.impersonate = 1. FastCGI en IIS admite la capacidad de suplantar el token de seguridad del cliente que llama. Esto permite que IIS describa el marco de seguridad bajo el cual se ejecuta la consulta.
  • Poner cgi.fix_pathinfo=1. Cgi.fix_pathinfo gives *real* PATH_INFO/PATH_TRANSLATED support a CGI. El rendimiento de PHP debe detenerse antes PATH_TRANSLATED to SCRIPT_FILENAME, y no ser definido PATH_INFO. Para obtener más información sobre PATH_INFO, consulte las especificaciones de cgi. Si establece este valor en 1, PHP CGI hará que sus rutas se corrijan para cumplir con las especificaciones.
  • Poner cgi.force_redirect = 0.
  • Poner open_basedir para especificar la carpeta donde se encuentra el contenido del sitio web.
  • Poner extension_dir para indicar la ubicación donde se encuentran las extensiones PHP. Normalmente, el valor de PHP 5.2.X se habría establecido en extension_dir = "./ext"
  • La extensión de PHP requerida debe activarse comentando las líneas coincidentes, por ejemplo:
extension=php_mssql.dll
extension=php_mysql.dll

Ingrese un comando, luego ejecute el siguiente comando para confirmar que la instalación de PHP fue exitosa:

Copia de consola

C:PHP>php -info

Una vez que PHP se haya instalado correctamente y todos sus requisitos estén en su lugar en el dispositivo, este comando generará la información de configuración de PHP existente.

Paso 4: configurar IIS para ejecutar consultas PHP

Para que el servicio de información de Internet pueda alojar aplicaciones PHP, es necesario insertar una asignación de controlador que notifique a IIS que reenvíe todas las consultas específicas de PHP a la estructura de la aplicación PHP utilizando el protocolo FastCGI.

Configuración de IIS para procesar consultas PHP utilizando IIS ManagerIS

PASO A: Inicie el administrador de IIS. Haga doble clic en Asignaciones de controladores de nivel de servidor.

Cómo utilizar FastCGI para alojar aplicaciones PHP en IIS 7

PASO B: En la ventana Acciones, toque Agregar asignación de módulo. En una nueva ventana, ingrese los siguientes ajustes de configuración:

  • Ruta de consulta: *.php
  • Módulo: FastCgiModule
  • Ejecutable: "C:[Path a su instalación de PHP]php-cgi.exe “
  • Apellido: PHP via FastCGI
  • PASO C: Toque Aceptar.

Cómo utilizar FastCGI para alojar aplicaciones PHP en IIS 7

PASO D: Haga clic en Sí en la ventana de verificación Agregar asociación de módulo que indica si desea crear una aplicación FastCGI para el ejecutable.

Cómo utilizar FastCGI para alojar aplicaciones PHP en IIS 7

PASOS: Verifique que el mapeo del controlador esté funcionando correctamente mediante a. para generar phpinfo.php file

haciendo C:inetpubwwwroot folder con el siguiente código:

XMLCopy

<?php phpinfo(); ?>

PASO F: Inicie el navegador y vaya a http://localhost/phpinfo.php. Siempre que todo esté configurado correctamente, debería ver la página de información normal de PHP.

Cómo utilizar FastCGI para alojar aplicaciones PHP en IIS 7

Nota algo

Si FastCgiModuledoesno aparecen en la lista de módulos, el módulo no está registrado o activado. Para probar si el módulo FastCGI está registrado / activado, abra el archivo de configuración de IIS en %windir%windowssystem32configapplicationHost.configy asegúrese de que la línea de abajo en el <globalModules>Sección:

XMLCopy

<add name="FastCgiModule" image="%windir%System32inetsrviisfcgi.dll" />
Also in that file, see that FastCGI module is included to <modules> section:
XMLCopy
<add name="FastCgiModule" />

PASO 5: Configure IIS para ejecutar consultas PHP usando la línea de comando

Por otro lado, puede realizar los pasos anteriores utilizando la herramienta de línea de comandos A ppCmd.

PASO A: Cree un grupo de procedimientos de aplicación FastCGI ingresando el siguiente comando:

Copia de consola

C:>%windir%system32inetsrvappcmd set config /section:system.webServer/fastCGI /+[fullPath="c:{php_folder}php-cgi.exe"]

PASO B: Cree un mapa de manejadores ingresando el siguiente comando:

Copia de consola

C:>%windir%system32inetsrvappcmd set config /section:system.webServer/handlers /+[name="PHP_via_FastCGI",path="*.php",verb='*',modules="FastCgiModule",scriptProcessor="c:{php_folder}php-cgi.exe",resourceType="Unspecified"]

Conclusión

FastCGI aborda los problemas de rendimiento que son intrínsecos a CGI al permitir que un dispositivo reutilice repetidamente un solo proceso para una gran cantidad de solicitudes. Además, FastCGI mantiene la compatibilidad con bibliotecas no protegidas por subprocesos al proporcionar un grupo de procesos reutilizables y garantizar que cada proceso solo maneje una solicitud a la vez. Si está usando PHP versión 4.X, puede usar php.exe en lugar de php-cgi.exe.

Echa un vistazo a estos 3 mejores servicios de hosting web