Exportar (0) Imprimir
Expandir todo

Configurar FastCGI para hospedar aplicaciones PHP (IIS 7)

Se aplica a: Windows 7, Windows Server 2008, Windows Server 2008 R2, Windows Vista

Internet Information Services (IIS) 7.0 agrega compatibilidad con el protocolo FastCGI, que mejora el rendimiento y la confiabilidad de marcos de trabajo de aplicaciones muy usadas, como PHP, que se hospedan en un servidor web IIS. FastCGI proporciona una alternativa de alto rendimiento al protocolo Common Gateway Interface (CGI), una forma estándar para actuar de interfaz entre las aplicaciones externas y los servidores web.

IIS 7 para Windows Server® 2008 y Windows Vista® con Service Pack 1 (SP1) incluyen ahora un componente FastCGI integrado. Este tema describe cómo usar el módulo FastCGI para hospedar aplicaciones PHP en IIS 7, en Windows Server 2008 y Windows Vista con SP1.

Importante: este tema ofrece instrucciones acerca de cómo instalar y usar el componente FastCGI en Windows Server 2008 y Windows Vista con SP1. No hay un componente FastCGI admitido oficialmente para Windows Vista (no SP1). Se recomienda encarecidamente actualizar a Windows Vista con SP1 si tiene que usar el componente FastCGI en el sistema operativo Windows Vista.

Habilitar la compatibilidad con FastCGI en IIS 7.0, en Windows Server 2008

Para habilitar la compatibilidad con FastCGI en IIS 7.0, en Windows Server 2008

  1. Abra el Administrador de servidores.

  2. En el panel derecho, en Resumen de roles, haga clic en Agregar roles.

  3. Utilice el Asistente para agregar roles para seleccionar el servicio de rol CGI. De esta forma se habilitan tanto el servicio CGI como FastCGI.

Habilitar la compatibilidad con FastCGI en IIS 7.0, en Windows Vista SP1

Para habilitar la compatibilidad con FastCGI en IIS 7.0, en Windows Vista SP1

  1. Vaya al menú Inicio de Windows y abra el Panel de control.

  2. Haga doble clic en Programas y características.

  3. Haga clic en Activar o desactivar las características de Windows.

  4. En el cuadro de diálogo Características de Windows, expanda sucesivamente Internet Information Services, World Wide Web Services, Características de desarrollo de aplicaciones y, después, seleccione CGI. Haga clic en Aceptar.

  5. Instale la actualización del módulo FastCGI desde alguna de las ubicaciones siguientes. Esta actualización corrige varios problemas de compatibilidad conocidos con las aplicaciones PHP más usadas.

Instalar y configurar PHP

Se recomienda que use una compilación no segura para subprocesos de PHP con FastCGI de IIS 7. Una compilación no segura para subprocesos de PHP proporciona mejoras significativas en el rendimiento con respecto a la compilación estándar, ya que no realiza ninguna comprobación de seguridad para los subprocesos. Estas comprobaciones no son necesarias porque FastCGI garantiza un entorno de ejecución con un solo subproceso.

Para instalar PHP

  1. Vaya al sitio web de PHP y descargue los archivos binarios no seguros para subprocesos de PHP.

  2. Descomprima los archivos en el directorio que prefiera, por ejemplo, C:\PHP. Cambie el nombre del archivo Php.ini-recommended a Php.ini

  3. Abra el archivo Php.ini y, después, quite las marcas de comentario de las opciones y modifíquelas como se indica a continuación:

    1. Establezca fastcgi.impersonate = 1. FastCGI en IIS permite la capacidad de suplantar los tokens de seguridad del cliente que realiza la llamada. De este modo, IIS puede definir el contexto de seguridad en el que se ejecuta la solicitud.

    2. Establezca cgi.fix_pathinfo=1. cgi.fix_pathinfo proporciona compatibilidad real de PATH_INFO/PATH_TRANSLATED con CGI. El comportamiento anterior de PHP era establecer PATH_TRANSLATED en SCRIPT_FILENAME y omitir esa configuración en PATH_INFO. Para obtener más información acerca de PATH_INFO, vea las especificaciones de CGI. Al establecer el valor de PATH_INFO en 1, PHP CGI hará coincidir sus rutas de acceso con la especificación.

    3. Establezca cgi.force_redirect = 0.

    4. Establezca open_basedir para que señale a una carpeta o ruta de acceso de red en la que se encuentre el contenido del sitio web.

  4. Para probar si la instalación de PHP es correcta, escriba lo siguiente en un símbolo del sistema:

    C:\PHP>php –info

    Si PHP se instaló correctamente y todas sus dependencias están disponibles en el equipo, este comando mostrará la información de configuración de PHP actual.

