jueves, septiembre 22, 2011

Compiling PHP5 with MS SQL Server support

Compilando PHP5 con soporte para MS SQL Server

Primero hay que obtener el código fuente del sitio de ftp://ftp.ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz

En esta ocasión voy a proceder a poner los comandos del proceso de instalación:

cd /dev/shm
wget ftp://ftp.ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz
mkdir /build
cd /build
tar zxvf /dev/shm/freetds-stable.tgz
cd freetds-0.82/
./configure --prefix=/usr/local/freetds --exec-prefix=/usr/local/freetds
make
sudo make install

con lo anterior hemos terminado de compilar e instalar freetds en nuestro linux
ahora a compilar el php con dicho módulo

cd /build
cd php-5.2.6/
'./configure' '--with-apxs2=/usr/local/apache2/bin/apxs' '--with-pgsql=/usr/local/pgsql' '--with-zlib' '--enable-mbstring' '--with-gd' '--with-jpeg-dir=/usr/lib' '--with-mssql=/usr/local/freetds'

aquí nos marca un error que se resuelve como los amables usarios de php indican en
http://www.php.net/manual/en/mssql.installation.php
ya que al parecer hay algunos archivos que el php supone que existen para verificar la existencia de tds, pero que la distro de tds ya no incluye

sudo touch /usr/local/freetds/include/tds.h
sudo touch /usr/local/freetds/lib/libtds.a

luego regresamos a intentar

'./configure' '--with-apxs2=/usr/local/apache2/bin/apxs' '--with-pgsql=/usr/local/pgsql' '--with-zlib' '--enable-mbstring' '--with-gd' '--with-jpeg-dir=/usr/lib' --with-mssql=/usr/local/freetds
make
sudo make install

reiniciamos el apache y corremos un .php que muestre phpinfo() para comprobar que ya se encuentre el soporte, debe aparecer una sección mssql, esto indica que el php ya tiene dicho soporte

sudo service httpd restart
google-chrome http://localhost/pru.php


Como paso adicional es necesario modificar el archivo de configuración de tds para agregar nombres de servidores sql que se utilizarán en php para conectarse a los motores de base de datos.

sudo gvim /usr/local/freetds/etc/freetds.conf

añadimos una sección por cada servidor (no es necesario reiniciar el httpd) por ej.

[google_vm_altair]
host = 192.168.10.70
port = 1433
tds version = 7.0

No hay comentarios.: