Passei HORAS apanhando pra fazer essa lib funcionar no PHP 7.4, então vou compartilhar o passo a passo QUE DEU CERTO pra mim. Se você tá aqui, provavelmente também tá no desespero. Bora tentar mais um tutorial!

Primeiro de tudo baixa esses trem da Oracle

Download do Oracle Instant Client e do SDK no site da Oracle
(Precisa criar conta na Oracle) pode ser versão mais recente

Arquivos:
instantclient-basic-linux.x64-23.7.0.25.01.zip e
instantclient-sdk-linux.x64-23.7.0.25.01.zip

Segundo passo!

Você precisa criar uma pasta e fazer upload dos zips em seu servidor

mkdir /opt/oracle

Agora extrai os zips

cd /opt/oracle
unzip instantclient-basic-linux.x64-23.7.0.25.01.zip
unzip instantclient-sdk-linux.x64-23.7.0.25.01.zip

Terceira passo

É necessário criar um link simbólico

ln -sf /opt/oracle/instantclient_23_7/libclntsh.so.23.7 /opt/oracle/instantclient_23_7/libclntsh.so
ln -sf /opt/oracle/instantclient_23_7/libocci.so.23.7 /opt/oracle/instantclient_23_7/libocci.so

Quarto passo

Atualiza as libs do sistema

echo /opt/oracle/instantclient_23_7 > /etc/ld.so.conf.d/oracle-instantclient

Depois comando

ldconfig

Agora vem a parte em que demorei bastante entender: como estou usando PHP 7.4, precisei de uma versão específica do oci8

Caso você não tenha essa pacotes instalados

apt-get install php-dev php-pear build-essential libaio1

Agora O PULO DO GATO pro PHP 7.4:

wget https://pecl.php.net/get/oci8-2.2.0.tgz
tar -xvzf oci8-2.2.0.tgz
cd oci8-2.2.0
phpize
./configure --with-php-config=/usr/bin/php-config7.4 --with-oci8=instantclient,/opt/oracle/instantclient_23_7
make
sudo make install

Habilita a extensão e reinicia TUDO

echo "extension =oci8.so" >> /etc/php/7.4/fpm/php.ini
echo "extension =oci8.so" >> /etc/php/7.4/cli/php.ini
echo "extension =oci8.so" >> /etc/php/7.4/apache2/php.ini

sudo systemctl daemon-reexec && sudo systemctl restart apache2
sudo systemctl restart php7.4-fpm

Mais uma coisa

Testa pra ver se foi!

No phpinfo.php e busca por oci8. Se aparecer, DEU BOM! 🎉

Se não aparecer, chora um pouco e depois confere:

  1. Variáveis de ambiente(essa daqui importante)

(export LD_LIBRARY_PATH=/opt/oracle/instantclient_23_7:$LD_LIBRARY_PATH)

  1. Logs do Apache/PHP-FPM (/var/log/apache2/error.log ou journalctl -xe)
  2. Verifica extensão
php -m | grep oci8

Tente novamente o comando

ldconfig