Instalar PHP 5 en IIS 6 64 Bits

El típico tema que requiere varios pasos, difíciles de recordar porque hacemos de tanto en tanto. Aquí explicaré brevemente los problemas que encontré al instalar PHP 5.2.6, como extensión web ISAPI, en Windows 2003 Server 64 bits.

  1. Asumo que contamos con un Internet Information Server (ISS) instalado correctamente
  2. Descargamos la última versión estable de PHP, PHP 5.X.X Zip Package y PECL 5.X.X Win32 binaries
  3. Creamos en C:\ el directorio PHP. Descomprimimos el archivo zip de PHP y PECL. Copiamos el contenido de PHP-5.X.X en C:\PHP y dejamos las extensiones .dll (extraídas del paquete PECL) en C:\PHP\ext
  4. Renombramos php.ini-recommended a php.ini
  5. Editamos php.ini, descomentamos la línea de la variable “cgi.force_redirect” y la dejamos a 0
  6. Editamos php.ini para utilizar SMTP como localhost o un servidor externo
  7. Editamos php.ini, “session.save_path” como “session.save_path=C:\PHP\sessions”
  8. Editamos php.ini, “extension_dir” como “extension_dir = “C:\PHP\ext”
  9. Editamos php.ini y descomentamos las extensiones que necesitemos
  10. Ahora podemos copiar todas las dll de las extensiones al %systemroot% de nuestro 2003 Server o bien, añadir el directorio PHP en el path de variables de sistema. Para ello, botón derecho sobre “Mi PC”, Propiedades, Opciones Avanzadas, Variables de Entorno. En Variables de Sistema, buscamos Path y añadimos “C:\PHP\”;. Ahora creamos un archivo de texto y lo renombramos a phpinipath.reg. Y copiamos el texto:


Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\PHP]
"IniFilePath"="C:\\PHP"

Ahora debemos configurar IIS. Abrimos la consola de administración de IIS, botón derecho en Extensiones Servicio Web (Web Services Extensions), y “Añadir nueva extensión”. Ponemos como nombre PHP y navegamos hasta to “C:\PHP\php5isapi.dll” y clickamos abajo el checkbox para permitir su uso. Ahora, botón derecho sobre Sitios Web(Web Sites) y navegamos hasta la pestaña Directorio Particular(Home Directory) y hacemos click en Configuración. En la primera pestaña “Asignaciones” hacemos click en “Añadir”, y añadimos la extension php y en ejecutable navegamos hasta “C:\PHP\php5isapi.dll”. Marcamos todos los verbos (opcionalmente podemos escoger tan sólo GET,POST,HEAD) y Aceptar. Vamos ahora a Docuementos y añadimos “index.php”

Ahora, creamos un archivo index.php en el Document Root de nuestro sitio web y editamos con la función típica

phpinfo();

Si todo ha ido bien, debería funcionar.

Problemas encontrados:

  • Internal Error Server – Error 500: al intentar instalar PHP 5.2.6 en un Windows 2003 Server 64 bits podemos encontrarnos con este error. Esta mucho mejor explicado en miles de sitios, pero básicamente, hemos de hacer que nuestro IIS sea compatible con aplicaciones 32 bits. Para eso abrimos la consola de comandos y ejecutamos cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1. Esto habilitará ambas extensiones.
  • Http Error 403.2 – Forbidden: Read is Denied: problema de permisos. Modificamos la configuració de nuestro sitio web, y le damos permisos de lectura en la pestaña “Directorio Particular”. Reiniciamos IIS.
  • Página en blanco: no encontramos errores en los logs, ni se muestra ningún tipo de error, tan sólo la página en blanco. Esto está relacionado con la variable short_open_tag, que seguramente estará a off. La ponemos en on y reiniciamos IIS.

Si hemos seguido los pasos, deberíamos poder hacerlo funcionar sin mayores problemas. Otro tema, es si PHP como extensión ISAPI en 64 bits (o incluso en 32 bits) es la opción correcta en sitios web de gran carga de tráfico o trabajo. Si no tenemos un sitio muy grande, está configuración, seguida de la instalación de un acelerador de PHP como XCache o Eaccelerator debería sernos útil.

Saludos

Links

9 thoughts on “Instalar PHP 5 en IIS 6 64 Bits

  1. Pues debería funcionarte 🙁 pero afortunadamente, es un error muy documentado, busca bien en Google y seguro que localizas información de utilidad. En los mismos enlaces que he dejado tienes bastante info.

    Saludos.

  2. Tengo en mi Pc instalado el IIS 6.0 [trbajo con el Windows Xp 64 bits], aunque la página está en construcción al darle localhost, simplemente cree una pagina web sencilla [solo html] y la utilizé como archivo de inicio y vaya que funciona bien; con respecto a PHP [trabajo con la versión 5.2.8] hice todo los pasos que mencionas, a excepción de crear el archivo con la extensión .reg, al ejecutar el script de php (index.php, este archivo lo puede uno hacer con el bloc de notas), aparece el error 500, tan solo ejecuté la instrucción.
    cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/

    Reinicié el IIS, y ahora si, funciona todo a la perfeccción, he creado páginas web dinámicas con IIS, PHP y MySQL, trabajando al 100%.

    Muchas Gracias, me has ayudado como no tienes idea. Saludos desde México.

  3. Muy bien explicado, en mi caso solo faltó el siguiente comando para instalar la versión de ASP.NET 2.0 (32 bits) e instalar las asignaciones de secuencias de comandos en la raíz de IIS
    %SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i

  4. Buenos días
    He conseguido con funcione el php5 en mi intel64 bits, seguiendo los pasos anteriores, pero daba el error 500, ejecutando por bien dice cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1.
    Y voila!!!
    Gracias

Leave a Reply

Your email address will not be published. Required fields are marked *