Instalando OCI8 e Oracle Instant Client no Ubuntu
Uma maneira fácil de acessar banco de dados Oracle com PHP é utilizar conexão pela interface Oracle Call Interface (OCI). Para isso você deverá ter o cliente Oracle e o OCI configurado em seu servidor.
Se você já fez isso sabe como é chato ter que compilar o Instant Client Oracle e depois o OCI com as propriedades corretas para que funcionem. Em uma dessas tentativas pensei em utilizar pacotes rpm disponíveis no site da Oracle para instalar a extensão no Ubuntu e o resultado foi positivo. Veja como instalar fácilmente suporte a Oracle no PHP em seu servidor linux.
1. Pacotes
Antes de tudo certifique-se que você tem os seguintes pacotes instalados: php5-dev, build-essential, php-pear e também libaio1.
Se você não tiver os pacotes pode instalar todos utilizando o comando:
sudo apt-get install php5-dev build-essential php-pear libaio1
2. Download
Próximo passo é fazer o download dos pacotes rpm necessários para a instalação do cliente Oracle. Você irá precisar dos seguintes arquivos:
Basic – oracle-instantclient11.2-basic-11.2.0.1.0-1.i386.rpm ~ 44MB
Devel – oracle-instantclient11.2-devel-11.2.0.2.0.i386.rpm ~ 590KB
Atenção para a versão do seu sistema. Caso seu sistema for 64 bits deverá baixar a versão apropriada.
Todas as versões do cliente podem ser encontradas no link abaixo.
Download Oracle Instant Client:
https://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
3. Convertendo Pacotes
O que temos que fazer é converter os pacotes tipo rpm para tipo deb utilizando o Alien.
Instalando o Alien
sudo apt-get install alien
Com o Alien instalado basta converter os pacotes:
sudo alien oracle-instantclient11.2-basic-11.2.0.1.0-1.i386.rpm sudo alien oracle-instantclient11.2-devel-11.2.0.2.0.i386.rpm
Neste ponto o Alien converteu seus arquivos para pacotes tipo deb, olhando na mesma pasta você deverá encontrar os arquivos convertidos.
4. Instalando o Cliente
Agora basta instalarmos o cliente utilizando os pacotes tipo deb.
sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.i386.deb sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.2.0.i386.deb
5. Instalando OCI8/PHP
Seu cliente Oracle ja está instalado, próximo passo é a instalação da extensão PHP OCI8.
sudo pecl install oci8
Atenção: Durante a instalação será solicitado para entrar com o caminho do cliente Oracle. Basta deixar em branco e o sistema irá encontrar a o caminho do instant client automaticamente. (Fácil não?)
6. Configurando
OCI8 instalado agora é só informar ao PHP para utilizar a extensão.
Crie um arquivo chamado oci8.ini com o conteúdo: extension=oci8.so
Salve o arquivo na pasta /etc/php5/conf.d/ e reinicie o Apache.
sudo /etc/init.d/apache2 restart
Se tudo ocorreu bem o Apache vai reiniciar sem problemas. Você pode conferir a instalação rodando um phpinfo() no servidor.
Um exemplo simples de script para testar a conexão.
<?php $dbstr ="(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL) ))"; if($conn0 = oci_connect('usuario','senha', $dbstr)): print "CONECTADO EM 192.168.1.1"; else: print "ERRO NA CONEXAO"; endif; ?>
Servidor pronto para trabalhar com PHP e Oracle.
Para saber mais sobre OCI8 com PHP consulte a documentação oficial em https://br3.php.net/manual/pt_BR/book.oci8.php
Gostou? Compartilhe.
Mto bom, sempre é bom ter uma alternativa mais fácil.
Funcionou perfeitamente, obrigado. Abraços
Bah! Parabéns pelo post…estou iniciando com Linux, e foi perfeito. Segui todos os passos e tá tudo funcionando perfeitamente. Simples e claro.
Muito obrigado e mais uma vez parabéns.
Perfeito, funcionou tudo certinho, obrigado!
Show de bola mano! 😀
Efetuei todos os procedimentos acima e me retorna o seguinte
Warning: ocilogon(): ORA-24408: could not generate unique server group name in /var/www/index.php on line 14
ERRO NA CONEXAO
A base existe e funciona corretamente conectando via sqlDeveloper da oracle.
ja tentei com oci_connect, ociLogon, …
Sabe o que ocorre?
Estava com o mesmo problema, o que fiz foi
sudo /etc/hostname
e alterei o conteudo para 127.0.0.1
no meu caso este conteudo tinha sido alterado anteriormente.
[…] https://help.ubuntu.com/community/Oracle%20Instant%20Client https://vinteum.com/instalando-oci8-e-oracle-instant-client-no-ubuntu/ […]
Parabéns, funcionou na primeira, olhei muitos lugares mas aqui achei a solução.
obrigado por compartilhar o conhecimento.
Da mesma forma que recebi vou repassar o mais que puder.
Abraço
Funcionou sem mais problemas.
Xubuntu 12.10
Oracle 11g
Valeu !
Ao chegar ao passo 5, tenho o seguinte erro:
sudo pecl install oci8
No releases available for package “pecl.php.net/oci8”
install failed
Alguma ideia do que pode estar acontecendo?
Obrigado.