Como instalar PHP sobre IIS Express 10 en Windows 11

Vamos a aprender a instalar PHP sobre IIS Express de manera manual. Claro que hay otras formas de hacerlo, como mediante Web Platform Installer (Web PI) . Pero yo considero que manualmente es la mejor forma de hacerlo si eres desarollador; pues así sabrás exactamente donde están tus archivos de configuración e instalación.

Paso 1: Descargar e instalar IIS Express 10

Si tenemos instalado Visual Studio, generalmente IIS Express debería estar instalado en nuestra computadora. Para verificarlo, debemos escribir Win + R y la ruta C:\Program Files\IIS Express. Ahí podemos asegurarnos que sea la versión 10 dando clic derecho sobre el archivo iisexpress.exe y luego Propiedades.

En caso de no tener instalado IIS Express, hay que descargarlo e instalarlo desde el sitio oficial de IIS Express.

Verificar de seleccionar la versión de 64 bits en español.

En caso de tenerlo instalado, nos aparecerá una leyenda indicando que se encontró una versión en el equipo.

Paso 2: Descargar PHP

PHP se encuentra disponible para descargar gratuitamente desde su sitio oficial para Windows. Aseguráte de descargar la versión deseada. En este caso será la versión PHP 8.2 (8.2.12).

Es importante que eligas la versión VC15 x64 Non Thread Safe que es la que funciona con FastCGI de IIS Express. Finalmente elegimos el archivo Zip y lo descargamos en nuestro equipo.

Descargar Visual C++ Redistributable

La versión VC15 de PHP requiere tener instalado el Visual C++ Redistributable for Visual Studio 2015-2019 x64. Si no lo tienes ya instalado en tu equipo, descárgalo desde la misma página de descargas de PHP para Windows.

Instálalo y si lo solicita, reinicia tu equipo antes de seguir con el siguiente paso.

Paso 4: Configurar PHP en Windows

Extrae el archivo Zip descargado en el paso anterior y renombra la carpeta a v8.2 (por la versión descargada de PHP).

Colócate en la carpeta de IIS Express C:\Program Files\IIS Express y crea la carpeta PHP. Nota: A IIS Express le gusta colocar a PHP dentro de esta ruta, pero puedes colocarlo en cualquier otra parte.

Finalmente copia la carpeta v8.2 dentro de la carpeta PHP.

Archivo de configuración de PHP

Dentro de la carpeta de configuración de PHP C:\Program Files\IIS Express\PHP\v8.2., copia y pega el archivo php.ini-development.

Renómbralo como php.ini. Este es el nombre que a PHP le gusta para su archivo de configuración.

Abre el archivo php.ini en el bloc de notas o Visual Studio Code. Al final del archivo, agrega la ruta de la carpeta de extensiones.

; Esto le dice a PHP donde estan las extensiones
extension_dir = "ext"

En caso de necesitar alguna extensión, se puede agregar debajo de esta línea.

Agrega las siguientes dos extensiones:

[ExtensionList]
extension=php_mysqli.dll

[OPCACHE]
zend_extension=php_opcache.dll

Agregar PHP al PATH de Windows

Botón derecho en el menú inicio de Windows, luego hacer clic en Sistema y luego hacer clic en Configuración avanzada del sistema.

En la ventana Propiedades del sistema, selecciona la pestaña Opciones avanzadas y luego clic en Variables de entorno.

En Variables del sistema, selecciona Path y luego haga clic en Editar. Clic en Nuevo y agrega la ruta a la carpeta de instalación de PHP C:\Program Files\IIS Express\PHP\v8.2.

Clic en Aceptar.

Paso 5: Configurar PHP en IIS Express

Para que IIS Express reconozca los scripts de PHP, debemos agregar un manejador para extensiones *.php con el módulo FastCgi de IIS Express.

Esto se hace editando el archivo de configuración de IIS Express en la ruta: %userprofile%\Documents\IISExpress\config\applicationhost.config.

Preferentemente este archivo no se edita manualmente. IIS Express proporciona una herramienta de línea de comandos: C:\Program Files\IIS Express\appcmd.exe.

Crea un archio llamado instala-php.bat. Copia y pega el código que esta más abajo. Asegúrate de que la primer variable que apunte a la carpeta de tu instalación de PHP. Abre una ventana de comandos en la ubicación de este archivo instala-php.bat y ejecutalo.

@echo off

REM Configuración de PHP en IIS Express

REM Descargar la compilación de PHP desde Web Platform Installer o el archivo zip desde http://windows.php.net/downloads/

REM Ruta SIN COMILLAS al directorio donde se ha descomprimido o instalado la carpeta de PHP
set phppath=C:\Program Files\IIS Express\PHP\v8.2

REM Ruta CON COMILLAS de PHP para concatenar variables string
set phppath2="%phppath%"

REM Limpiar los manejadores actuales de PHP
"C:\Program Files\IIS Express\appcmd" clear config /section:system.webServer/fastCGI
REM El siguiente comando generará un mensaje de error si PHP no está instalado. Esto puede ser ignorado.
"C:\Program Files\IIS Express\appcmd" set config /section:system.webServer/handlers /-[name='PHP_via_FastCGI']

REM Instalar el manejador de PHP
"C:\Program Files\IIS Express\appcmd" set config /section:system.webServer/fastCGI /+[fullPath='%phppath2%\php-cgi.exe']
"C:\Program Files\IIS Express\appcmd" set config /section:system.webServer/handlers /+[name='PHP_via_FastCGI',path='*.php',verb='*',modules='FastCgiModule',scriptProcessor='%phppath2%\php-cgi.exe',resourceType='Unspecified']
"C:\Program Files\IIS Express\appcmd" set config /section:system.webServer/handlers /accessPolicy:Read,Script

REM Configurar las variables de FastCGI
"C:\Program Files\IIS Express\appcmd" set config -section:system.webServer/fastCgi /[fullPath='%phppath2%\php-cgi.exe'].monitorChangesTo:php.ini
"C:\Program Files\IIS Express\appcmd" set config -section:system.webServer/fastCgi /[fullPath='%phppath2%\php-cgi.exe'].activityTimeout:600
"C:\Program Files\IIS Express\appcmd" set config -section:system.webServer/fastCgi /[fullPath='%phppath2%\php-cgi.exe'].requestTimeout:600
"C:\Program Files\IIS Express\appcmd" set config -section:system.webServer/fastCgi /[fullPath='%phppath2%\php-cgi.exe'].instanceMaxRequests:10000
"C:\Program Files\IIS Express\appcmd".exe set config -section:system.webServer/fastCgi /+"[fullPath='%phppath%\php-cgi.exe'].environmentVariables.[name='PHP_FCGI_MAX_REQUESTS',value='10000']"
"C:\Program Files\IIS Express\appcmd".exe set config -section:system.webServer/fastCgi /+"[fullPath='%phppath%\php-cgi.exe'].environmentVariables.[name='PHPRC',value='%phppath%\php.ini']"

REM Agrega index.php como documento default
"C:\Program Files\IIS Express\appcmd" set config /section:defaultDocument /-files.[value='index.php']
"C:\Program Files\IIS Express\appcmd" set config /section:defaultDocument /+files.[value='index.php']

Asegúrate de que la primer variable que apunte a tu instalación de PHP:

REM Ruta SIN COMILLAS al directorio donde se ha descomprimido o instalado la carpeta de PHP
set phppath=C:\Program Files\IIS Express\PHP\v8.2

Si no se ha instalado PHP previamente, la primera línea va a mandar un error de elemento no encontrado. Este error es esperado y normal.

Paso 6: Prueba tu instalación de PHP

Descarga el SystemInstaller de Visual Studio Code de 64 bits desde la página de Visual Studio Code.

Crea tu espacio de trabajo en Visual Studio Code

Crea una carpeta llamada Prueba PHP.

Y luego clic derecho en Abrir con Visual Code.

Instala la extensión IIS Express

Dentro del programa colocáte en el menú izquierdo de Extensions, escribe IIS Express y clic en Install.

Crea tu primer página PHP

En el menú izquierdo de Explorer, crea un nuevo archivo llamado index.php.

Y escribe el código para mostrar información de PHP dentro de index.php:

<?php phpinfo(); ?>

La extensión IIS Express agrega automáticamente un puerto (modificable en una carpeta local llamada .vscode) y la ruta del sitio web al archivo de configuración de IIS Express solo durante el tiempo que se inicia el IIS Express.

Inicia el sitio Web

Ya tenemos todo listo. Para iniciar el sitio web en IIS Express de la carpeta Prueba PHP, solo basta con clic en Start WebSite.

Se abrira nuestro navegador predeterminado y podremos verificar que el sitio con la información de nuestra instalaación de PHP se muestra correctamente.

Para detener el sitio web hay que hacer clic en Stop Website.

Al presionar Stop Website, las líneas de código agregadas para el sitio web, se eliminan del archivo de configuración del IIS Express.

Si queremos modificar el puerto, versión del runtime (v2.0 | v4.0) o protocolo (http | https), la extensión IIS Express, crea una carpeta llamada .vscode y dentro un archivo llamado iisexpress.json donde podemos modificar los valores.

Eso es todo! Ya podemos comenzar a desarrollar nuestros sitios web con PHP sobre IIS Express. Más adelante podríamos agregar la funcionalidad de depuración sobre el código, pero eso lo veremos en otra entrada más adelante.

Saluditos

Comentarios