====== 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. ----