Cómo instalar PHP bajo IIS con Windows XP

Cómo instalar PHP bajo IIS con Windows XP

por

En esta ocasión, vamos a mostrar cómo instalar el intérprete del lenguaje PHP habilitado no para su típico webserver Apache, sino para Microsoft IIS.

Estoy en la tarea de habilitar una pequeña Web usando el portal Joomla, uno de los mas populares softwares de tipo CMS. Los requerimientos para usar Joomla son disponer de un Servidor Web equipado con intérprete de lenguaje PHP y con un motor de Base de Datos.

En un artículo previo (ver [Guía] Instalación del Servidor Web Microsoft IIS bajo WinXP ) mostré cómo habilitar el Servidor Web gratis de la Microsoft, el IIS, el cual viene incluido con Windows XP Pro.

En esta ocasión, voy a mostrar como instalar el segundo requerimiento del Joomla, un Intérprete del lenguaje PHP habilitado para uso con el Servidor IIS. Aunque el PHP es típicamente usado bajo el Server Apache, en realidad es también posible utilizarlo bajo IIS.

Donde conseguir PHP:

El primer paso es conseguirse el último instalador de PHP para IIS, el cual podemos bajar desde http://www.php.net/downloads.php. A la fecha de este Apunte, la última versión estable es la 5.2.0, la cual procederemos a descargar.

Existen dos versiones para Windows, una es un instalador .exe (de 18 MB) que proporciona una instalación fácil pero con poco control sobre el resultado; mientras que la otra es simplemente un archivo zipeado (de 9 MB) que obliga a una instalación completamente manual.

Instalación:

Con el ánimo de conseguir una mejor comprensión de como funciona el PHP y su enlace hacia IIS, prefiero usar la instalación manual, de modo que bajo la versión zipeada y la descomprimo en una carpeta de mi preferencia:

La tipica es instalar PHP en la carpeta C:PHP, pero en mi opinión las cosas quedan mas seguras si optamos por usar rutas menos obvias, de modo que en mi caso coloqué la carpeta PHP en la misma carpeta que aloja mis Sitios Webs y FTP, la que he puesto en mi disco D:

Configurar PHP:

El Interprete de PHP se configura editando un archivo de texto, el php.ini. Notese que al descomprimir el archivo PHP que hemos descargado, no hay un archivo con ese nombre. Lo que debemos hacer es renombrar el archivo “php.ini-recommended”, dejandolo como “php.ini” (sin las cremillas, desde luego).

Ahora debemos modificar los parametros siguientes, para que queden apuntando a la ruta donde colocamos el Interprete PHP, como muestra la figura:

El significado de los parámetros que debemos cambiar es:

doc_root = Debe apuntar a la carpeta que contiene a nuestro Sitio Web.
extension_dir = Esta es una carpeta del PHP que se usa para colocar modulos opcionales en forma de DLLs.

También debemos especificar los parametros de Correo, con los datos de nuestro Servidor SMTP … esto es usado porque PHP tiene funciones que permiten a nuestros Sitios Web la generación de mensajes de correo electrónico.

Es por ello que en mi Guía previa tuve cuidado de habilitar el Servicio SMTP de IIS, de esa manera no quedo dependiendo de un Servidor ajeno (como el de mi ISP). Los parametros del php.ini que debemos ajustar son:

SMTP = localhost
smtp_port = 25
sendmail_from = rudel@fach-extraoficial.com

Uso “localhost” para indicar que es mi propio PC el que actuará como Servidor SMTP. La casilla de correo es usada sólo como dirección de retorno de los mensajes … no es necesario que exista en nuestro propio PC.

Necesitamos ahora que el IIS sea capaz de encontrar los modulos del PHP cada vez que los necesite, para ello añadiremos la ruta donde colocamos el PHP a la variable PATH de nuestro Windows. Esto se hace editando las propiedades del Sistema, en el Panel de Control:

Las distintas rutas que contiene la variable PATH van separadas por puntos y coma. Cabe notar que necesitaremos reiniciar el PC para que el cambio en el PATH tome efecto.

Otro requerimiento del IIS es que el usuario que Windows usa para representar a los usuarios que visiten nuestra Web (IUSR_nombre_de_maquina) debe tener acceso de lectura a la carpeta donde pusimos al PHP.

En mi caso, esto ocurrió automaticamente, al colocar PHP dentro de la estructura de carpetas que definí para mis Sitios Webs. Si su carpeta de PHP la ponen en otra parte, necesitaran ajustar los permisos de dicha carpeta en la forma siguiente:

A continuación, vamos al administrador de IIS para configurar su acceso a PHP. Revisamos las propiedades del Sitio Web y seleccionamos la pestaña ISAPI Filters, donde agregaremos el Filtro señalado en la figura:

¿Que diablos es el ISAPI? se estarán preguntando … la verdad yo no lo tenía muy claro, hasta que estudié un poco mas la documentación de PHP:

Resulta que el lenguaje PHP puede ser usado de dos maneras principales:

a) Para crear scripts que son ejecutados en ambiente Servidor.
b) Para correr scripts en la linea de comandos.

Asi es, aquellos que alguna vez en su vida crearon un archivo .BAT en DOS o bien escribieron scripts para shells de Linux, ahora pueden escribir scripts en PHP que pueden ser usados en la linea de comandos de Windows.

El IIS puede usar cualquiera de estas dos modalidades, a la primera la denomina ISAPI y a la segunda le denomina CGI, siendo esta ultima una forma de que el Servidor Web use el PHP a traves de una linea de comandos interna.

Para nuestros efectos, nos basta con saber que ISAPI es preferible a CGI, esta ultima solo debe usarse en Servidores Web que no soporten ISAPI.

A continuación indicaremos al IIS que los archivos con extension .php deberán ser pasados al interprete de PHP, lo cual se hace en la siguiente ventana:

Probar la instalación:

Para que el IIS tome los cambios de configuración que hemos hecho, necesitamos detener el Servicio Web:

y luego reactivarlo nuevamente.

Para probar la instalación, escribimos usando Notepad un pequeño script que despliega información de configuracion del intérprete:

Code:
<?php phpinfo(); ?>

El cual guardaremos en nuestro Sitio Web con el nombre “prueba.php” … luego echamos a andar una ventana del navegador Web y lo dirigimos a la dirección “localhost/prueba.php”, como muestra la figura:

Los que tengan el ojo agudo, podrán ver que el PHP esta tomando como archivo de configuración un tal “php.ini” ubicado en la carpeta de Windows. Esto ocurre porque el PHP asume esa ubicación por defecto para el archivo ini.

Es por eso que muchas Guias recomiendan copiar o mover el archivo php.ini y dejarlo en la carpeta de Windows … lo cual es una mala practica porque este puede perderse en alguna reinstalación del S.O.

Una mejor solución es habilitar una variable de ambiente especial, la PHPRC, con el valor correcto para la ruta del archivo de configuración. Esto se hace como muestro en la figura:

Reiniciamos el PC, para que tome efecto el cambio y cuando repetimos nuevamente la prueba, nos sale el siguiente resultado:

Con esto queda finalizada la instalación y nuestro Servidor Web cuenta ahora con la capacidad de interpretar páginas escritas en lenguaje PHP, en adición al tipico HTML.

Saludos,

Rudel