jueves, 28 de agosto de 2014

Configurando el ODBC de Linux para conectar con Informix y Php


Despues de gastarme todo un dia haciendo esta conexion y encontrando tan poca o ninguna informacion en español sobre como configurar este ODBC para conectar con informix decidi hacer un pequeño tutorial que permita ver como realizar la conexion de manera sencilla y facil para el programador principiante, y que no gasten horas de frustracion tratando de encontrar errores que ya se han solucionado.

Pasos
  1. Instalar el csdk el cliente de informix para linux se puede hacer mediante una descarga o un gestor de paquetes. Instalarlo en /opt/IBM/informix.

    Esta instalacion es bastante sencilla ingresas a la pagina de IBM (http://www14.software.ibm.com/webapp/download/search.jsp?rs=ifxdl)
    Buscas la version de tu sistema operativo, te inscribes y la descargas.

    Despues de tener el csdk lo descomprimes, como usario de linux ingresas por consola a la direccion de donde lo descargaste y descomprimiste, y ejectuas el comando.

    sh cliente-informix.sh

    Donde cliente-informix.sh es un ejecutable que viene en el paquete csdk al listarlo con ls debe salir verde. ejecutas dicho sh para que se abra la instalacion.

    La instalacion sera por consola es bastante maluca pero a la vez sencilla, cuando te pida el directorio de instalacion usa /op/IBM/informix

    Nota:
    Si no quieres hacerlo de esta forma usa un gestor de paquetes como synaptyc que hace la instlacion automaticamente

  2. Sincronizar las cabezeras de los repositorios para que lean la direccion de descarga de los paquetes unix. Agregando a etc/apt/sources.list
    Con el comando nano y agregar las siguientes lineas.

    sudo nano /etc/apt/sources.list

    deb http://archive.canonical.com/ubuntu hardy partner
    deb-src http://archive.canonical.com/ubuntu hardy partner

    Esta parte se encarga de agregar las direcciones de repositorios para encontrar el paquete de instalacion de UNIX ODBC.

    Actualizo las cabezeras

    apt-get update

  3. Instalar el odbc de unix con el comando sudo (puede cambiar segun la version de linux)

    apt-get install unixodbc

  4. Exportar variables de entorno.
    Hay dos maneras de hacerlo. esta para crearlas por consola y la otra es modificando las variables para que inicien con el sistema.

    Manera uno por consola comando export.(solo quedan vivas en la sesion del terminal)

    export ODBCINI="/etc/odbc.ini"
    export ODBCININST="/etc/odbcinst.ini"
    export INFORMIXDIR="/opt/IBM/informix"
    export INFORMIXSQLHOSTS="/opt/IBM/informix/etc/sqlhosts"
    export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$INFORMIXDIR/lib:$INFORMIXDIR/lib/cli:$INFORMIXDIR/lib/esql:$INFORMIXDIR/lib/tools"

    Manera dos esta la recomiendo yo. agregamos las variables a nuestro archivo de environment ejecutamos la funcion:

    sudo nano /etc/environment

    y agregamos las lineas (hay que tener cuidado con la variable PATH dejenla quieta esta es importante para el inicio y el funcionamiento en general del sistema).

    ODBCINI="/etc/odbc.ini"
    ODBCININST="/etc/odbcinst.ini"
    INFORMIXDIR="/opt/IBM/informix"
    INFORMIXSQLHOSTS="/opt/IBM/informix/etc/sqlhosts"
    LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$INFORMIXDIR/lib:$INFORMIXDIR/lib/cli:$INFORMIXDIR/lib/esql:$INFORMIXDIR/lib/tools"
  5. Crear archivo sqlhost en /opt/IBM/informix puede ser como el de abajo, despues de crearlo copialo y pegalo en /opt/IBM/informix/etc/sqlhosts

    Explicacion de el contenido.

    Servidor  Protocolo Servidor   Puerto
    Tu_server onsoctcp  Direccion 1010 (Ejemplo)




    6. Modificamos los archivos odbc.ini y odbcinst.ini Como se ve en la imagen.Estos archivos son creados cuando instalamos unixodbc.

    Usamos el comando

    sudo nano /etc/odbc.ini
    sudo nano /etc/odbcinst.ini

    Ruta: etc/



    (odbc.ini)


    (odbcinst.ini)

    7. Comprobamos la conexion con el comando

        isql -v (nombre del odbc)

Errores comunes
  • Si presentas error coin el archivo sql host comprueba las variables de entorno, y recuerda copiar el archivo sqlhost de /opt/IBM/informix a /opt/IBM/informix/etc/. con el comando cp
  • Si presentas error con las librerias comprueba la ruta de instalacion del csdk y comprueba las variables de entorno LD_LIBRARY_PATH
Hasta esta parte tendras ya la conexion a la base de datos de informix, pero ahora como conectar php con el odbc que creamos, sencillo
Ejecuta el comando:
sudo nano /etc/apache2/envvars
Copia y pega al final del archivo las siguientes lineas


 
 Esto sirve para que apache busque el odbc en /etc/odbc.ini

Reiniciamos el apache: sudo service apache2 restart

Tendremos como resultado que en php al momento de conectar pondremos como nombre de odbc el que creamos y conectara automaticamente sin problemas.


Algunas paginas de soporte por si necesitas mas informacion.



Cualquier inquietud con gusto la atendere estamos para ayudarnos mutuamente. 

Mi E-Mail: luisfelipevalenciatellez@gmail.com

2 comentarios:

  1. Una gran guia.
    Muchas gracias por su trabajo.

    ResponderEliminar
  2. hola, de me puede ayudar con las configuraciones del apache en centos 7, ya tengo conecatdo el driver odbc, pero no puedo conectar desde el php 7.4

    ResponderEliminar