Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: Scren
Por DexInfo
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


Dica

Suporte PHP5 oci8 no Oracle 11g - Ubuntu 8.04 Server
Linux user
Publicado por Rommel Campos de Araújo em 01/07/2009

Login: rommelhc, 40354 pontos
[ Hits: 5188 ]

Suporte PHP5 oci8 no Oracle 11g - Ubuntu 8.04 Server

Após uma longa batalha travada com o Oracle e o PHP5, com artigos fragmentados e que não funcionavam, finalmente concluí a instalação da extensão oci8.

1 - Instalar os pacotes necessários.

# apt-get install dpkg-dev unzip build-essential flex bison libxml2 libxml2-dev libz libz-dev libjpeg-dev libpng-dev libfreetype6-dev

2 - Baixar os pacotes Instantclient do Oracle.

Salve os arquivos onde você quiser, aconselho criar uma pasta no /opt chamada "instantclient", pois será usada nos exemplos a seguir.

# mkdir /opt/instantclient

Após a instalação será necessário baixar dois pacotes do site do Oracle, os pacotes são os seguintes:
  • instantclient-basic-linux32-11.1.0.7.zip
  • instantclient-sdk-linux32-11.1.0.7.zip

e o link é:
Você terá que fazer um cadastro rápido para baixar os arquivos.

3 - Descompactar os arquivos.

Baixou? Salvou? Ok, descompacte os arquivos.

# unzip instantclient-basic-linux32-11.1.0.7.zip
# unzip instantclient-sdk-linux32-11.1.0.7.zip


Será gerada uma pasta chamada "instantclient_11_1" e o caminho completo deve ser esse /opt/instantclient/instantclient_11_1.

4 - Link simbólico necessário:

# ln -sf /opt/instantclient/instantclient_11_1/libclntsh.so.11.1 /usr/local/instantclient_11_1/libclntsh.so

5 - Acrescentar o caminho do Instantclient ao /etc/ld.so.conf

# vi /etc/ld.so.conf

Adicione as seguintes linhas:

/opt/instantclient/instantclient_11_1
/usr/local/lib/

6 - Apagar o arquivo /etc/ld.so.cache e regerá-lo:

# rm /etc/ld.so.conf
# ldconfig


7 - Garanta que seu instantclient esteja ok:

# ldconfig -p | grep instantclient

8 - Baixando os sources do PHP5:

# cd /opt
# mkdir php5
# cd php5
# apt-get source php5


9 - Preparando e compilando:

# cd php5-5.2.4 (pode variar diante da versão)

Vamos limpar o diretório de compilações anteriores:

# make clean
# rm config.cache


e finalmente...

# ./configure --with-oci8=shared,instantclient,/opt/instantclient/instanclient_11_1

Se tudo der certo, deve haver uma mensagem dentro da sessão "Configuring extensions" como:

"... Configuring extensions ... checking for Oracle (OCI8) support... yes, shared ..."

# make

10 - Copiando para o diretório de modules do PHP5:

# cp /opt/php5/php5-5.2.4/modules/oci8.so /usr/lib/php5/20060613+lfs/

11 - Acrescentando a extensão no php.ini:

Procure a sessão extension (pode ser qualquer linha) em /etc/php5/apache2/php.ini e adicione o seguinte conteúdo:

extension=oci8.so

12 - Reiniciar o Apache para que os novos arquivos possam ser lidos:

# /etc/init.d/apache2 restart

13 - Crie dentro de /var/www um arquivo chamado index.php:

# vi /var/www/index.php

e adicione:

<?
phpinfo();
?>

Acesse http://localhost/index.php (local) e http://ipdoservidor/index.php e procure pelo módulo oci8, se ele aparecer, pode ficar feliz, está tudo ok.

Pronto, você acaba de fazer uma instalação completa do PHP5 com suporte ao Oracle 11g. Para outras versões do Oracle, acredito que só mude o istantclient.

Tentei facilitar ao máximo a compreensão para que qualquer pessoa, seja iniciante ou mestre, consiga fazer rápido.

Dúvidas, estou a disposição.


Outras dicas deste autor

Leitura recomendada
   Dica Linux recomendada Portal TechRoot
   Dica Linux recomendada mysql_num_fields e mysql_field_name no PHP
   Dica Linux recomendada Múltiplos portais em Xoops com o mesmo DB
   Dica Linux recomendada Instalação e configuração Apache2 + PHP + MySQL + PostgreSQL
   Dica Linux recomendada Otimizando conexões entre PHP e MySQL

Comentários
[1] Comentário enviado por wryel em 02/07/2009 - 09:37h:

Thanks for share !

eu ja fiz a ligação do oracle com o php no windows e também não foi trivial.Eu ainda não tive a oportunidade de tesar no linux, mas pretendo nas proximas semana o fazer.

[]'s

[2] Comentário enviado por rommelhc em 02/07/2009 - 10:06h:

Caso ocorra algum erro, defina o $ORACLE_HOME (deve ser o caminho do oracle)
como definir ?

# export ORACLE_HOME=/diretoriodooracle


Desculpem o esquecimento.

[3] Comentário enviado por adrianoc em 13/12/2009 - 13:47h:

Muito legal o artigo, ajudou bastante mas para funcionar no debian lenny só é preciso:

1) acrescentar a biblioteca "libaio" no passo "1 - Instalar os pacotes necessários.", um apt-get install libaio1 já basta.

2) não precisa escrever nada no php.ini, mas é necessário criar o arquivo /etc/php5/conf.d/oci8.ini com o conteúdo extension=oci8.so

E só mais um dica pessoal, fiquem de olho nos LOGs, muitas vezes eles querem falar com a gente e ficamos dispercebidos.

Um agradecimento especial do ecl, do canal IRC php-br.

um abraço a todos !!!


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.