jueves, 22 de junio de 2017

Debian Jessie PHP access Oracle Database (OCI8) (Linux)

Se necesita instalar un PHP Web Server para poder acceder a la base de datos Oracle.
        Configurar PHP con OCI8
    1. Primero instalamos Apache y  PHP
    1. Bajamos los dos paquetes necesarios para Oracle:
Oracle Instant Client Downloads for Linux x86-64
Instant Client Package – Basic Lite: Smaller version of the Basic package, with only English error messages and Unicode, ASCII, and Western European character set support
Download instantclient-basiclite-linux.x64-12.1.0.2.0.zip (31,302,454 bytes) (cksum – 3592144768)
Instant Client Package – SDK: Additional header files and an example makefile for developing Oracle applications with Instant Client
Download instantclient-sdk-linux.x64-12.1.0.2.0.zip (667,174 bytes) (cksum – 1047596065)
Nota: si no están estas dos versiones no importa se puede bajar la mas actual.
Oracle_Instant_Client

    1. Subir los dos paquetes al Servidor, descomprimirlos en la carpeta (luego los moveremos de lugar):
Creamos un link del archivo libclntsh.so.12.1 a libclntsh.so
Asegurarse que los archivos y carpetas se encuentran dentro del skd/:
ls -alt /usr/lib/oracle/12.1/client64/lib/
De manera opcional agregamos el LD_LIBRARY dentro del archivo: /etc/ld.so.conf.d/x86_64-oracle.conf
Corremos el comando ldconfig para aplicar los cambios.
    1. Instalamos OCI8 para PECL
http://pecl.php.net/package/oci8
Use la extension OCI8 para accesar a Oracle Database. PHP OCI8 2.1 creados en PHP 7.
Use ‘pecl install oci8-2.0.10’ para instalar OCI8 para PHP 5.2 – PHP 5.6.
Use ‘pecl install oci8-1.4.10’ para instalar PHP OCI8 1.4 para PHP 4.3.9 – PHP 5.1.
Debian Jessi comes with PHP 5.6, when it ask the path for library give it the directory where the library located:
Crear un el archivo oci8.ini para php: /etc/php5/mods-available/oci8.ini
Referencias:
http://php.net/manual/en/oci8.installation.php
http://www.oracle.com/technetwork/articles/technote-php-instant-084410.html
En caso de que arroje el siguiente mensaje de error al iniciar Apache:
# cat error.log
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib/php5/20131226/oci8.so’ – libaio.so.1: cannot open shared object file: No such file or directory in Unknown on line 0
[Mon Oct 17 16:06:28.407599 2016] [mpm_prefork:notice] [pid 21276] AH00163: Apache/2.4.10 (Debian) configured — resuming normal operations
[Mon Oct 17 16:06:28.407640 2016] [core:notice] [pid 21276] AH00094: Command line: ‘/usr/sbin/apache2’
Asegurese que el archivo oci8.so existe:
# ls /usr/lib/php5/20131226/oci8.so
E instale Libaio:
# apt-get install libaio1