Instalar OCI8 en CentOS
Esta instalación está hecha sobre un Centos CentOS Linux release 7.2.1511 de 64 bits
Version de PHP 5.6.30
Version de Apache 2.4.6
Base de datos Oracle 11g - Cualquier release.
Instalar las siguientes librerías:
# yum install php-pear php-devel zlib zlib-devel bc libaio glibc
# yum groupinstall "Development Tools"
# yum install php-pear php-devel zlib zlib-devel bc libaio glibc
# yum groupinstall "Development Tools"
Descargar del siguiente enlace el Oracle instantclient:
Para Oracle 11g y php5.6:
oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm
oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
Ejecutar:
# rpm -ivh oracle-instantclient*
Una vez instalado el Oracle instantclient, crear los enlaces simbólicos:
# ln -s /usr/include/oracle/11.2/client64 /usr/include/oracle/11.2/client
# ln -s /usr/lib/oracle/11.2/client64 /usr/lib/oracle/11.2/client
Ahora configuraremos la variable LD_LIBRARY_PATH para indicar donde están instaladas las librerías de Instant client:
# echo "export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib" > /etc/profile.d/oracle.sh
# source /etc/profile.d/oracle.sh
Instalar PDO_OCI
Descargar de:
Desempaquetar el tgz en /tmp
# tar -xzvf PDO_OCI-1.0.tgz
# cd PDO_OCI-1.0
Vamos a configurar el PHP para usar PDO_OCI:
# phpize
# ./configure --with-pdo-oci=instantclient,/usr,11.2
# ./configure --with-pdo-oci=instantclient,/usr,11.2
Para evitar el siguiente error con la distribución 11.2 (o superior) de Oracle Instant client debemos editar el archivo config.m4:
configure: error: Unsupported Oracle version! 11.2
Editamos el archivo config.m4 aplicando los siguientes cambios:
# vi config.m4
Agregar las siguientes líneas:
Lineas 10 y 11:
elif test -f $PDO_ODI_DIR/lib/libclntsh.$SHLIB_SUFFIX_NAME.11.2; then
PDO_OCI_VERSION=11.2
En las líneas 103, 104 y 105
11.2)
PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD)
;;
Una vez realizado esto debemos editar el archivo pdo_oci.c, con esto evitamos al hacer el make los errores (entre otros):
make: *** [pdo_oci.lo] Error 1
Editamos el archivo pdo_oci.c
# vi pdo_oci.c
Aplicamos los siguientes cambios:
Reemplazamos en la línea 34:
function_entry por zend_function_entry
Solvento esto podemos terminar la configuración:
# make
# make install
Luego incluimos el módulo en PHP y reiniciamos el apache:
# echo "extension=pdo_oci.so" > /etc/php.d/pdo_oci.ini
# service httpd restart
Para validar el módulo PDO_OCI fue instalado y configurado en php ejecutamos:
php -i | grep oci
Deberia retornar algo similar a:
PDO drivers => mysql, oci, sqlite
Instalar OCI8
Descargar de:
Desempaquetar en /tmp
# tar -xvf oci8-1.4.9.tgz
Configurar para compilar:
# cd oci8-1.4.9
# phpize
# ./configure --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client64/lib
# phpize
# ./configure --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client64/lib
Compilar e instalar
# make
# make install
# make install
Incluir OCI8 en PHP y reiniciar el apache:
# echo "extension=oci8.so" >> /etc/php.d/oci8.ini
# service httpd restart
# service httpd restart
Verificar la instalación:
# php -i | grep oci8
El resultado debe ser algo similar a:
/etc/php.d/oci8.ini,
/etc/php.d/pdo_oci.ini,
oci8
oci8.connection_class => no value => no value
oci8.default_prefetch => 100 => 100
oci8.events => Off => Off
oci8.max_persistent => -1 => -1
oci8.old_oci_close_semantics => Off => Off
oci8.persistent_timeout => -1 => -1
oci8.ping_interval => 60 => 60
oci8.privileged_connect => Off => Off
oci8.statement_cache_size => 20 => 20
PDO drivers => mysql, oci, sqlite
De esta manera PHP está habilitado de acceder a bases de datos Oracle.
A mi me funciono tambien para 12 cambiando los valores de modificación del archivo de PDO_OCI config.m4 de 11.2 a 12.1 o el release requerido.
MUCHAS MUCHAS GRACIAS!!!!
ResponderEliminarcon que comando descargo y donde se guarda para descomprimir por me sale no encontrado
ResponderEliminar