martes, agosto 2

Instalar PDO_INFORMIX EN Debian Lenny

Suponiendo que ya tenemos php y apache instalado.... y ademas el php-devel..


Bajamos el software necesario

PDO_INFORMIX

wget http://www.pecl.php.net/get/PDO_INFORMIX-1.0.0.tgz

CLIENTSDK (Este lo bajamos de la pagina de IBM)

Estoy bajando el clientsdk 3.50 para linux

wget https://www6.software.ibm.com/sdfdl/2v2/regs2/mstadm/informix/Xa.2/Xb.YBTN_DlRXFKwTCASDUCuTIzG9nBE2ljgzDX5wOgGgA/ Xc.clientsdk.3.50.UC6DE.LINUX.tar/Xd./Xf.LPr.D1vk/Xg.5460083/Xi.ifxdl/XY.regsrvs/XZ.5IIqhcVs4h1rpp-U1CfrE01dxuA/clientsdk.3.50.UC6DE.LINUX.tar


Descomprimimos el software en alguna carpeta temporal..


(PDO)

tar zxf PDO_INFORMIX-1.0.0.tgz

(Client SDK)

tar zxf clientsdk.3.50.UC6DE.LINUX.tar


Necesitamos crear un grupo y un usuario de nombre informix (ambos)

groupadd informix

useradd -g informix -p passwordQueQuieras


El home del usuario informix debe ser el mismo donde se instalara el cliente de informix (csdk)
por default se instala en /opt/IBM, pero lo dejaremos en /opt/informix

Puedes especificarle el directorio home al usuario al crearlo, o bien cambiarlo en
el archivo /etc/passwd

Ejemplo, esta es la linea del usuario informix en el archivo /etc/passwd

informix:x:1002:1003::/opt/informix:/bin/sh

/opt/informix es el directorio home para este usuario, si desearas cambiarlo, solo edita esa linea.


Creamos el directorio donde se instalara el clientsdk de informix

mkdir /opt/informix

Hacemos dueño a informix de su carpeta.

chown informix.informix /opt/informix
chown informix.informix /opt/informix

/ETC/PROFILE

En /etc/profile damos de alta las variables de ambiente de para el directorio de informix


INFORMIXDIR=/opt/informix
export INFORMIXDIR

PATH=$PATH:$INFORMIXDIR/bin
export PATH


despues de guardar /etc/profile

hacemos un source /etc/profile para refrescar las variables


Ahora vamos a la carpeta donde bajamos el source del pdo y del cliente sdk

y los descomprimimos


tar -xvf PDO_INFORMIX-1.0.0.tgz
tar -xvf clientsdk.3.50.UC6DE.LINUX.tar


Instalamos el clientsdk

nos vamos a la carpeta descomprimida de clientsdk

y tecleamos

./installclientsdk

Cuando nos pida en que directorio instalar, nos dara por default /opt/IBM
pero como la variable INFORMIXDIR la apuntamos a /opt/informix, estas deben de coincidir
asi que hay que cambiar la ruta propuesta par que quede instalado en /opt/informix.

En caso de que nos marque el siguiente error :

The wizard cannot continue because of the following error: could not load wizard specified in /wizard.inf (104)

La opcion es ejecutar el instalador asi:

sudo ./installclientsdk -console -javahome .jvm.bin

Este error pasa porque el instalador no encuentra el JRE, entonces nomas le decimos donde buscarlo con el parametro -javahome, me parece que el instalador trae un jre, entonces este parametro supongo que le esta diciendo que de ahi lo tome.






Ahora sigue compilar el modulo PDO_INFORMIX

nos vamos a la carpeta donde descomprimimos el PDO_INFORMIX
y tecleamos primeramente el phpize (debes estar dentro de la carpeta que contiene el PDO)


phpize

Si el anterior comando te marca que el phpize no existe, entonces debes de instalar el php-devel

apt-get install php-devel

o bien

apt-get install php5-devel

Reinicia tu Debian...


vuelve a entrar a la carpeta donde descomprimiste el PDO_INFORMIX
(Ejem: Escritorio/PDO_INFORMIX-1.2.6/PDO_INFORMIX-1.2.6 )
teclea nuevamente phpize

luego teclea esto:

./configure

Aqui puede haber otro error,  puede ser que te marque que no encuentra la variable de ambiente INFORMIXDIR, si es asi entonces corre el comando de esta forma especificando el opt informix:


sudo ./configure --with-pdo-informix=/opt/informix   (/opt/informix es donde instalamos el client sdk)


Es posible que aqui te marque un error de que no encuentra el php_pdo_driver.h en determinada linea, si te lo marca, entonces
edita el archivo configure y ubica las lineas siguientes
:


elif test -f $prefix/include/php/ext/pdo/php_pdo_driver.h; then
pdo_inc_path=$prefix/include/php/ext
else
as_fn_error "Cannot find php_pdo_driver.h." "$LINENO" 5

Cambialas por:

elif test -f $prefix/include/php5/ext/pdo/php_pdo_driver.h; then
pdo_inc_path=$prefix/include/php5/ext
else
as_fn_error "Cannot find php_pdo_driver.h." "$LINENO" 5

Observa que unicamente cambiamos la carpeta php por php5

Guarda y vuelve a intentarlo



./configure


make

make install

Si no te marco ningun error, entonces ya terminamos de compilar este modulo

te debio haber generado un archivo llamado asi: pdo_informix.so en la carpeta modules de la carpeta actual.


Ahora hay que copiar el archivo o modulo pdo_informix.so a la carpeta donde tengas instalados
los modulos dinamicos, en mi debian los tengo en /usr/lib, si no sabes donde estan dichos modulos
entonces revisa tu archivo php.ini y busca la linea extension_dir, el archivo php.ini, comunmente en debian esta en la ruta /etc/php5/apache2



Una vez que hayas copiado tu modulo a la carpeta de modulos, lo que sigue es editar el archivo PDO.INI paraa
especificar la extension de pdo_informix.so

el archivo pdo.ini se encuentra en: /etc/php5/conf.d/pdo.ini

Editalo y agrega esta linea -> extension=pdo_informix.so

Quedaria algo asi como esto:


; configuration for php PDO module
extension=pdo.so
extension=pdo_informix.so


ahora vamos a dar de alta los servicios en el archivo /etc/services

Agrega al final los puertos 1526 y 1527. ejemplo:

# Local services

aplicaexec 1526/tcp

sqlexec2 1527/tcp



Tambien necesitamos editar el archivo sqlhosts ubicado en /opt/informix/etc/sqlhosts

Editalo y agrega la siguiente configuracion:

nombredeinstancia onsoctcp ipdetuservidor sqlexec2

nombredeinstancia onsoctcp ipdetuservidor aplicaexec

nombredeinstancia= nombre de la instancia a la que te conectaras en informix
onsoctcp es el protocolo
slqexec2 es el nombre del serviciio en linux, especificado anteriormente en /etc/services

Aun nos falta especificar las variables de ambiente en apache, para el caso de Debian, estas se definen en el archivo envvars, el cual se encuentra en la ruta:

/etc/apache2/envvars


Editalo y agrega las siguientes lineas:

INFORMIXDIR=/opt/informix
export INFORMIXDIR

DB_LOCALE=es_es.8859-1
export DB_LOCALE


Parece ser que ya esta todo listo, procedamos a LA VERIFICACION DE CONFIGURACION


Vamos a verificar que se haya cargado el modulo pdo_informix

para ello puedes crear un script de php con el siguiente contenido:

nano miConfiguracion.php

phpinfo();
?>




Ejecutalo desde un navegador y busca la seccion de PDO, debe aparecer asi :

PDO drivers => informix, mysql, odbc, sqlite

pdo_informix

pdo_informix support => enabled

En la seccion de Environment, debe de aparecerte la variable de ambiente INFORMIXDIR, ASI:

Seccion de Environment

Te debe mostrar la variable de ambiente de INFORMIXDIR

INFORMIXDIR => /opt/IBM/informix

Esta info fue obtenida con phpinfo();


Si es asi, entonces ya quedo listo tu pdo_informix en debian lenny.

1 comentario:

Anónimo dijo...

no se en que me estoy equivocando pero no logro instalar el pdo y lo necesito urgente