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
https://panchito-kardashian.tar.mx/media/2020/02/oraclephp.jpg