PHP acessando Oracle no Ubuntu Server 6.06

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

9 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

Leave a Comment