PHP acessando Oracle no Ubuntu Server 6.06

Share on Facebook

Infelizmente o php que vem no Ubuntu não oferece suporte ao Oracle.
Este guia mostra como instalar o php direto dos fontes para que ele consiga conectar-se a este banco de dados.

Pré-Requisito

Passo 0 (zero): É necessário um cliente oracle instalado na máquina. Caso ainda não tenha um e queira instalar um [levíssimo] cliente, acesse este post. Feito isso, siga essas etapas:

Instalação

  1. Instale o apache e outros pacotes necessários: – e os milhares de dependências :)

    sudo apt-get install apache2 apache2-threaded-dev flex bison libxml2-dev gcc g++ make autoconf automake libtool

  2. Baixe o [fonte do] php em http://www.php.net/downloads.php

    Descompactar em alguma pasta, no meu caso: /home/wendell/php-5.1.4
  3. Compile o php:

    cd /home/wendell/php-5.1.4
    ./configure \
    –with-apxs2=/usr/bin/apxs2 \
    –with-oci8=instantclient,/usr/lib/instantclient \
    –with-config-file-path=/etc/php5 \
    –prefix=/usr/lib/php

    make
    sudo make install
    sudo mkdir /etc/php5
    sudo cp php.ini-dist /etc/php5

  4. Adicione ou descomente a linha abaixo do /etc/apache2/apache2.conf:

    AddType application/x-httpd-php .php

  5. Reinicie o apache:

    sudo /etc/init.d/apache2 restart

Pronto. Agora é só testar!

Crie um arquivo vazio com o seguinte conteúdo:

phpinfo();
?>

E salve-o na pasta padrão do apache – /var/www – com o nome info.php.
Abra o browser e visite: http://maquina/info.php

Se tudo deu certo, deve haver uma seção OCI8 indicando as propriedades da extensão Oracle.

Até a próxima!

Fiquem a vontade para tirar dúvidas. Usem a área de comentários ou entrem em contato diretamente: wendell_listas@bani.com.br

12 comments ↓

#1 Thadeu Penna on 07.26.06 at 19:37

Oi Wendell
eu não uso Oracle mas acho que o que você fez acima pode ser simplificado no Ubuntu. Se você tiver os deb-src no seu /etc/apt/sources.list, você poderia fazer:
apt-get build-dep php5
apt-get source php5
descompactar o arquivo tar.gz e editar o debian/rules para incluir as opções de compilação que você passou. Depois é só dar o debuild -us -uc no diretório do php5 e recriar o pacote.

[]s

#2 Isaac Guerra on 07.28.06 at 8:23

Wendell!!
Muito bom o seu post, mais eu preciso de mais uma informação!
Bem eu baixei o Cliente Oracle, la do Site da Oracle!!!
E criei uma pasta /urs/local/oracle/, onde eta todo o cliente, porem na hora da instalação nao deu alguns erros. Porem a pasta instantclient, existe eu poderia pontar o PHP prar esta pasta? /usr/local/oracle/instantclient/ ?
Valeu!!!

#3 Jonh Wendell on 07.28.06 at 8:39

Olá.

Você disse que na hora da instalação do PHP NÃO deu erros? Então tá tudo certo né?

Com relação a usar o instantclient ao invés do cliente normal, não vejo problema nisso. Até porquê você pode ter vários clientes instalados na mesma máquina, por exemplo: 9i e 10g. Na hora de compilar o PHP você diz qual cliente ele deve usar.

Qualquer dúvida, pode entrar em contato via msn (jonhwendell@hotmail.com) ou google talk (jonh.wendell@gmail.com)

Ajudarei no que for capaz.

Abraços!

#4 Murilo Goulart on 07.28.06 at 16:27

Ola amigos,

Gostaria de informar aos que receberem o erro “Oracle-OCI8 needed libraries not found” na compilacao do PHP. Que para solucionar este proble basta trocar o seguinte paramentro na compilacao do PHP.

troque este: –with-oci8=instant_client,/usr/lib/instantclient
por este: -with-oci8-instant-client/usr/lib/instantclient

Qualquer coisa entrem em contato (murilogoulart@gmail.com).

Obrigado ao criador deste howto, Foi de grande ajuda.

#5 Ricardo on 08.02.06 at 16:49

Wendel,

Eu fiz os seguintes passos:
$ pecl install oci8

Informei “instant_client,/usr/lib/instantclient” quando pediu o caminho das libs do Oracle.

Depois, editei o php.ini e incluí a linha abaixo no final do arquivo:
extension=oci8.so

Ainda não testei, mas já aparece tudo certo no phpinfo()

#6 J. Ferreira » PHP acessando Oracle no Ubuntu Server 6.06 on 08.07.06 at 19:29

[...] Link: http://www.bani.com.br/?p=5 [...]

#7 Rodrigo on 09.05.06 at 7:36

quando tento compilar da essa mensagem de erro o que faço?
configure: warning: –with-apxs2=/usr/bin/apxs2: invalid host type
configure: warning: –with-oci8=instantclient,/usr/lib/instantclient: invalid host type
configure: error: can only configure for one host and one target at a time

#8 Jonh Wendell on 09.05.06 at 9:45

Rodrigo, acho que vc copiou e colou, aí ele cola errado mesmo
Os parametros são sempre dois hífens: –with….

#9 Helder on 07.30.08 at 22:42

Wendel,

Baixei o InstantClieente, instalei conforme voce recomendou e compilei o php5. Beleza sem problemas.

Criei o info.php e coloquei no /var/www. Porem quando chamo o firefox no endereco hhtp://localhost/info.php em vez de executar o script php ele aparece a tela de downlod do info.php.

Esta faltando alguma configuração que eu esqueci de fazer ?

Grato,
Helder

#10 Renato on 12.23.08 at 12:22

Boa tarde Wendel, parabens pelo Blog, muito bom ver nossos conterrâneos com esse nível em Linux, porém tive um probleminha com relacao à compilacao do php.
Quando fui dar o make ele gerou o seguinte erro abaixo:

/usr/bin/ld: skipping incompatible /usr/lib/instantclient/libclntsh.so when searching for -lclntsh
/usr/bin/ld: cannot find -lclntsh
collect2: ld returned 1 exit status
make: *** [libphp5.la] Error 1

Não consegui resolvê-lo, por isso peço sua ajuda, um abraço.

#11 Jonh Wendell on 12.23.08 at 14:06

Oi Renato. Dá uma olhada na versão atualizada deste artigo: http://www.bani.com.br/lang/pt-br/2008/12/php-and-oracle-on-ubuntu-serverphp-e-oracle-no-ubuntu-server/

#12 www.viacorp.com.br on 03.30.11 at 5:29

Já pensou que Mudar Pode Ser Bom?

A Viacorp Saúde é uma empresa de Consultoria de Benefícios com mais de 20 anos de experiência no seguimento de benefício saúde e odontológico, possuindo parceria com as principais seguradoras, medicinas de grupo e cooperativa (SulAmérica Seguros,Bradesco Seguros,Allianz,Unimed Seguros,NotreDame Seguros e Grupo Amil.

- Plano de Saúde Caro?

- Buscando Descontos?

- Planos Para Pequenas e Médias Empresas?

- Administração de Planos Empresariais?

Temos soluções para todas essas questões e desta forma, queremos ter a oportunidade de apresentar nossos serviços e auxiliar no que for necessário para sua empresa.

Atenciosamente.

Carlos Alberto
Gerente Corporativo
Viacorp Saúde

Leave a Comment