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
- 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.shDonde 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/informixNota:Si no quieres hacerlo de esta forma usa un gestor de paquetes como synaptyc que hace la instlacion automaticamente
- Sincronizar las cabezeras de los repositorios para que lean la direccion de descarga de los paquetes unix. Agregando a etc/apt/sources.listCon el comando nano y agregar las siguientes lineas.sudo nano /etc/apt/sources.listdeb http://archive.canonical.com/ubuntu hardy partnerdeb-src http://archive.canonical.com/ubuntu hardy partnerEsta parte se encarga de agregar las direcciones de repositorios para encontrar el paquete de instalacion de UNIX ODBC.Actualizo las cabezerasapt-get update
- Instalar el odbc de unix con el comando sudo (puede cambiar segun la version de linux)
apt-get install unixodbc - 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" - 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






Una gran guia.
ResponderEliminarMuchas gracias por su trabajo.
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