jueves, 8 de enero de 2015

Instalación PHP Oracle en CentOS Redhat 7

Esta es la instalación más simple del módulo de php-oci8 en CentOS 7 sin necesidad de recompilar php como sugiere la página de Oracle.

Vamos a los pasos que seguí:
1) Bajar el rpm de Oracle Instantclient de: http://download.oracle.com/otn/linux/instantclient/121020/oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm en mi caso como se puede ver la versión de 64 bits. Puede que el enlace cambie en el tiempo, uno más genérico: http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html

2) Instalar en el servidor: yum localinstall oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm

3) Bajar el rpm de php-oci8 de: http://rpmfind.net//linux/RPM/remi/enterprise/7/x86_64/php-oci8-5.4.35-1.el7.remi.x86_64.html, el enlace más genérico: http://rpmfind.net/linux/rpm2html/search.php?query=php-oci8

4) Instalar en el servidor, pide una dependencia de php-pdo de los repositorios de remi, pero no hay problema igual funciona sin la dependencia si tienes el php-pdo de la distro del sistema instalada: rpm -ivh --nodeps php-oci8-5.4.35-1.el7.remi.x86_64.rpm

5) Añadimos las librerías para que php no tenga problemas al cargarlas:
Ejecutamos: vi /etc/ld.so.conf.d/oracle.conf
Agregamos como primera línea: /usr/lib/oracle/12.1/client64/lib/
Luego ejectamos: ldconfig

6) Lamentablemente no pude hacer correr la librería sin bajar el selinux, ejecute varios comandos sin éxito, si alguien tiene la solución para usar selinux, un comentario por favor que con gusto actualizo el paso 6. Bueno, ni modo a desactivar el selinux.
Ejecutamos el comando: vi /etc/sysconfig/selinux
y cambiamos la linea a: SELINUX=disabled y guardamos
Luego un reinicio del sistema con: reboot

Wuala!!!! tenemos php con oracle instalado y funcionando!!!, puedes crear un archivo phpinfo.php y en el contenido tener la función phpinfo(); deberías ver una sección como esta:

oci8

OCI8 Supportenabled
Version1.4.9
Revision$Id: cdb1302d3784cf3ece95ed7e5f70998212164e52 $
Active Persistent Connections0
Active Connections0
Oracle Run-time Client Library Version12.1.0.2.0
Oracle Instant Client Version12.1
Temporary Lob supportenabled
Collections supportenabled

DirectiveLocal ValueMaster Value
oci8.connection_classno valueno value
oci8.default_prefetch100100
oci8.eventsOffOff
oci8.max_persistent-1-1
oci8.old_oci_close_semanticsOffOff
oci8.persistent_timeout-1-1
oci8.ping_interval6060
oci8.privileged_connectOffOff
oci8.statement_cache_size2020