Instalar drivers de Microsoft SQL server en php 5.6 debian y apache 2

Personalmente y salvo con la excepción del MSOffice, prefiero evitar cualquier software de Microsoft, especialmente si se trata de un software de servidor. Sin embargo, no todos pensamos igual y a veces nos vemos obligados a conecrtar con bases de datos de Microsoft SQL server.

El caso es que con la intención de hacer más fácil la vida del programador, php ha incluido librerías para conectar con este servidor de bases de datos a partir de la versión 7 y lo ha hecho incluyéndolo en el módulo PDO. Sin embargo, para desesperación de los que nos vemos obligados a mantener equipos con php 5.6 la conexión con este servidor de bases de datos está algo más complicada en principio.

Digo en principio porque después de algunos angustiosos momentos de búsqueda en Google en los que parecía que iba a tener que reescribir gran parte del código para poder migrar a php 7 encontré la solución en el siguiente artículo:

Installing MSSQL for PHP

En esencia se trata de instalar tres paquetes:

  • libsybdb5
  • freetds-common
  • php5-sybase

Para ello ejecutamos:

apt-get install libsybdb5 freetds-common php5-sybase
/etc/init.d/apache2 restart

Una vez arrancado apache2 de nuevo ya tenemos el módulo mssql funcionando.

Codificación de caracteres de la conexión con la base de datos

Para forzar que la conexión devuelva caracteres en UTF-8 hemos de poner lo siguiente en la sección [global] del archivo de configuración de freedts (/etc/freedts/freedts.conf):

tds version = 8.0
client charset = UTF-8