Jan
12
2016

Instalando OCI8 e Oracle Instant Client no Debian ou Ubuntu

Publicação por Mauro Cesar Fileto – 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 ou você poderá pesquisar no Google pelo nome corresponente.

Download Oracle Instant Client:

http://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 (para versão 7 ou superior do PHP)
ou
sudo pecl install oci8-1.4.10 (para versão 5.2 a 5.6 do PHP)
  • Neste ponto encontrei uma dificuldade. Não consegui instalar o pacote oci8 automaticamente e tive que fazer a compilação do mesmo manualmente. Para isso baixei o pacote com “pecl download oci8-1.4.10”, descompactei a aplicação, e executei os comandos abaixo para a instalação:
    $ pear download pecl/oci8
    $ tar -xvf oci8-1.4.9.tgz
    $ cd oci8-1.4.9
    $ phpize
    $ ./configure --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client64/lib (onde este path é o local que encontra-se o instantclient instalado)
    $ make
    $ sudo make install

 

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.

oci8 - Mauro Cesar Fileto

Abaixo segue 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;
?>

Seu servidor está pronto para trabalhar com PHP e Oracle.

About the Author: Mauro C. Fileto

Comments are closed.

Translate »

Enjoy this blog? Please spread the word :)

RSS
Facebook
Google+
http://www.cesarfileto.com/blog/2016/01/12/instalando-oci8-e-oracle-instant-client-no-debian-ou-ubuntu/">
Twitter