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
- 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