Freetds, PHP mssql y CentOS 6.6

Esto es una actualización de estos dos artículos de este mismo blog Acceder desde linux a SQL server con PHP y Errores de conexión con mssql connect, la diferencia es que ambos están aplicados a CentOS 6.6 y los resultados son más actuales.

Requisitos

  1. Repositorio EPEL instalado, aquí os dejo un manual para hacerlo.
  2. PHP y Apache instalados y corriendo, en mi caso es PHP 5.3.3, las versiones que vienen por defecto con esta distribución de CentOS.
Existen muchos artículos por internet sobre como dejar funcionando una conexión con SQL Server desde un CentOS pero casi todos pasan por compilar las librerías FreeTDS y PHP mssql, en nuestro caso lo haremos sin necesidad de compilar nada, solo utilizando esa maravillosa herramienta llamada yum, necesitamos instalar estos paquetes:
yum install freetds freetds-devel php-mssql
Si todo viene por defecto no debería daros ningún problema.
El proceso de configuración es bastante similar al primer artículo que enlazo en este post, salvo que CentOS es un poco más organizado.

Configurar FreeTDS

Ubicamos el archivo /etc/freetds.conf y en él escribiremos todos los detalles de conexión de nuestro servidor (esto ya está explicado en el artículo que enlazo).
Exportamos a /etc/profile la variable de entorno $ echo "export FREETDSCONF=/etc/freetds.conf" >> /etc/profile

Configurar Apache para cargar FreeTDS

Creamos el archivo freetds.conf en /etc/httpd/conf.d y en el agregaremos la variable de entorno: SetEnv FREETDSCONF /etc/freetds.conf

Probar la configuración de FreeTDS

tsql -S NombreServidor -p 1433 -U usuario -p 'clave'

Habilitar CentOS para permitir peticiones http

Este paso es importantísimo sin él la función mssql connect es incapaz de conectarse a nada aunque la instrucción anterior funcione.
# getsebool -a | grep httpd_can_network_connect 
httpd_can_network_connect --> on 
httpd_can_network_connect_db --> on 
Si no estuvieran a ON hay que habilitarlo con estos comandos (tardan, no desesperéis)
setsebool -P httpd_can_network_connect 1 
setsebool -P httpd_can_network_connect_db 1
Con estos pasos ya tendríamos nuestro CentOS 6.6 preparado para conectarse a nuestro SQL Server.

Comentarios

Anónimo ha dicho que…
Sé que es una publicación antigua, pero aun así me sirvió y me solucionó el problema, muchísimas gracias.
Reynier ha dicho que…
Me alegra que te haya servido