Tabla de Contenidos

php-oracle

Descripción

Como hacer para conectar PHP con Oracle

Prerequistos

Un sistema instalado con php funcional

Procedimiento

A. Instalación Oracle Instant Client

Descargue de oracle el instantcliente. Toca tener el basic y el devel. Ademas instalar el sqlplus es chevere para hacer pruebas de conexion por linea de comandos.

http://download.oracle.com/otn/linux/instantclient/121020/instantclient-basic-linux.x64-12.1.0.2.0.zip
http://download.oracle.com/otn/linux/instantclient/121020/oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm

O del ftp local de skina .. que hay una copia inclusive de un *.deb convertido con alien.

Instale los rpms, debs o tar,gz ofrecidos por Oracle y garantice que que ld los vea.

Eso se hace con

rpm -Uvh instant-client*.rpm       o            dpkg -i instant-client*.deb

Me interesa particularmente realmente las librerias libclntsh.so y libocci.so .
 

B. El modulo OCI8 de php

Instale el modulo de pear … php-pear que es una extension de librerias de php

  > rpm -Uvh php-pear  php-devel

Ahora agregue el modulo de pear que soporta Oracle. Baje la version de oci8 para pear con

pecl dowload oci8            .. o pecl install oci8   (pero a  mi on me funciona)



Si No sirve el pear install .. toca bajarlo, descomprimirlo, compilarlo e instalarlo

mkdir -p /usr/local/src
cd /usr/local/src
pear download oci8
tar xzf oci8-1.1.1.tgz
cd oci8-1.1.1
phpize
./configure –with-oci8=shared,instantclient,/opt/oracle/instantclient

make
make install

Para la version 2.0 y con los ultimos instant client es identico solo que el configure es un poco diferente
./configure –with-oci8=shared,instantclient,/usr/lib/oracle/12.1/client64/lib

make 
make test 
make install
OJO: El phpize esta en php-devel  (php5-dev).. y toca instalarlo. Consiste con la version de php que tenga.

– http://php.net/oci8      


Centos 7 y PHP 5.4  … pecl install oci8-1.4.10
Debian 9 y PHP 7.3  

Para cuando se tenga diferentes versiones de php .. toca hacerlo a mano para cada uno

phpize7.2
./configure –with-php-config=/usr/bin/php-config7.2
make
make install
 

C. Configure el sistema para que lo coja

Apache - PHP

Edit php.ini and enable the OCI8 extension with:

extension=oci8.so

El sistema operativo

Necesita que use la librerias de oracle en /etc/ld.so.conf.d/oracle.conf con el contenido

/usr/lib/oracle/11.2/client64/lib.

Y corra ldconfig

– http://www.oracle.com/technetwork/articles/technote-php-instant-084410.html

D. Prueba que funciona

Recuerde reiniciar apache    

  service apache2 restart  …. o service httpd restart


Cree un prueba.php con   phpinfo()  y debes tener

oci8

OCI8 Support enabled
OCI8 DTrace Support disabled
OCI8 Version 2.0.8
Revision $Id: f04114d4d67cffea4cdc2ed3b7f0229c2caa5016 $
Oracle Run-time Client Library Version 12.1.0.2.0
Oracle Compile-time Instant Client Version12.1


Problemas

1. Truco para el 1.1.1

El truco reside en meterle mano al configure del modulo oci8 de pear. Porque solo hay sorpote para 10.1 y no 10.2.

2. NO coge las librerias de oracle  

En algunos es necesario hacer 

<HTML><blockquote>

ln -s libclntsh.so.10.1 libclntsh.soln -s libocci.so.10.1 libocci.so

</blockquote></HTML> Reportele el directorio a  ld con

<HTML><blockquote>

echo /opt/oracle/instantclient >> /etc/ld.so.conf

</blockquote></HTML> o

<HTML><blockquote>

echo "/usr/lib/oracle/10.2.0.3/client/lib" >> ld.so.conf

</blockquote></HTML> Ahora solo basta reconstruir la base de datos de librerias con

ldconfig

3. Necesito una version anterior de oci8 porque no soporta el php que tengo

-  pear download oci8-1.2.0

4. Compilando oci8 v 11


Me toco buscarlo en tmp y meterle mano a configure para

#  OCISDKZIPINC=$PHP_OCI8_INSTANT_CLIENT/sdk/include
  OCISDKZIPINC=“/usr/include/oracle/11.1.0.1/client”

y luego correr

./configure –with-oci8=shared,instantclient,/usr/lib/oracle/11.1.0.1/client/lib/

Referencias

Desde Oracle para 5.4 y Oracel 11g

- https://developer.oracle.com/dsl/technote-php-instant.html

Ha sido completada … siguiendo los vinculos

-  http://ubuntuforums.org/showthread.php?t=92528    –  para oci8 1.1

-  http://cofradia.org/modules.php?name=News&file=article&sid=16632

Otras referencias

- http://serverfault.com/questions/209570/setup-oracle-instant-client-on-centos-rhel-linux-for-php-and-perl

 

FIN

15-Marzo-2006 J.E.Gomez v1.0 Primera version


Advertencia

Este documento es privado y es de uso exclusivo de sus autores y de SKINA TECH. Cualquier uso sin una autorización escrita es contra la ley de derechos de autor y de propiedad intelectual, y será motivo de una acción legal.