Microsoft IIS 5.1 y IIS 6.0
Esta sección contiene instrucciones para configurar en forma manual Internet Information
Services (IIS) 5.1 y IIS 6.0 para trabajar con PHP en Microsoft Windows XP y Windows
Server 2003. Para obtener instrucciones sobre la configuración de IIS 7.0 y versiones posteriores de Windows
Vista , Windows Server 2008, Windows 7 y Windows Server 2008 R2 referirse a
Microsoft IIS 7.0 y posteriores.
Configurar IIS para procesar solicitudes de PHP
Descarga e instala PHP de acuerdo a las instrucciones descritas en
manual detallado de instalación
Nota:
Non-thread-safe build de PHP se recomienda cuando se utiliza IIS. Non-thread-safe
builds están disponibles en » PHP para Windows:
Binarios y Fuentes.
Configure el CGI- y configure FastCGI-specific en el archivo php.ini como se muestra a continuación:
Ejemplo #1 Configuración CGI y FastCGI en php.ini
fastcgi.impersonate = 1
fastcgi.logging = 0
cgi.fix_pathinfo=1
cgi.force_redirect = 0
Descargue e instale » Microsoft FastCGI extensión para IIS 5.1 y 6.0.
La extensión está disponible para 32-bit y plataformas de 64-bit - seleccionar el paquete de descarga adecuada para la plataforma.
Configure la extensión FastCGI para manejar las solicitudes específicas de PHP ejecutando el comando que se muestra a continuación.
Vuelva a colocar el valor de el parámetro "-path" con la ruta absoluta del fichero en el fichero
php-cgi.exe.
Ejemplo #2 Configuración de la extensión FastCGI para manejar las solicitudes de PHP
cscript %windir%\system32\inetsrv\fcgiconfig.js -add -section:"PHP" ^
-extension:php -path:"C:\PHP\php-cgi.exe"
Este comando creará un script de mapeo IIS para el fichero de extensión *.php , lo que resultará en todas las URLs
que terminan con .php siendo manejado por la extensión FastCGI. Asimismo, se configurará la extensión FastCGI a
usar en el ejecutable php-cgi.exe para procesar las solicitudes de PHP.
Nota:
En este punto la necesidad de instalación y configuración de los pasos se han completado. El resto de
instrucciones a continuación son opcionales, pero altamente recomendable para lograr una funcionalidad óptima
y el rendimiento de PHP en IIS.
Suplantación y acceso a ficheros del sistema
Se recomienda habilitar la suplantación FastCGI en PHP cuando este utilizando IIS. Esto
es controlado por la directiva fastcgi.impersonate en el fichero php.ini. Cuando
suplantación está activado, PHP realizará todas las operaciones de ficheros de sistema en
favor de la cuenta de usuario que se ha determinado por la autentificación de IIS. Esta
asegura que, incluso si el mismo proceso PHP se comparte entre diferentes sitios web IIS,
los scripts PHP en estos sitios web no podrá acceder a los
otros fichero ' siempre y cuando use cuentas de usuario diferentes utilizado para la autenticación IIS
en cada sitio web.
Por ejemplo IIS 5.1 and IIS 6.0, en su configuración predeterminada, se ha habilitado la autenticación anónima
con una función de cuenta de usuario IUSR_<MACHINE_NAME> utilizado como una identidad por defecto. Esto significa que
para que IIS puede ejecutar scripts PHP, es necesario concedera la cuenta IIUSR_<MACHINE_NAME>
permiso de lectura en estos scripts. Si las aplicaciones PHP necesitan realizar operaciones de escritura sobre determinados ficheros o
escribir ficheros en algunas carpetas a continuación la cuenta IUSR_<MACHINE_NAME> debe tener permiso para escribir en ellos.
Para determinar qué cuenta de usuario es utilizado por IIS autenticación anónima, siga estos pasos:
-
En el menú Inicio de Windows seleccione "Run:", type "inetmgr" y haga clic en "Ok";
-
Expanda la lista de sitios web en el nodo "Web Sites" en la vista de árbol, haga clic derecho en el sitio web
que se está utilizando y seleccionar "Properties";
-
Haga clic en "Directory Security" tab;
-
Tome nota de un "User name:" campo en el cuadro de dialogo "Authentication Methods"
Para modificar la configuración de permisos en ficheros y carpetas, utilice la interfaz de usuario de el Explorador de Windows
o el comando icacls.
Ejemplo #3 Configuración del fichero de los permisos de acceso
icacls C:\inetpub\wwwroot\upload /grant IUSR:(OI)(CI)(M)
Establecerindex.php como un documento predeterminado en IIS
Los documentos por defecto de IIS se utilizan para las solicitudes HTTP que no especifican un nombre de documento. Con las aplicaciones PHP,
index.php suele actuar como un documento predeterminado. Para añadir index.php a la lista de
documentos predeterminados IIS, siga estos pasos:
-
En el menú Inicio de Windows seleccione "Run:", teclee "inetmgr" y haga clic en "Ok";
-
Haga clic derecho en el nodo ""Web Sites" de la vista de árbol y seleccione "Properties";
-
Haga clic en "Documents" tab;
-
Haga clic en el botón "Add..." y enter en "index.php" para el " Contenido de la página por defecto :".
FastCGI y Reciclaje de configuración de PHP
Configurar la extensión IIS FastCGI para el reciclaje de procesos PHP utilizando los comandos de abajo.
Los controles de configuración de FastCGI instanceMaxRequests número de solicitudes que serán procesadas por un solo proceso
php-cgi.exe antes de el cierre de la extensión FastCGI. La variable PHP de entorno
PHP_FCGI_MAX_REQUESTS controla cuántas peticiones de un único proceso php-cgi.exe
se encargará antes de que se recicle así mismo. Asegúrese de que el valor especificado por la configuración FastCGI InstanceMaxRequests
es menor o igual al valor especificado para PHP_FCGI_MAX_REQUESTS.
Ejemplo #4 Configuración FastCGI y reciclaje PHP
cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^
-InstanceMaxRequests:10000
cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^
-EnvironmentVars:PHP_FCGI_MAX_REQUESTS:10000
Configuración de los ajustes de tiempo de espera FastCGI
Aumentar la configuración de tiempo de espera para la extensión FastCGI si hay aplicaciones que llevan mucho tiempo ejecutar scripts PHP.
Los dos valores a ajsutar de los controles de tiempos de espera son ActivityTimeout y RequestTimeout.
Véase » Configuración de Extensión FastCGI para IIS 6.0 para más
información sobre los ajustes.
Ejemplo #5 Configuración de los ajustes de tiempo de espera FastCGI
cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^
-ActivityTimeout:90
cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^
-RequestTimeout:90
Cambiar la ubicación del fichero php.ini
PHP busca para el fichero php.ini en
varios lugares y es
posible cambiar las ubicaciones predeterminadas de el fichero php.ini
utilizando la variable de entorno PHPRC. Las instrucciones PHP
para cargar el fichero de configuración desde una ubicación personalizada, ejecute el comando que se muestra a continuación.
La ruta de acceso absoluta al directorio con el fichero php.ini debe ser
especifica con un valor de variable de entorno PHPRC.
Ejemplo #6 Cambiar la ubicación del fichero php.ini
cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^
-EnvironmentVars:PHPRC:"C:\Some\Directory\"