DEV Community

Cover image for Tutorial OCI8 + PHP 7.4 – O Guia para não bater a cabeça na tela
lauriely lourenço
lauriely lourenço

Posted on

Tutorial OCI8 + PHP 7.4 – O Guia para não bater a cabeça na tela

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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

Enter fullscreen mode Exit fullscreen mode

Quarto passo

Atualiza as libs do sistema

echo /opt/oracle/instantclient_23_7 > /etc/ld.so.conf.d/oracle-instantclient
Enter fullscreen mode Exit fullscreen mode

Depois comando

ldconfig
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Tente novamente o comando

ldconfig
Enter fullscreen mode Exit fullscreen mode

Top comments (0)