Instalación en Ubuntu del cliente de Oracle OCI8 para PHP5
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.
Gracias capo… estaba cansado de buscar algo que funcione… 😉
Hola Buenas tardes, ¿es necesario el oracle insntancliente, no se puede únicamente con oracle ex universal?
Hola, me manda un error a la hora de usar pecl, presiono el 1 continua y ya no me pregunta nada, y al final me manda un error, previamente instale el oracle ex universal
El error se soluciono colocando este comando primero para actualizar pecl
pecl channel-update pecl.php.net
y después el comando
sudo pecl install oci8