Configurar PHP 5.4.14 en IIS 7 con soporte MSSQL 2008 R2 en Win2008 x64

He tenido la necesidad de migrar algunos  servidores con SO Win2003 hacia Win2008, pero con el detalle que estos servidores (Wind 2003) tenian aplicaciones PHP y con soporte a bases de datos SQL 2000.

He leido que en esta versión (2008) de SO ya no da soporte a la famosa libreria php_mssql y por la tanto la pregunta es como hacer esto y de la mejor forma.

Supongo:(Escenario)

===================

1.- Tienes un servidor Win 2008 R2 x64 corriendo sin problemas.

2.- Tienes instalado en este servidor la Base de datos SQL 2008 R2.

3.- Tienes instalado el Rol de dw Servidor Web .

Pasos 1.- Instalando PHP en IIS 7

Lo que recomiendo es hacerlo a traves de la plataforma web del mismo sitio de microsoft:

http://www.microsoft.com/web/platform/phponwindows.aspx

Webinstaller

 

Este proceso va descargar un ejecutable EXE el cual deberias de instalar, (ya saben siguient siguiente, etc.)

Al final reiniciamos el servidor y veremos que dentro del administrador del IIS 7 se habrá colocado un icono PHP justo para ser administrador, es desde  aqui donde podremos manipular las variables del php.

 

Si ingresamos al modulo vamos a ver lo siguiente: (detalles mas abajo)

1.- La version php instalada en IIS 7

2.- Si deseamos ver la configuración y extenciones que tiene nuestra instalación nada mejor que ver el archivo phpinfo()

3.- Ruta del archivo de configuración de PHP (php.ini), y si deseamos ver el contenido, nos basta con darle clic.

4.-Con esta opcion podemos habilitar/inhabilitar y hasta agregar extenciones, es aqui donde trabajaremos mas adelante para agregar extenciones de MSSQL.

5.- Lo mismo que el punto 4 pero solo nos permite agregar extenciones.

Pueden ver un video resumido de esto aqui: http://www.youtube.com/watch?v=u9YVMXNHPco

Paso 2.-  Instalar el Driver de php para SQL server

Decargar la última version Driver de PHP ára SQL : http://www.microsoft.com/en-us/download/confirmation.aspx?id=20098

Este archivo ejecutable lo que hace es descargar una serie de librerias en un archivo EXE. Una vez descargado lo ejecutamos y nos parecerá un mensaje pidiendonos la ruta a donde va a descargar las librerias (*.dll), alli escogemos la carpeta “ext” de nuestra instalación, en mi caso sería:  C:\Program Files (x86)\PHP\v5.4\ext

Este archivo al momento de ejecutarse y desempaquetarse genera un archivo de ayuda (SQLSRV_Help.chm) el cual nos da todos los pasos para implementar este driver.

Bien, por si no desean leerse este archivo de ayuda se los voy a resumir:

Una vez que desempaquetamos las librerias y dependiendo de la version de PHP quen tengamos instalada vamos a habilitar (ver imagen )las librerias correspondientes. En mi ejemplo yo tengo instalado la versión 5.4.14 por lo tanto habilitare las librerias:

  • php_pdo_sqlsrv_54_nts.dll
  • php_pdo_sqlsrv_54_ts.dll
  • php_sqlsrv_54_nts.dll
  • php_sqlsrv_54_ts.dll

 

Con esto ya estaría habilitado PHP con soporte a consultas a SQL 2008, ahora lo que nos queda es probar la conexión!!.

3.- Probando la conexion.

Para probar con una base de datos cualquiera, vamos a descargar la base de datos ( AdventureWorks) de Microsoft de esta direccion:

http://go.microsoft.com/fwlink/?LinkID=67739

Al descargar y desempaquetar nos va a mostrar 2 archivos:

  • AdventureWorksDW_Data.mdf
  • AdventureWorksDW_Log.LDF

Estos archivos hay que subirlos a la base de datos. (La mejor forma d hacerlo es siguiendo este Link):

http://msdn.microsoft.com/en-us/library/ms190209.aspx

Bien ahora si, ya instalado la BD vamos a probar creando un archivo php y solicitando datos a nuestra BD.

Creamos un archivo llamado test.php en la raiz de nuestro servidor web y probamos:

test.php

<?php
/* Specify the server and connection string attributes. */
$serverName = "(local)";
$connectionInfo = array( "Database"=>"AdventureWorks");

/* Connect using Windows Authentication. */
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false )
{
     echo "Unable to connect.</br>";
     die( print_r( sqlsrv_errors(), true));
}

/* Query SQL Server for the login of the user accessing the
database. */
$tsql = "SELECT CONVERT(varchar(32), SUSER_SNAME())";
$stmt = sqlsrv_query( $conn, $tsql);
if( $stmt === false )
{
     echo "Error in executing query.</br>";
     die( print_r( sqlsrv_errors(), true));
}

/* Retrieve and display the results of the query. */
$row = sqlsrv_fetch_array($stmt);
echo "User login: ".$row[0]."</br>";

/* Free statement and connection resources. */
sqlsrv_free_stmt( $stmt);
sqlsrv_close( $conn);
?>

Este archivo test.php lo colocamos en C:\inetpub\wwwroot

El resultado es esto:

 

Con esto hemos probado que ya tenemos el PHP listo para hacer consultas a la BAse de datos de SQL 2008 R2 x64

Importante: Aqui solo he probado la conexión usando autenticacion por Windows!!! Existe otra forma de conexión a la Base de datos que es la autenticación por SQL Server, el cual lo vere en una actualización de este post.

 

Para los que desean seguir ahondando aqui les mando un link que trata el mismo tema de manera distinta: http://www.deepshiftlabs.com/dev_blog/?p=1880&lang=en-us

Agregue un comentario

Su dirección de correo no se hará público. Los campos requeridos están marcados *