Usar el cliente 19.5 de Oracle con PHP en Ubuntu 18.04 LTS

Usar el cliente 19.5 de Oracle con PHP en Ubuntu 18.04 LTS

Hay funciones predefinidas para ejecutar consultas a una base de datos de Oracle en PHP, sin embargo, hay que instalar el SDK y el cliente para poder usarlas. Va una guía de cómo hacer funcionar la combinación en un Ubuntu Server 18.04 LTS, probablemente sirva para otras distribuciones. Descargamos el cliente de Oracle de la página oficial, en este caso es: ^instantclient-basic-linux.x64-19.5.0.0.0dbru.zip ^instantclient-sdk-linux.x64-19.5.0.0.0dbru.zip (La versión BASIC y el SDK) Una vez descargados los subimos a nuestro servidor, en este caso los dejaré en /tmp, luego:

^apt install unzip
apt-get install libaio1 libaio-dev
cd /tmp
instantclient-basic-linux.x64-19.5.0.0.0dbru.zip
unzip instantclient-sdk-linux.x64-19.5.0.0.0dbru.zip 
sudo mv instantclient_19_5 /usr/local/lib/
# añadimos a /etc/environment
LD_LIBRARY_PATH="/usr/local/lib/instantclient_19_5"
ORACLE_BASE="/usr/local/lib/instantclient_19_5"
TNS_ADMIN="/usr/local/lib/instantclient_19_5"
ORACLE_HOME="/usr/local/lib/instantclient_19_5"
# cargamos la config
source /etc/environment
# comprobamos que esté bien:
echo $ORACLE_HOME
# lo anterior nos debe dar de resultado en consola: /usr/local/lib/instantclient_19_5
# instalamos pear (pecl) y php dev, luego oci8
apt install php-pear php7.2-dev
pecl install oci8
# Cuando nos pregunte la localización del SDK y Oracle, escribimos: 
instantclient,/usr/local/lib/instantclient_19_5
# Si todo salió bien, al final dirá un mensaje:
Build process completed successfully
Installing '/usr/lib/php/20170718/oci8.so'
install ok: channel://pecl.php.net/oci8-2.2.0
configuration option "php_ini" is not set to php.ini location
You should add "extension=oci8.so" to php.ini
# Ahora, debemos crear la configuración para que PHP la cargue:
echo "extension=oci8.so" | tee /etc/php/7.2/mods-available/oracle.ini
# listo, ahora si queremos añadirlo a PHP-FPM:
cd /etc/php/7.2/fpm/conf.d && ln -s /etc/php/7.2/mods-available/oracle.ini ./20-oracle.ini
# en línea de comandos PHP-CLI:
cd /etc/php/7.2/cli/conf.d && ln -s /etc/php/7.2/mods-available/oracle.ini ./20-oracle.ini
# este paso es importante: añadimos la biblioteca del cliente de oracle a ldconfig:
echo $ORACLE_HOME | tee /etc/ld.so.conf.d/oracle.conf
# Reiniciamos PHP FPM, bibliotecas
/etc/init.d/php7.2-fpm restart
ldconfig -v
### listo, ahora comprobamos que PHP lo tenga
$ php -i | grep -i oracle
 lo anterior, daría una salida como:
/etc/php/7.2/cli/conf.d/20-oracle.ini,
Oracle Run-time Client Library Version => 19.5.0.0.0
Oracle Compile-time Instant Client Version => 19.5

De preferencia ejecutar todos los comandos con sudo

+ fotos / videos

Almacenado en Oracle, PHP Oracle, PHP

por Jorge Martínez Mauricio :)

blog / fotos / archivo

Usar el cliente 19.5 de Oracle con PHP en Ubuntu 18.04 LTS

tar.mx es un blog sobre fotografía, tecnología y otras chunches

modificado lunes 12 de julio de 2021, 11:44

cuentame