sábado, 26 de julio de 2014

FreeTDS para el acceso a MsSQL desde PHP en Linux CentOS 5.x/6.x/7.x

En esta ocasion la situación es como conectar con PHP 5 desde un Servidor Linux a una base de Datos Ms Sql Server en Servidor Windows.

Requisitos en Linux Server (Web):
Apache
FreeTDS http://www.freetds.org/
PHP http://www.php.net/
libsybdb5 php-mssql libraries for connecting to MS SQL and Sybase SQL servers. http://www.php.net/manual/en/book.mssql.php
Requisitos en Windows Server (Database) :
Ms Sql Server Enterprise

Consideraciones:
Siempre es bueno aclarar que los 2 servidores estan en la misma lan y que los puertos tcp ip 1433 del servidor windows en donde esta la base de datos, esta abierto y que ningun software o firewall este bloqueando esta via. ya que Ms Sql Server usa por default este puerto de comunicacion.
consideren usar una version de Ms Sql Server Enterprise que por defecto viene con todas las librerias y directivas de conexion de red habilitadas.

bueno vamos haber como se hace todo esto.
Antes de Instalar freetds, primero debemos el repositorio epel de nuestra version de CentOS:

Si es un sistema de 64 Bits:

su -c 'rpm -UvH http://mirror.cedia.org.ec/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm'
yum --enablerepo=epel install iksemel iksemel-devel 
Si es un sistema de 32 Bits:

su -c 'rpm -UvH http://mirror.cedia.org.ec/fedora-epel/6/i386/epel-release-6-8.noarch.rpm'
yum --enablerepo=epel install iksemel iksemel-devel

Y asi pasamos al siguiente paso que es instalar FreeTds:

Instalación FreeTds y sus dependencias
  1. yum -y install freetds*  

Instalación del módulo de PHP para el acceso a bases de datos Microsoft SQL Server.
  1. yum -y install php-mssql*  

Configuración de Alias para las conexiones con FreeTds
Editamos el archivo freetds.conf, es en este archivo donde debemos agregar nuestros alias
que manejaremos para nuestras conexion a los diferentes servidores Ms SqlServer que tengamos en la red.
  1. vi /etc/freetds.conf  
  1. # Microsoft SQL Server 7.0  
  2. [MyServer70]  
  3. host = 172.16.0.253  
  4. port = 1433  
  5. tds version = 7.0  
  6. #Microsoft SQL Server 2000  
  7. [MyServer2000]  
  8. host = 172.16.0.200  
  9. port = 1433  
  10. tds version = 7.1  
  11. #Microsoft SQL Server 2005  
  12. [MyServer2005]  
  13. host = 172.16.0.201  
  14. port = 1433  
  15. tds version = 7.2  
  16. #Microsoft SQL Server 2008  
  17. [MyServer2008]  
  18. host = 172.16.0.202  
  19. port = 1433  
  20. tds version = 7.2  

Configuración Formato de Fechas
Editemos el archivo locales.conf, Es bastante comun que necesitemos configurar el manejo del formato de fechas en nuestro servidor, para que php nos devuelva el formato como mejor nos parezca.
  1. vi /etc/locales.conf 
  1. [default]  
  2. date format = %d/%m/%Y %H:%M:%S  
  3. #[default_orig]  
  4. #date format = %b %d %Y %I:%M%p  

Conectando con Tsql a nuestro servidor Ms SqlServer

  1. tsql -S myserver70 -p 1433 -U sa  


bueno como se puede observer la conexion esta establecida con el servidor ahora solo es cuestión de ver como esta la configuracion de php y el soporte de mssql.
entonces hagamos nuestro archivo php llamado test.php

  1. touch /var/www/html/test.php   
  2. vi /var/www/html/test.php  

y dentro de el pongamos lo siguiente.
  1. <?php phpinfo();?>  

Ahora es momento de ver esto en nuestro navegador web http://localhost/test.php y ubiquese en mssql y observe en el parametro library version debe indicar que trabajaremos con FreeTds.

El momento de la verdad, tenemos que hacer una consulta con php a mssql.
entonces vamos a crear un archivo test1.php
  1. touch /var/www/html/test1.php   
  2. vi /var/www/html/test1.php  

dentro de el pongamos lo siguiente, vamos a usar como prueba a base de datos Northwind y mostraremos a los empleados que se encuentran registrados en la tabla employees si se fijan en el funcion mssql_connect("estoy haciendo uso del alias de freetds.conf","el usuario de Mssql","la clave del usuario MsSql")
  1. <?php  
  2. $msconnect=mssql_connect("MyServer70","sa","");  
  3. $msdb=mssql_select_db("Northwind",$msconnect);  
  4. $msquery = "select titleofcourtesy,firstname,lastname from employees";  
  5. $msresults= mssql_query($msquery);  
  6. while ($row = mssql_fetch_array($msresults)) {  
  7. echo "<li>" . $row['titleofcourtesy'] . " " . $row['firstname'] . " " . $row['lastname'] . "</li> \n";   
  8. }   
  9. ?>   

veamos el resultado en nuestro navegador web {ver para creer}.

1 comentario:

  1. Elinformatico: Tds Para El Acceso A Mssql Desde Php En Linux Centos 5.X/6.X/7.X >>>>> Download Now

    >>>>> Download Full

    Elinformatico: Tds Para El Acceso A Mssql Desde Php En Linux Centos 5.X/6.X/7.X >>>>> Download LINK

    >>>>> Download Now

    Elinformatico: Tds Para El Acceso A Mssql Desde Php En Linux Centos 5.X/6.X/7.X >>>>> Download Full

    >>>>> Download LINK 03

    ResponderEliminar