Instalación de la extensión oci8 para conectar a oracle desde php 5.2
Aunque lo más habitual es utilizar MySQL como base de datos conjuntamente con
PHP,
es posible utilizar prácticamente cualquier otro tipo de base de datos.
En las próximas líneas veremos cómo configurar PHP5 para que pueda
conectarse con bases de datos Oracle. Hay diferentes formas de realizar
esta configuración. En esta guía utilizaremos el “Oracle Instant Client”
de Oracle y el módulo OCI8.
El primer paso consite en crear la carpeta donde instalaremos el cliente de Oracle, por ejemplo /opt/oracle.
$ sudo mkdir -p /opt/oracle
$ sudo cd /opt/oracle
Tras esto es necesario obtener el “Oracle Instant Client”, que se puede
descargar de forma gratuita desde el Website de Oracle. Dentro de la
página de Oracle debemos buscar los paquetes Zip correspondientes a
nuestra plataforma y a la versión de Oracle con la que queramos conectar
y descargar los paquetes Basic y el
SDK.
Tras su descarga podemos copiar ambos archivos en la carpeta que hemos
creado y descomprimirlos a continuación (cambiando los números de
versión y plataforma por la que se haya descargado).
$ sudo unzip oracle-instantclient-devel-10.2.0.4-1.i386.zip
$ sudo unzip oracle-instantclient-devel-10.2.0.4-1.i386.zip
$ sudo mv instantclient_10_2 instanclient
Como último paso de la instalación del cliente debemos crear un par de
enlaces simbólicos a las librerías que se han descomprimido.
$ cd instantclient
$ sudo ln -s libclntsh.so.10.1 libclntsh.so
$ sudo ln -s libocci.so.10.1 libocci.so
Una vez hemos instalado el cliente de Oracle hay que configurar PHP5,
para lo cual utilizaremos el módulo OCI8 de PECL. El primer paso que
debemos llevar a cabo para ello es instalar con apt-get todos los
paquetes necesarios.
$ sudo apt-get install php5-dev libaio1 php-pear build-essential
Tras esto ya podemos utilizar el comando pecl para instalar el módulo OCI8.
$ sudo pecl install oci8
Al ejecutar este comando se nos pedirá la ruta de instalación del
cliente de Oracle. Debemos introducir primero un 1 y pulsar intro, se
nos volverá a preguntar, a lo cual deberemos responder
instantclient,/opt/oracle/instantclient, y se nos mostrará de nuevo la
primera pregunta, a lo que será suficiente con pulsar intro.
PHP Api Version:
20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
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:
Ya solo nos queda activar el módulo que acabamos de compilar en
PHP,
para lo cual editaremos el archivo ”/etc/php5/apache/php.ini” añadiendo la siguiente línea.
extension=oci8.so
Ya se puede reiniciar apache y comprobar la salida de phpinfo(), donde
si todo ha ido bien debería aparecer un bloque con los datos de
configuración del módulo oci8.