Configurando PHP com banco de dados Oracle

Janeiro 4, 2008 – 12:25 pm

Este post é sobre como configurar um servidor linux para utilizar PHP com Banco de dados Oracle, na verdade ele é uma tradução de um artigo eu que encontrei na Internet com algumas correções e adaptações para facilitar o processo de instalação.

Todo o procedimento foi testado. Para o teste foi utilizado o linux Debian com Oracle Instant Client 11.
Configurando PHP para conectar com o Oracle.

1 - Primeiro baixe os pacotes Basic e SDK no link abaixo, observe que você precisa ser cadastrado no site da oracle:

http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html

No momento em que foi escrito este post os mais recentes eram:
BASIC = oracle-instantclient-basic-11.1.0.1-1.i386.rpm
SDK = oracle-instantclient-devel-11.1.0.1-1.i386.rpm

No entanto, como o meu servidor é um Debian baixei os arquivos com extensão .zip, basic.zip e jdk.zip.

OBS: caso a sua plataforma não seja Linux X86, você deve escolher a plataforma correta no link abaixo:
http://www.oracle.com/technology/software/tech/oci/instantclient/index.html

2 - Descopacte os arquivos em: /opt/oracle/instantclient


comandos:
mkdir -p /opt/oracle/
cd /opt/oracle/
unzip basic.zip
unzip sdk.zip

Obs: Será criado um diretório com o nome instantclient e a versão do cliente por exemplo instantclient_11_1, para facilitar a instalação renomeie apenas para instantclient

mv /opt/oracle/instantclient_11_1 /opt/oracle/instantclient
echo /opt/oracle/instantclient >> /etc/ld.so.conf
ldconfig

Explicando:
As duas últimas linhas criam 2 links simbólicos chamados libclntsh.so e libocci.so, que serão utilizados mais tarde. Caso estes links não sejam criados você deve fazer isso manualmente. (Melhor fazer manualmente mesmo, porque toda vez que fiz o teste os links simbólicos não foram criados).

comandos:

ln -s libclntsh.so.11.1 libclntsh.so
ln -s libocci.so.11.1 libocci.so

3 - Baixando o Pear do Debian

comando:

apt-get install php-pear

4 - Compiliando o módulo oci8

Normalmente, após baixar o Pear, poderíamos utilizar o comando “pear install oci8″, mas aparentemente o pear não está pronto para trabalhar com as “libraries” do instantclient. Então temos baixar o oci8 e fazer compilá-lo.

Baixe o pacote OCI8 no link http://pecl.php.net

comandos:

mkdir -p /usr/local/src
cd /usr/local/src
tar xzf oci8-1.1.1.tgz
cd oci8-1.1.1
phpize
./configure –with-oci8=shared,instantclient,/opt/oracle/instantclient
make
make install

OBS 1: Não é mais possível instalar o oci8 com o comando “pear download oci8″, por isso deve-se baixar direto pelo site http://pecl.php.net

OBS 2: Caso o seu linux não tenha o phpize você deve instalá-lo, no Debian ficaria assim: apt-get install php4-dev ou php5-dev em outras distribuições deve ser php4-devel ou php5-devel.

5 - Habilitando o módulo oci8

Para habilitar o módulo oci8, vá em /etc/php5/apache2/php.ini e adicione a linha:
extension=oci8.so

OBS: Insira a linha após os exemplos iniciando com ;extension.

6 - Finalizando instalação
Agora bastar reiniciar o Apache, crie um arquivo php com o comando phpinfo() e veja o oci8 ativo.

7 - Testando a conexão

Agora crie um arquivo php para testar a conexão.

// ABRE CONEXÃO COM O BANCO DE DADOS ORACLE
$conn = OCILogon(”usuario”, “senha”, “//10.0.101.114:1755/nomedobanco”);
if (!$conn)
{
echo”<script>alert(’Falha na conexão!’);history.go(-1)</script>”;
}
else
{
echo”<script>alert(’Conexão realizada com sucesso!’)</script>”;
}

Pronto, se você seguiu todos os passos corretamente, já deve estar conectado ao Oracle.

  1. 3 Responses to “Configurando PHP com banco de dados Oracle”

  2. Muito Bom esse Post, to precisando disso agora. Vou testar.

    By Castelhano on Fev 26, 2008

  3. Fiz a instalação só que não esta aparecendo o modulo oci8 no phpinfo() como tambem nao esta reconhecendo as funções do oracle, sendo que existe o arquivo oci8.so na pasta /usr/lib/php5/2006…lfs/… e ja inseri no php.ini
    Queria instalar dessa forma, pois quero manter o padrao na instalação via apt-get.
    Talvez seja alguma biblioteca que nao esteja setada. Quero um auxilio.
    Obirgado!

    By Silvio Frazão on Fev 27, 2008

  4. Ufa !
    Consegui realizar a instalação.
    Parabenizo o artigo acima e só acrescento que minhas dificuldades que passei por dois motivos:
    1 - Testei o artigo acima numa máquina virtual(vmware) com debian e não funcionou.
    2 - O banco de dados que utilizamos é ORACLE 10g versao 10.2.0.2 por isso, instale o cliente sqlplus(instantclient) da MESMA VERSÃO. Testei o cliente 11.x e nao funcionou.
    O resto é só seguir o roteiro citado acima.

    By Silvio Frazão on Mar 14, 2008

Post a Comment