La instalación del PDO_INFORMIX funciono pero la experiencia con el PDO no es lo que esperaba (nunca lo había usado) así que como extraño mis connect, fetch_array y fetch_assoc, aqui les dejo como hechar a volar el modulo de Informix en PHP 5.2
Primero el ambiente:
Ubuntu Server 10.04
XAMPP for Linux 1.7.4 con su respectiva versión de desarrollo (xampp-linux-devel-1.7.4)
Despues asignamos la variable de entorno para el informix en el .profile
export INFORMIXDIR=/opt/IBM
PATH=$PATH:$INFORMIXDIR/bin
Esta debe estar seteada antes de instalar el cliente para compilar despues el modulo de informix para PHP
informix:~# export INFORMIXDIR=/opt/IBM
El cliente de informix requiere un usuario de sistema y un grupo antes de ser instalado
informix:~# addgroup –system informix
informix:~# adduser –system informix –ingroup informix
Los paquetes que debemos instalar son: default-jdk rpm make subversion
El cliente de Informix viene con una JVM pero a mi dio error al instalarlo, asi que instalar el ambiente de Java funciono bien para mi.
informix:~# apt-get install default-jdk rpm make subversion
Creamos las carpetas para instalar el cliente de Informix y php_infomix
informix:# mkdir informix_client
infomix:# mkdir php_informix
Descargamos el cliente de Informix en el directorio, hasta donde se no hay manera de realizar esto por consola, yo me registre en IBM y descargue un free trial, el paquete que use lo encontre en el serach del site de IBM como IBM Informix Client SDK V3.00.FC3 for Linux (x86) RHEL 4, 64bit
El archivo que descargue fue clientsdk.3.00.FC3DE.LINUX.tar, el cual despues pase por usb a mi Ubuntu server en el directorios de informix client.
Descomprimimos el cliente
informix:~/informix_client# tar -xvf clientsdk.3.00.FC3DE.LINUX.tar
Corremos el instaaldor del installclientsdk.
informix:~/informix_client# ./installclientsdk
Es necesario cambiar la ruta de instalacion yo utilice /opt/IBM/
De nuevo debemos aceptar un acuerdo de licencia y avanzar en el installer.
Una ves instaaldo el cliente nos movemos al directorio de php_informix.
informix:~/informix_client# cd ../php_informix
Aqui descragamos lso fuentes de php_informix desde svn.
informix:~/php_informix# svn checkout http://svn.php.net/repository/pecl/informix/trunk/
nos movemos al directorio trunk
informix:~/php_informix# cd trunk
Ahora demos configurar e instalar el modulo de Informix.
informix:~/php_informix/trunk# /opt/lampp/bin/phpize –with-php-config=/opt/lampp/bin/php-config
informix:~/php_informix/trunk# ./configure –with-php-config=/opt/lampp/bin/php-config
Antes de seguirnos de filo con el make del modulo, debemos editar el Makefile para asegurarnos que el modulo esta ligado con la libreria de Informix checkapi.o, de otra manera si usamos el modulo nos mandar error de undefined symbol: ifx_checkAPI.
Editamos el Makefile y reemplazamos el valor de la directiva INFORMIX_SHARED_LIBADD con:
-Wl,-rpath,/opt/IBM/informix/lib/esql -L/opt/IBM/informix/lib/esql -Wl,-rpath,/opt/IBM/informix/lib -L/opt/IBM/informix/lib -lifsql -lifasf -lifgen -lifos -lifgls -ldl -lcrypt /opt/IBM/lib/esql/checkapi.o -lifglx
Ahora si podemos construir e instalar el modulo Informix:
informix:~/php_informix/trunk# make && make install
Este debera de instalarse en /usr/lib/php5/20060613. Debemos verificar que este apunta correctamente a la libreria de Informix checkapi.o, parea esto usamos el comando nm , el resultado debe arrojarnos algo como:
informix:~/php_informix/trunk# nm /usr/lib/php5/20060613/informix.so | grep ifx_checkAPI
000000000000bef0 T ifx_checkAPI
Para agregar y habilitar el modulo debemos editar el archivo php.ini que se encuentra en /opt/lampp/etc/
informix:/# nano /opt/lampp/etc/php.ini
# configuration for php INFORMIX module
extension=informix.so
El valor puede ser informix.so o si les manda error traten con “informix.so”
Por supuesto para lograr una conexión aun debemos editar /opt/IBM/etc/sqlhosts, /etc/hosts, y /etc/services todos estos deben tener la configuración para apuntar al server de informix. Además es necesario setear la variable de ambiente para apache INFORMIXDIR en /etc/apache2/apache2.conf.