Conectar PHP con SQL Server desde CentOS 6.5

Este mes tuve un nuevo requerimiento de un cliente. Tenemos lo siguiente: • 01 pc con windows 7 y sql server 2012 • 01 servidor Centos con Apache y PHP5.4 Necesitamos obtener una lista de pacientes de la base de datos en sqlserver y mostrarla en una aplicación web que esta alojado en Centos.

Buscando en san google, links por aquí, por allá y luego de varios quebraderos de cabeza la solución se resume en un post muy bueno que encontré:

http://scriptinside.blogspot.com.es/2013/04/error-unable-to-connect-to-server.html

Instalar en este orden:

> yum update
> yum groupinstall Development Tools
> yum install httpd
> yum install freetds
> yum install freetds-devel
> yum install php php-devel php-mssql
> service httpd restart
> php -m (verifico que módulos tiene instalado el php, alli debe figurar php-mssql)
> vi /etc/freetds.conf

añadimos una conexión personalizada

#mi conexion sqlserver
[sqlserver2012]
host = IP de destino
port = 1433
tds version = 8.0

grabamos y salimos. probamos la conexión

> tsql -S sqlserver2012 -p 1433 -U sa

si hay problemas como este:

Error 20009 (severity 9): Unable to connect: Adaptive Server is unavailable or does not exist OS error 110, Connection timed out

Este es el error típico de que el firewall del servidor SQL no está permitiendo las conexiones entrantes.

Error 20009 (severity 9): Unable to connect: Adaptive Server is unavailable or does not exist OS error 111, Connection refused

Este error significa que te estas conectando mal al servidor SQL, por ejemplo puedes estar conectandote por IP (tsql -H) con los datos por defecto en vez de conectarte utilizando tsql –S.

tener en cuenta que este deshabilitado el firewall de windows, si todo va bien creamos el php de prueba

<?php

$msconnect=mssql_connect("sqlserver2012","sa","clave");
$msdb=mssql_select_db("nombrebd",$msconnect);
$msquery = "select titleofcourtesy,firstname,lastname from employees";
$msresults= mssql_query($msquery);
while ($row = mssql_fetch_array($msresults)) {
echo $row['titleofcourtesy'];
}

?>

sqlserver2012: es el nombre de la conexión en freetds.conf

Añadir un comentario

El código HTML se muestra como texto y las direcciones web se transforman automáticamente.

Discusiones sobre el mismo tema

URL de retroenlace : http://creativapixel.com/blog/index.php?trackback/4

33 reads