Configurar IIS 7.0 para tratar las solicitudes PHP con la interfaz de usuario

Para que IIS 7 hospede las aplicaciones PHP, debe agregar una asignación de controlador que le indique a IIS que pase todas las solicitudes de archivos PHP al marco de trabajo de aplicación PHP usando el protocolo FastCGI.

Para agregar una asignación de controlador en el nivel de servidor usando la interfaz de usuario

  1. Abra Administrador de IIS y, después, pase al nivel de servidor.

  2. Haga doble clic en Asignaciones de controlador.

  3. En el panel Acciones, haga clic en Agregar asignación de módulo.

  4. En el cuadro de diálogo Agregar asignación de módulo, especifique las opciones de configuración de la forma siguiente:

    • Ruta de acceso de la solicitud: *.php

    • Módulo: FastCgiModule

    • Ejecutable: C:\[ruta de acceso a su instalación de PHP]\php-cgi.exe

    • Nombre: PHPviaFastCGI

  5. Haga clic en Aceptar.

  6. En el cuadro de diálogo en el que se pide la confirmación para crear una aplicación FastCGI para el ejecutable, haga clic en .

  7. Para comprobar que la asignación de controlador funciona correctamente, cree un archivo Phpinfo.php en la carpeta C:\inetpub\wwwroot que contiene lo siguiente:

    <?php phpinfo(); ?>

  8. Abra un explorador web y, después, navegue a http://localhost/phpinfo.php. Si todo se configuró correctamente, verá la página de información de PHP estándar.

Configurar IIS 7.0 para tratar las solicitudes PHP con la línea de comandos

También puede usar Appcmd.exe para agregar una asignación de controlador.

Para agregar una asignación de controlador en el nivel de servidor usando la línea de comandos

  1. Para crear un grupo de procesos de aplicación FastCGI, ejecute el siguiente comando:

    C:\>%windir%\system32\inetsrv\appcmd set config /section:system.webServer/fastCgi /+[fullPath='c:\{php_folder}\php-cgi.exe']

  2. Para crear la asignación de controlador, ejecute el siguiente comando:

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

    Nota: si usa la versión 4.x de PHP, en lugar de Php-cgi.exe, puede usar Php.exe.

Configurar el comportamiento de reciclaje de PHP y FastCGI

Asegúrese de que FastCGI siempre recicla los procesos Php-cgi.exe antes de que se inicie el reciclaje original de PHP. La propiedad de configuración instanceMaxRequests controla el comportamiento de reciclaje de procesos de FastCGI. Esta propiedad especifica cuántas solicitudes procesará FastCGI antes de reciclar. PHP también tiene una funcionalidad de reciclaje de procesos similar que se controla con la variable de entorno PHP_FCGI_MAX_REQUESTS. Si establece instanceMaxRequests en un valor menor o igual que PHP_FCGI_MAX_REQUESTS, puede asegurarse de que la lógica de reciclaje de procesos original de PHP no se inicia nunca.

Para establecer estas propiedades de configuración, use los comandos siguientes:

C:\>%windir%\system32\inetsrv\appcmd set config -section:system.webServer/fastCgi /[fullPath='c:\{php_folder}\php-cgi.exe'].instanceMaxRequests:10000

C:\>%windir%\system32\inetsrv\appcmd set config -section:system.webServer/fastCgi /+[fullPath='c:\{php_folder}\php-cgi.exe'].environmentVariables.[name=’PHP_FCGI_MAX_REQUESTS’, value='10000']

Nota: si estos parámetros no se han establecido, se usarán las siguientes opciones predeterminadas (o la mayor parte de las compilaciones de PHP): instanceMaxRequests = 200, PHP_FCGI_MAX_REQUESTS = 500.

¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft