Hace poco me tocó lidiar con la conección desde Elastix hacia un servidor IBM AS400 iSeries. Comparto la solución que apliqué y funcionó en mi caso:
1- Instalar dependencias:
yum install openmotif libXmu libXp libXmu-devel php-odbc unixODBC.i386
2- Buscar y descargar la aplicación iSeriesAccess 7 desde el sitio web de IBM en RPM.
3- Instalar iSeriesAccess 7:
rpm -ivh --nodeps iSeriesAccess-7.1.0-1.0.i386.rpm
4- Agregar en /etc/odbc.ini, en la opción System debe ir la dirección IP del servidor IBM:
[as400]
Description = example database connection
Driver = iSeries
System = 172.16.2.2
5- Agregar en /etc/odbcinst.ini
[iSeries]
Description = iSeries Access for Linux ODBC Driver
Driver = /opt/ibm/iSeriesAccess/lib/libcwbodbc.so
Setup = /opt/ibm/iSeriesAccess/lib/libcwbodbcs.so
#Driver64 = /opt/ibm/iSeriesAccess/lib64/libcwbodbc.so
#Setup64 = /opt/ibm/iSeriesAccess/lib64/libcwbodbcs.so
Threading = 2
DontDLClose = 1
UsageCount = 1
Después de estos sencillos cambios PHP podrá conectarse hacia el IBM y realizar consultas sql.
Si queremos probar la conectividad desde la línea de comandos podemos ejecutar lo siguiente:
isql -v as400 usuario contraseña
Donde:
isql -v es el ejecutable de unixodbc
as400 es el nombre de la conección declarado en /etc/odbc.ini
usuario es el nombre de usuario para conectarse a la base de datos
contraseña es la contraseña utilizada para conectarse a la base de datos
Si todo este bién, en consola se nos deberá mostrar algo similar a esto:
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+