http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
Download files:
Basic Package (ZIP): instantclient-basic-linux.x64-21.x.zip
SDK Package (ZIP): instantclient-sdk-linux.x64-21.x.zip
** Notece que debe ser la version que este actualmente para su descarga
Crear un folder para Oracle Instant Client y server
sudo mkdir /opt/oracle
sudo mkdir /opt/oracle/21.x
sudo mkdir /opt/oracle/21.x/client64
Extraer los archivos
sudo cp instantclient-basic-linux.x64-21.x.zip /opt/oracle/21.x/client64
sudo cp instantclient-sdk-linux.x64-21.x.zip /opt/oracle/21.x/client64
cd /opt/oracle/21.x/client64
sudo unzip instantclient-basic-linux.x64-21.x.zip
sudo unzip instantclient-sdk-linux.x64-21.x.zip
sudo mv instantclient_21_x lib
Crear link symbolico a la los archivos de Instant Client:
cd /opt/oracle/21.x/client64/lib/
sudo ln -s libclntsh.so.21.x libclntsh.so (It may already exist, continue)
sudo ln -s libocci.so.21.x libocci.so (It may already exist, continue)
Editar/Crear este archvo con el path a la libreria (para LDCONFIG):
sudo echo /opt/oracle/21.x/client64/lib > /etc/ld.so.conf.d/oracle.conf
Actualizar Dynamic Linker
ldconfig
Instalar php-dev php-pear build-essential y libaio1
sudo apt-get install php-dev php-pear build-essential libaio1
Actualizar PECL e instalar OCI8 desde alli
sudo pecl channel-update pecl.php.net
Instalar OCI8 desde PCEL (decide la version, por defecto instala la version que encuentre en el sistema, yo uso la 8)
sudo pecl install oci8 (php 8)
sudo pecl install oci8-2.2.0 (php 7.)
Durante la instalaciion usted necesita agregar la ruta a Instant Client, escriba esto:
instantclient,/opt/oracle/21.x/client64/lib
Al finalizar tendra algo como esto:
Build process completed successfully
Installing '/usr/lib/php/20190902/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
agregar la libreria OCI8 en php PHP
sudo echo "extension=oci8.so" >> /etc/php/8.0/cli/php.ini
Reinicie Apache
sudo systemctl restart apache2
agrege a mods-available
cd /etc/php/8.0/mods-available/
sudo nano oci.ini
Agrege esto en el archivo:
extension = oci8.so
Crear sym link al archivo creado
cd /etc/php/8.0/apache2/conf.d
sudo ln -s /etc/php/8.0/mods-available/oci.ini 20-oci.ini
Reinicie Apache
sudo systemctl restart apache2
Verifique si OCI esta cargado en PHP
php -i | grep oci
Dara una salida como esta:
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
Baseado en post de Carlos Juan
https://www.cjorellana.net/2020/12/como-instalar-oci8-en-ubuntu-2004-y-php.html y eSkiSo/install_oci8_ubuntu20_php7.4.md https://gist.github.com/eSkiSo/781269c79b4dd740e90fcc059c1985ae