Instalar soporte para Oracle en PHP sobre Linux

oracle phpLuego de muchos años utilizando MySQL y PostgreSQL me veo en la necesidad de utilizar Oracle para una aplicación PHP. Si tenemos una instalación fresca de PHP o una funcional que no haya tenido anteriormente interacciones con Oracle, nos veremos en la situación de que no tenemos la extensión adecuada para la conexión y que además de eso, algunas otras aplicaciones nos faltarían. Recalco aquí, que utilizando WAMP para Windows estos pasos no son necesarios, ya que la extensión oci8.so viene incluida y solo debemos marcarla como activa.

Estos pasos fueron realizados en CentOS, para una distribución de la familia Debian es diferente. Lo primero que vamos a necesitar es el Oracle Instant Client, para obtenerlo basta entrar a este enlace para la versión de 64 bits o este enlace para la versión de 32 bits. Una vez allá se descargarán los siguientes dos ficheros:

oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm

Deben estar registrados en la página de Oracle para poder realizar las descargas, el registro es gratis. Para fines de este manual la ruta en que serán guardados los archivos es  /root.  Tras descargarlos, procedemos a instalarlos utilizando yum.

yum install /root/oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
yum install /root/oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm

El siguiente paso es instalar OCI8 mediante PECL. Para esto son necesarios algunos paquetes de PHP y el compilador de GNU Compiler Collection (GCC).

yum install php-devel php-pear gcc make
pecl install oci8

En el proceso de instalación de OCI8 se nos preguntará la ruta de las librerías de Oracle, presionamos ENTER para dejar por defecto o cambiarlas en caso de que se haya modificado. La ruta por defecto es la siguiente:

instantclient,/usr/lib/oracle/11.2/client64/lib

Tras completar estos pasos, solo nos resta agregar el módulo OCI8 a PHP, actualizar los enlaces y reiniciar el Apache.

echo "/usr/lib/oracle/11.2/client64/lib" > /etc/ld.so.conf.d/oracle.conf
echo "extension=oci8.so" >> /etc/php.ini
ldconfig
service httpd restart
Con estos sencillos pasos ya pueden utilizar Oracle desde PHP. Si quieren conocer las funciones que incluye OCI8 para PHP pueden entrar a este enlace.