Soporte ORACLE para php5 en Ubuntu

Saludos,

El escenario que estaba trabajando es el siguiente:

Servidor web con LAMP, pero aparece una base de datos oracle para tareas específicas en otro servidor, entonces por defecto no tenemos soporte en nuestro servidor web para conectarnos a este tipo de base de datos y desde luego hay que instalar algunas cosas si no queremos obtener el mensaje de Call to undefined function ocilogon en nuestros scripts de php.

Manos a la obra:

1. Verificar que tengamos instalados estos paquetes (no se si son necesarios todos, información leída de otros blogs):

sudo apt-get install php5-dev php5-cli php-pear libaio1

2. Descargar e instalar el cliente llamado Oracle Instant Client, que se puede descargar desde su sitio web . Actualmente la ultima versión de estos 3 paquetes son la 11.2.0.1.0, que están en .zip o en .rpm y que podemos escoger los rpm y convertirlos con alien, tarea que ya hizo alguien y que he querido usar estos paquetes.deb desde aquí: http://zital.no-ip.org/debian/oracle/ son una versión más viejita pero me ha funcionado a la perfección. Para instalarlos:

dpkg -i oracle-instantclient-basic_11.1.0.1-2_i386.deb
dpkg -i oracle-instantclient-devel_11.1.0.1-2_i386.deb
dpkg -i oracle-instantclient-sqlplus_11.1.0.1-2_i386.deb

La ruta donde quedan estos archivos instalados es: /usr/lib/oracle/11.1.0.1/ esto lo usaremos en otro paso.

No es necesario comprobar que existan estos dos archivos o enlaces a los originales, pero tener en cuenta por si falla algo:

libclntsh.so
libocci.so

3. Luego ejecutar el comando pecl install (PECL es un repositorio de extensiones de PHP, proporcionando un directorio de todas las extensiones conocidas y que alberguen las instalaciones para la descarga y el desarrollo de extensiones de PHP.) , para crear el oci8.so necesario para nuestro objetivo final:

sudo pecl install oci8

Esto nos pide la ruta al directorio de oracle, que es lo que anotamos en el punto 2

Te debe salir algo así:

PHP Api Version:       xxxxxx
Zend Module Api No:    xxxxxx
Zend Extension Api No: xxxxxx
 1. Please provide the path to the ORACLE_HOME directory. Use 'instantclient,/path/to/instant/client/lib' if you're compiling with Oracle Instant Client : autodetect

1-1, 'all', 'abort', or Enter to continue:
  • Escribe el número 1 y presiona enter
  • Lluego escribe esto como ruta o la que corresponda, según la versión que descargaste o donde hayas descomprimido los archivos:

instantclient,/usr/lib/oracle/11.1.0.1/client/lib/

  • Lluego, nuevamente te pregunta, presiona enter para continuar

Si toda ha salido bien, se ha creado el archivo de soporte oci8.so ahora solo toca agregar extension=oci8.so a la configuracion de apache en /etc/php5/apache2/php.ini luego reinicia el servicio:

sudo /etc/init.d/apache2 restart

y verifica con un phpinfo que te salga el soporte para oci8 como muestra esta imagen.

Es todo.. ahora ejecuten su script php de prueba de conexión a la base de datos ORACLE y verifiquen..!!

Anuncios

5 Replies to “Soporte ORACLE para php5 en Ubuntu”

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s