Oracle – Instalação da extensão OCI8 no PHP
Prezados colegas,
Primeiramente saudações “pinguianas” a todos. Vida longa e próspera!
Mais uma vez aconteceu uma situação inusitada comigo relacionada ao PHP. Nós que somos da área de Linux e infraestrutura, já estamos bem familiarizados com o LAMP Server, ou seja Linux + Apache + MySQL + PHP.
Detemos o conhecimento das diversas maneiras de implantação dessa solução, mesmo que com algumas peculiaridades.
Só que, desta vez o desenvolvedor pediu uma coisa inusitada… Pelo menos para mim, que nunca tinha feito isso.
Ele me informou que o PHP teria que consultar uma base de dados Oracle, para uma das aplicações que ele estava desenvolvendo.
Pedi a ele algum tempo para que eu pudesse levantar as possibilidades de resolver essa questão. Depois de pesquisar um pouco, descobri que existe um módulo do PHP que faz consultas em bases Oracle.
Só que não se trata de uma simples extensão PHP que você instala com o yum. existem alguns preparos e algumas dependências a serem resolvidas antes da implantação.
Nesse artigo vou ensinar como preparar um servidor Apache com PHP integrado ao sistema de banco de dados Oracle.
Então, agora chega de blá blá blá e vamos colocar a mão na massa.
Atenção: Eu sempre sugiro que copiem e colem o comando no terminal/console, para não sair errado.
Eu vou partir do princípio que você já tenha uma máquina com CentOS 7 instalada, já tenha rodado um “yum -y update” para deixá-la atualizada e que já tenha desabilitado o SELINUX. Tendo feito isso, vamos instalar o repositório “epel e o o repositório “remi”, pois é deles que baixaremos os pacotes necessários para a instalação da solução. Faça o comando abaixo:
yum install -y epel-release http://rpms.remirepo.net/enterprise/remi-release-7.rpm
Agora vamos instalar alguns pacotes básicos que auxiliam em quase todos os procedimentos. Para isso, faça o comando abaixo:
yum install -y mlocate nano mc net-tools rsync \ vim ntsysv wget zip unzip telnet tcpdump yum-utils
Agora precisamos dizer para o YUM que a versão 7.3 do PHP (do repositório remi) será a padrão. para isso, faça o comando abaixo:
yum-config-manager --enable remi-php73
Agora, instale os seguintes pacotes:
yum groupinstall -y "Development tools" yum install -y libaio systemtap-sdt-devel httpd php php-pear php-devel
Agora, vamos renomear o arquivo welcome.conf para que o apache exiba os arquivos contidos nos diretórios mesmo se não tiver nenhum index.php(htm,html,etc).
mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.default
Precisamos agora baixar os pacotes RPM relacionados ao Oracle. Para isso, faça o comando abaixo:
wget -c https://downloads.aprendendolinux.com/oci8-rpms.tar.gz
Descompacte e entre na pasta:
tar -zxf oci8-rpms.tar.gz cd oci8
Obs.: Se você quiser sempre baixar as últimas versões desses pacotes, você deve acessar o site oficial da Oracle (https://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html) e efetuar o download dos seguintes pacotes:
- oracle-instantclient*-basic-*.x86_64.rpm
- oracle-instantclient*-devel-*.x86_64.rpm
- oracle-instantclient*-jdbc-*.x86_64.rpm
- oracle-instantclient*-odbc-*.x86_64.rpm
- oracle-instantclient*-sqlplus-*.x86_64.rpm
- oracle-instantclient*-tools-*.x86_64.rpm
Idependente de você baixar daqui do Portal Aprendendo Linux ou do site da Oracle, é preciso instalar os pacotes. Então, faça o comando abaixo:
rpm -ivh oracle-instantclient*.rpm
Agora vamos preparar a compilação. Faça os comandos exatamente nessa ordem:
pear download pecl/oci8 tar -xzf oci8-*.tgz cd oci8-* phpize export PHP_DTRACE=yes
Agora precisamos instalar usando o comando abaixo.
pecl install oci8
ATENÇÃO: Durante a instalação, será perguntado o caminho das libs do Oracle. Se você usou a versão que eu disponibilizei aqui, você deve inserir isso:
“instantclient,/usr/lib/oracle/19.3/client64/lib” (sem aspas).
Caso tenha baixado no site da Oracle, você deve inserir o caminho de acordo com a versão escolhida.
Agora vamos adicionar as configuração do php. Faça o comando abaixo:
cat >> /etc/php.ini << EOF [OCI8] extension=oci8.so EOF
Precisamos colocar o apache pra subir no boot. Faça o comando abaixo:
systemctl enable httpd
E agora, finalmente vamos iniciar o apache com o comando abaixo:
systemctl start httpd
Vamos criar um arquivo para exibir as informações do php:
echo "<?php phpinfo(); ?>" > /var/www/html/info.php
Eu vou imaginar que as portas de acesso ao apache já estejam aberta no firewall nativo do CentOS 7 (caso esteja habilitado). Mas, caso não esteja, faça os comandos abaixo:
firewall-cmd --permanent --zone=public --add-service=http firewall-cmd --permanent --zone=public --add-service=https firewall-cmd --reload
Agora vamos testar:
http://ip-do-servidor/info.php
Se tudo deu certo, você verá o drive OCI8 nas informações do PHP.
Isso é tudo!
Esse artigo foi útil? Colabore com o nosso site para podermos continuar dando mais dicas como essa!
Formas de doação:
- Boleto / Cartão de crédito: https//bit.ly/AprendendoLinux
- Pix: [email protected]
- PicPay: @henrique_fagundes
- PayPal: [email protected]
- Bitcoin: bc1qtnn5z058htzy799dslwrpjcdpm0vuta3vrj28l
Favorecido: Luiz Henrique Marques Fagundes