INSTALACIÓN MANUAL DE IIS CON PHP

INSTALACIÓN MANUAL DE IIS CON PHP | OTRAS CONFIGURACIONES ADICIONALES OPCIONALES | INSTALACIÓN DE IIS CON PHP USANDO WEB PI

Activar / Instalar IIS en Windows Server 2008 R2

  • Internet Information Server (IIS) no viene activado por defecto en la instalación de Windows Server 2008 R2, por lo que habrá que activarlo manualmente.
  • Para ello, nos dirigimos a Inicio > Herramientas Administrativas > Administración del servidor. Hacemos clic donde pone “Agregar roles” en la sección “Resumen de roles”.

p1.png

22.png
  • Seguimos el asistente y buscamos Internet Information Server (IIS) en la lista que se nos despliega.
    • Hemos de tener en cuenta que para poder usar PHP completamente, deberemos activar también la instalación del módulo CGI de IIS (ya que PHP puede funcionar sobre __FastCGI__).


p3.png


Pulsar siguiente en el resto de la instalación con las opciones que aparecen por defecto. El resultado final es:

res.png

Activar FastCGI para poder usar PHP si IIS ya está instalado


  • Vamos a Inicio > Ejecutar…, escribimos “CompMgmtLauncher” (sin las comillas) y ejecutamos. También podemos hacerlo a través de Inicio > Herramientas Administrativas > Administración del servidor.
  • En la sección Roles, buscamos la parte de IIS y le damos a “Agregar servicios de rol”.

p4.png

  • En la sección “Desarrollo de aplicaciones”, activamos la opción “CGI” e instalamos.

p5.png


p6.png


El resultado de la instalación es:

res2.png


Descargar e instalar PHP en IIS para Windows Server 2008 R2


  • Descargamos los binarios de PHP para Windows. Es recomendable usar las versiones Non-Thread-Safe si vamos a trabajar con IIS. Los binarios se pueden descargar __aquí__.
  • Hemos de tener en cuenta que Windows Server 2008 R2 instala IIS 7.5. La recomendación de la PHP Foundation es que para esta versión consigamos una versión VC9 Non Thread Safe, por lo que en este caso la versión recomendada de PHP sería la 5.4.3 x86 VC9 NTS (enlace directo __aquí__). En cualquier caso, es recomendable consultar las recomendaciones de la PHP Foundation disponibles __en su documentación oficial__.
    • Es importante recordar que, como vamos a instalar una versión VC9, necesitaremos tener instaladas la Microsoft 2008 C++ Runtime Library y la Visual C++ Redistributable for Visual Studio (y sus actualizaciones), ya sea en versión x86 o x64, dependiendo de la arquitectura de nuestro sistema.
  • Una vez descargado el archivo .zip, lo descomprimimos donde consideremos; por ejemplo, en C:\php.
    • Es recomendable instalar PHP en un directorio que no contenga caracteres especiales ni espacios en su nombre para evitar posibles errores.

Configurando las directivas PHP y FastCGI


  • Deberemos editar el fichero php.ini disponible en la raíz de la carpeta donde hayamos instalado PHP; en este ejemplo, la ruta completa sería C:\php\php.ini.
    • Si no encontramos el fichero php.ini, podemos hacer una copia de uno de los siguientes ficheros: php.ini-production o php.ini-development y renombrarlos a php.ini. Renombrar el fichero php.ini-development nos dejará un fichero con las opciones básicas, mientras que optar por renombrar php.ini-production nos activará las opciones recomendadas.
  • Debemos tener en cuenta que cada directiva PHP va en una sola línea.
  • La directiva extension_dir es una de las más importantes. Es la que indica la carpeta donde están contenidas las extensiones de PHP que darán soporte a diferentes servicios y funcionalidades. Por defecto, están en la carpeta ext/ que se encuentra en la raíz de la instalación de PHP.
    • Además de especificar esta directiva, también podemos usar cuantas directivas extension = xxx necesitemos para activar módulos manualmente.
  • Otra directiva que merece la pena configurar es log_errors, que debería estar en On si queremos información de los errores. El archivo en el que se guardará esta información puede ser configurado a través de la directiva error_log.
  • Veamos algunas de las directivas que son necesarias para funcionar sobre IIS:
    • cgi.force_redirect = 0. Si está a 1 el motor de PHP no arrancará.
    • cgi.fix_pathinfo = 1. Imprescindible si vamos a implementar IIS con FastCGI.
    • fastcgi.impersonate = 1. Para establecer el contexto de seguridad del entorno.
    • fastcgi.logging = 0. El logging debe estar desactivado o recibiremos excepciones en el servidor web de tipo HTTP 500.
En __esta dirección web__ se puede encontrar más información sobre php.ini (en inglés).


Añadiendo la localización de nuestro php.ini a las variables de entorno


    • Este proceso es importante porque si no el sistema no tendría manera de saber de dónde leer la configuración para poder ejecutar PHP. Por defecto, PHP busca el fichero php.ini en diversas localizaciones, pero en cualquier caso podemos añadir nosotros la nuestra propia a las variables de entorno; en concreto, tendremos que modificar la variable de entorno PHPRC. Para acceder a las Variables de Entorno, haremos Clic derecho en Este Equipo en cualquier ventana del Explorador de Windows, pincharemos en Propiedades y, en la nueva ventana, buscaremos Configuración Avanzada del Sistema y pincharemos ahí. En la ventana que se abre, pincharemos en el botón Variables de entorno... y, en la nueva ventana que se despliega, procederemos a añadir esta variable PHPRC. Dependiendo de lo que necesitemos para el desarrollo, la crearemos sólo para nuestro usuario o para el sistema completo (cualquier usuario). En el ejemplo, el valor de la variable de entorno PHPRC sería C:\php.

entorno.png

  • Lo podemos hacer también ejecutando el siguiente comando: appcmd.exe set config -section:system.webServer/fastCgi ^/+"[fullPath='C:\php\php.exe',arguments=''].environmentVariables.^
[name='PHPRC',value='C:\Un\Directorio\']" /commit:apphost

(En el comando anterior, sustituiremos C:\Un\Directorio\ por la raíz de la carpeta donde esté localizado nuestro php.ini; en el caso de este ejemplo, usaríamos C:\php\).


Creando un control de asignaciones para PHP



  • Nos dirigimos a Inicio > Ejecutar…, escribimos “inetmgr” (sin las comillas) y ejecutamos.
  • De la lista de Conexiones disponibles a la izquierda, seleccionamos la que corresponda a nuestro servidor.
  • Buscamos la opción “Asignaciones de controlador” y hacemos doble clic.

p7.png

  • En el panel de Acciones disponible a la derecha hacemos clic en la opción “Agregar asignación de módulo…”.

p9.png

  • Rellenamos el formulario que nos aparece en una ventana emergente con los siguientes datos:
    • Ruta de acceso de solicitudes: .php
    • Módulo: FastCgiModule
    • Ejecutable (opcional): C:\php\php-cgi.exe (donde sustituimos la ruta C:\php con la que hayamos escogido para nuestra instalación de PHP).
    • Nombre: PHP_via_FastCGI


  • Pulsamos en “Restricción de solicitudes”. En la ventana que se abre, marcamos la opción “Invocar controlador sólo si…”, y elegimos la opción “Archivo o carpeta”.

p10.png


OTRAS CONFIGURACIONES ADICIONALES OPCIONALES

Configurando un sitio personalizado y gestionando los permisos (Opcional)


  • Para crear un sitio personalizado, nos dirigiremos al Administrador del Servidor, accesible a través de la barra de tareas o yendo a Inicio > Ejecutar… y tecleando “CompMgmtLauncher” (sin las comillas).
  • En la pestaña “Roles”, elegiremos Servidor web (IIS) en la sección “Resumen de roles”.

p11.png

  • Desplegamos también esta pestaña y pinchamos en la opción “Administrador de Internet Information Server (IIS) del menú de la izquierda.
  • Seleccionamos el nodo correspondiente a nuestro servidor y desplegamos la pestaña “Sitios”.
  • Hacemos clic derecho sobre “Sitios” y pinchamos en “Agregar sitio web”.

p12.png

  • En la ventana que nos aparece, escogeremos un nombre para nuestro sitio, la ruta física donde se encuentran los archivos que compondrán el sitio web, y el nombre de host que usará IIS para reconocerlo (por ejemplo, __mispruebasIIS.net__). Debemos recordar que este alias sólo funcionará internamente, no en Internet.

p13.png

  • Una vez creado, podemos seleccionar nuestro sitio creado, hacer clic derecho y seleccionar la opción “Editar permisos”. Nos dirigimos a la pestaña “Seguridad” y buscamos el usuario IIS_IUSR. Lo marcamos haciendo clic sobre él.
  • Finalmente, pinchamos en el botón Editar y asignamos o retiramos los permisos que veamos convenientes. Aplicamos y aceptamos para salir.
    • Puede ser necesario un reinicio del servidor IIS para que todos los cambios se apliquen correctamente.



Configurando los permisos de acceso al sistema de archivos (Opcional)


  • Podemos usar el siguiente comando:
    • icacls C:\inetpub\wwwroot\upload /grant IUSR:(OI)(CI)(M)
    • (En el comando de arriba, sustituir “C:\inetpub\wwwroot\upload” con la carpeta sobre la que queramos tener permisos de escritura o modificación de archivos. Este comando se puede repetir tantas veces sea necesario.
    • Para obtener más información sobre este proceso, podemos ejecutar cmd.exe y ejecutar icacls.exe, lo que desplegará la ayuda del comando.
  • Debemos asegurarnos siempre de que las carpetas sobre las que queramos escribir o modificar archivos o carpetas puedan hacerlo. Para ello, haremos clic derecho en la carpeta y seleccionaremos Propiedades. Si la opción de “Sólo lectura” está marcada, la desmarcaremos y lo aplicaremos también a todas sus subcarpetas y archivos si fuese necesario. Finalmente, deberemos asegurarnos de que en la pestaña Seguridad, el usuario/grupo IUSR y/o IIS_IUSR tienen permisos completos de escritura y modificación (explicado en la sección previa).


Configurando IIS para que considere index.php como archivo por defecto (Opcional)


  • Ejecutamos el siguiente comando:
    • %windir%\system32\inetsrv\appcmd.exe set config ^
-section:system.webServer/defaultDocument /+"files.[value='index.php']" ^
/commit:apphost



Otras opciones de configuración


  • También podemos configurar IIS/PHP para controlar, por ejemplo, la carga máxima que permitimos a nuestro servidor, el límite de usuarios concurrentes o el timeout máximo de un script PHP por si tuviésemos que ejecutar scripts muy largos, por ejemplo.
  • Se puede consultar la documentación completa sobre estos otros aspectos de la instalación de PHP en IIS para Windows en __la página oficial de PHP__.



INSTALACIÓN DE IIS CON PHP USANDO WEB PI



La manera más sencilla para instalar el resto del Microsoft Web Platform es usando el Microsoft Web Platform Installer (Web PI), una herramienta gratuita que hará más fácil obtener los últimos componentes de Microsoft Web Platform, incluyendo Internet Information Services (IIS), Microsoft SQL Server Express, Microsoft .NET Framework y Microsoft Visual Web Developer.

Microsoft Web Platform Installer



El Web PI hace mucho más sencillo descargar, instalar y mantenerte actualizado con los últimos componentes software de Microsoft Web Platform para desarrollo sobre Windows. Web PI hace el trabajo de comparar los componentes disponibles más actualizados en Microsoft Web Platform con lo que ya tienes instalado en tu ordenador; puedes ver los componentes nuevos y los que aún no tienes instalados. Puedes usar Web PI para aprender sobre diferentes componentes e instalar uno o más componentes en una instalación encadenada haciendo que Web PI controle los reinicios y fallos de logging donde sean necesarios. La opción actual disponible de componentes software incluye Microsoft WebMatrix, Internet Information Services (IIS), las últimas versiones de PHP 5.2 y PHP 5.3, Microsoft SQL Server 2008 R2 Express, Microsoft .NET Framework y Microsoft Visual Web Developer 2010 Express Edition con Service Pack 1.

Para instalar Web PI es necesario uno de estos sistemas operativos instalados:



  • Windows Server 2008 R2 o Windows Server 2008
  • Windows Server 2003 Service Pack 2
  • Windows Vista Service Pack 2
  • Windows XP Service Pack 3
  • Windows 7


Descargar el Web PI del siguiente enlace http://www.microsoft.com/web/downloads/platform.aspx

descarga.png


Web PI comienza con un panel que te muestra los productos “del momento” que piensa que serán más atractivos para los usuarios.


inicio.png


Web PI separa los componentes que puedes instalar en 2 categorías: PRODUCTOS y APLICACIONES.



En la categoría de PRODUCTOS puedes encontrar todos los componentes que necesitas para construir y mantener un sitio web. La pestaña de APLICACIONES muestra toda la colección de aplicaciones open-source que se pueden usar para desarrollar tus sitios.


Web PI simplifica la instalación de los componentes Web del servidor :


  • Configurando automáticamente los componentes del IIS Web server que trae Windows
  • “Descubriendo” automáticamente las IIS Extensions


Para ver los componentes de la instalación para IIS no hay más que buscar IIS o para realizar la instalación recomendada buscar Configuración Recomendada de IIS7.

IIS recomendada.png


Al pulsar en Agregar se habilita el botón Instalar. Pulsamos Instalar y comienza la instalación de la configuración recomendada. El resultado de la instalación es el siguiente:

recomendado instalado.png

Vemos que esta instalación no incluye el módulo WFastCGI, por lo que hemos de buscarlo en el instalador. Seleccionamos WFastCGI 2.1 Gateway for IIS and Python 3.4.

wfastcgi.png

Buscamos también la versión de PHP que queremos instalar.

php.png

Comprobamos que tenemos 3 elementos para instalar ( el módulo WFastCGI y la versión de PHP). Pulsamos Instalar.

inst php wfastcgi.png


El resultado de la instalación es el siguiente:

php wfastcgi instalado.png