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