Instalar las librerías FreeTDS en Linux

instalar-las-librerias-freetds

Las librerías FreeTDS en Linux permiten agregar al PHP funciones para la conectividad con bases de datos como MSSQL, SYBASE y ODBC. Para instalarlas en un servidor de producción debemos ejecutar los siguientes comandos:

cd /usr/local/src
wget http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz
tar zfvx freetds-stable.tgz
cd freetds-*;
./configure --prefix=/usr/local/freetds --enable-msdblib --enable-dbmfix --with-gnu-ld; make ; make install

Ahora debemos asegurarnos de que las variables globales estén correctamente inicializadas. Para ello debemos ejecutar:

nano /etc/profile

y agregar al final:

PATH=$PATH:/usr/lib
SYBASE=/usr/local/freetds
TDSVER=7.0
LD_LIBRARY_PATH=/usr/lib:/usr/local/freetds/lib
export PATH SYBASE TDSVER LD_LIBRARY_PATH

Salir y Guardar el archivo.

Para verificar que está todo bien debemos ejecutar:

source /etc/profile
env

Esto mostrará las variables globales que se han colocado.

Ahora debemos asegurarnos de que podamos compilar el PHP con easyapache y que tome en cuenta los parámetros asociados a FreeTDS. Para ello debemos agregar las opciones de compilación deseadas en los archivos a través de los cuales el easyapache verifica las opciones manuales que debe tomar en cuenta durante la compilación. Cada opción debe estar en una línea independiente. Debemos ejecutar:

Para el PHP 5:

nano /var/cpanel/easy/apache/rawopts/all_php5

Agregar:

--with-mssql=/usr/local/freetds

En el caso de que se requieran conexiones a bases de datos externas Sybase o basadas en ODBC se deben agregar a dicho archivo las siguientes líneas (Opcional):

--with-sybase-ct=/usr/local/freetds
--with-iodbc=/usr/local/freetds

Salir y guardar.

Ahora debemos asegurarnos que existan los archivos necesarios para que la compilación no cause inconvenientes con el easyapache, ejecutando:

touch /usr/local/freetds/lib/libtds.a
touch /usr/local/freetds/include/tds.h
ln -s /usr/local/freetds/lib lib64
ll /usr/local/freetds/lib64/libsybdb.a
ll /usr/local/freetds/lib64/libsybdb.so

Ahora se debe configurar la conexión con el servidor del cliente (si ya se conoce) por lo que debemos editar el archivo de configuración de FreeTDS usando:

cd /usr/local/freetds/etc
nano freetds.conf

y agregar al final:

[nombre-usuario-sybase]
host = XXX.XXX.XXX.XX
port = 5000
tds version = 5.0

[nombre-usuario-mssql]
host = nombre-dominio-dinamico.com
port = 1433
tds version = 8.0

Salir y Guardar el archivo.

Nota: Los ejemplos de arriba son para un caso de Sybase y un caso de MSSQL 2005 (si fuera 2000 se colocaría la versión 7.0). El puerto de Sybase puede cambiar y hay que verificarlo contra el administrador del sistema remoto.

Debemos asegurarnos que los puertos esten habilitados en el firewall CSF ó APF según el que hayamos instalado, tanto para los puertos de entrada como de salida.

Para el APF:

Editar el archivo de configuración

nano /etc/apf/conf.apf

Agregar los puertos tanto para Entrada (INGRESS) como para Salida (OUTGRESS) y guardar.

Finalmente, debemos compilar el Apache con el PHP. Para esto debe leerse el punto subsiguiente que abarca este aspecto.

NOTA: Luego de compilar el Apache y el PHP con las librerías FreeTDS para probar la conexión hacia un servidor remoto que hayamos configurado previamente en el archivo conf de freetds, podemos crear y ejecutar el siguiente archivo php:

<?php
$link = mssql_connect("nombre-usuario-mssql ","usuario","clave");
if($link){
 echo "Conexión Exitosa";
} else {
 echo "FALLA:".mssql_get_last_message();
}
?>

Enlaces de interés:

http://forums.cpanel.net/f5/definitive-freetds-installation-instuctions-88561.html

http://docs.cpanel.net/twiki/bin/view/EasyApache3/CustomConfigureFlags

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *