====== 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 Version|12.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
ln -s libclntsh.so.10.1 libclntsh.soln -s libocci.so.10.1 libocci.so
Reportele el directorio a ld con
echo /opt/oracle/instantclient >> /etc/ld.so.conf
o
echo "/usr/lib/oracle/10.2.0.3/client/lib" >> ld.so.conf
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.
----