Instalar oci8 php7.4-fpm (Ubuntu)

mkdir /opt/oracle
cd /opt/oracle

Caso queira instalar outra versão pode verificar a lista abaixo, nesse tutorial vamos trabalhar com a versão 18.3.0
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/

wget https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-basic-18.3.0.0.0-3.x86_64.rpm

wget https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-devel-18.3.0.0.0-3.x86_64.rpm

alien -i oracle-instantclient18.3-basic-18.3.0.0.0-3.x86_64.rpm
alien -i oracle-instantclient18.3-devel-18.3.0.0.0-3.x86_64.rpm

Vamos adicionar o repositorio para poder baixar o php7.4 tanto o com modulo como o FPM

sudo apt-add-repository ppa:ondrej/php
sudo apt-get update

sudo apt-get install php7.4-cli php7.4-fpm php7.4-curl php7.4-gd php7.4-mysql php7.4-mbstring php7.4-xml zip unzip

Vamos instalar algumas dependências do PHP, reparem que estamos instalando também o module PHP

sudo apt-get install php7.4-cli php7.4-fpm php7.4-curl php7.4-gd php7.4-mysql php7.4-mbstring php7.4-xml zip unzip

Caso precise alterar a versão do PHP, execute o comando abaixo

sudo update-alternatives --config php

Agora vamos instalar o PECL e suas dependências

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

Caso haja mais de uma versão é importante executar o comando abaixo, o PHP-FPM o LD_LIBRARY_PATH não é respeitado no contexto PHP-FPM, mas ao executar o comando abaixo ele configura junto para executar o oci8.

sudo sh -c "echo /usr/lib/oracle/18.3/client64/lib > /etc/ld.so.conf.d/oracle-instantclient.conf"
 
sudo ldconfig

Para o PHP em Modulo esse comando abaixo do ld já funciona

export LD_LIBRARY_PATH=/usr/lib/oracle/18.3/client64/lib

https://pecl.php.net/package/oci8/2.2.0/windows (verifique a versão do oci8)

Bom agora vamos para a parte mais importante desse post instalar o oci8

sudo pecl -d php_suffix=7.4 install oci8-2.2.0;

#assim que pedir o instantclient informe a linha abaixo
instantclient,/usr/lib/oracle/18.3/client64/lib

Chegou a hora de informar ao PHP o oci8, então temos duas maneira para fazer a mesma função vamos abordas as duas, vamos l

  1. Opção para informar ao php.ini
echo "extension = oci8.so" >> /etc/php/7.4/fpm/php.ini
echo "extension = oci8.so" >> /etc/php/7.4/cli/php.ini

OU

2. Opção para informar ao php.ini

vim /etc/php/7.4/mods-available/oci8.ini

Insira esse conteúdo abaixo dentro do arquivo

;configuração para o modulo de php oci8
;priority=20
extension=oci8.so
execute o phpenmod para criar o arquivo correspondente a prioridade acima
phpenmod -v 7.4 -s ALL oci8

Após escolher uma das duas opções em cima vamos da restart no php-fpm

sudo systemctl restart php7.4-fpm
php -m | grep 'oci8'

caso retorne oci8, a configuração esta correta e pronto para usar

Você pode gostar...

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *