Conectar MSSQL con PHP en Linux

  • 25 Dic 2010
  • Linux, PHP, MSSQL

Se quiere desarrollar una aplicación web en un servidor LAMP que muestre un reporte tomando datos de una base de datos (SQL Server 2005) que se encuentra en un Microsoft Windows Server 2003 R2.

Primeros pasos

Antes que nada, SQL Server tiene que aceptar usuarios SQL y sería bueno crear uno nuevo con permisos de lectura.

Server Authentication

  1. Abrir el SQL Server Management Studio.

  2. Click derecho -> Properties

  3. Ir a la página "Security"

  4. Marcar "SQL Server and Windows Authentication mode"

  5. Reiniciar SQL

[img_assist|nid=192|title=SQL Server Authentication Mode|desc=|link=none|align=center|width=625|height=531]

Crear usuario

  1. Click derecho en Security -> New -> Login

  2. Escribir el nombre que querramos

  3. ... la contraseña...

  4. En User Mapping elegir la base de datos y el permiso que se quiera.. en este caso: db_datareader.

[img_assist|nid=193|title=Crear usuario en SQL Server 2005|desc=|link=none|align=center|width=563|height=350]

Ahora Linux

Instalar extensión MSSQL de PHP

yum install php-mssql

y de paso, freetds

yum install freetds

Con freetds instalado, ya podemos probar si la configuración del SQL Server nos permite una conexión remota y si el usuario creado puede autenticarse con él.

tsql -S sqlserver -U ax -P *********

Probar PHP

<?php

  $myServer = "sqlserver";
  $myUser = "ax";
  $myPass = "**********";
  $myDB = "dbtest";

  //connection to the database
  $dbhandle = mssql_connect($myServer, $myUser, $myPass)
    or die("Couldn't connect to SQL Server on $myServer");

?>

Si todo sale bien, el script de arriba debería devolver una página en blanco y a partr de entonces se puede empezar a trabajar.