Configurando um servidor PHP5 com suporte ao Oracle no Ubuntu 9.10

Recentemente precisei fazer com que um servidor Ubuntu + Apache + PHP se conectasse ao Oracle. Como não sou um especialista em LAMP e nem em Oracle, tive muita dificuldade em encontrar um tutorial que demonstrasse como fazer essa "mágica". Aqui pretendo ajudar os meros mortais como eu que ainda não são experts no mundo Linux a fazer essa configuração.

[ Hits: 39.435 ]

Por: daniel em 30/04/2010


Introdução



Recentemente precisei fazer com que um servidor Ubuntu + Apache + PHP se conectasse ao banco de dados Oracle da empresa.

Como não sou um especialista em LAMP e nem em Oracle, tive muita dificuldade em encontrar um tutorial (principalmente em português) que demonstrasse como fazer essa "mágica".

Nessa minha primeira contribuição aqui no VOL pretendo ajudar os meros mortais como eu que ainda não são experts no mundo Linux a fazer essa configuração.

Até encontrei aqui no VOL um artigo ensinando a compilar na mão a instalação do php com suporte ao Oracle. Porém no meu caso o meu servidor já tinha o Apache e o php5 instalado via apt-get, e até já tinha algumas páginas nele, apesar de ser um servidor de teste. Mas como eu teria que repetir o processo no servidor de produção, tinha que encontrar uma forma de fazer essa configuração sem ter que compilar o php na mão novamente...

Lembrando que sou quase LEIGO no assunto, então não sei nem se posso ter o php5 instalado via apt-get e depois reinstalá-lo baixando os fontes e compilando na mão conforme o outro tutorial que vi.

Enfim, vamos começar...

Ambiente, dependências e downloads

Algumas definições:
  • sistema operacional utilizado = Ubuntu 9.10 x86_64 (server)
  • versão do apache - 2.2.12
  • versão do php - PHP 5.2.10-2
  • versão do Oracle - 10g (aqui é o servidor de banco de dados, não vamos mexer com ele nesse artigo, o mesmo já está em produção)
  • versão do instant Client - 11.2.0.1.0
  • versão do oci8 - 1.4.1

Obs.: Este artigo foi testado no ambiente acima, mas acredito que os colegas consigam usar esse artigo para instalações em outras distribuições baseados no Debian.

Dependências:
  • php5-dev
  • php5-cli
  • php-pear
  • libaio1
  • o programa unzip, para descompactar os arquivos *.zip

Aqui no meu ambiente eu já tinha o Apache e o php5 instalados, mas caso você não os tenha o comando abaixo resolve o problema:

sudo aptitude install apache2 php5-common php5 php5-dev libapache2-mod-php5 php5-cli build-essential php-pear libaio1 unzip

Obs.: o comando acima pode ser usado mesmo que você já tenha alguns desses pacotes instalados, pois o que precisar ser atualizado será atualizado.

Downloads:

Para compilarmos o PHP 5 com acesso ao Oracle, primeiramente devemos baixar o "Instant Client Package - Basic" e também o "Instant Client Package - SDK" do site da Oracle e baixar um tal de oci8.

Então para baixar os arquivos do site da Oracle primeiramente é necessário ser cadastrado lá. O cadastro é gratuito. Vou pular a parte do cadastro por entender que essa parte não gera muitas dificuldades.

Então o link para baixar os arquivos é esse:
Precisamos escolher a plataforma conforme o nosso ambiente.

Os links diretos para os arquivos que utilizei nesse artigo são:

http://download.oracle.com/otn/linux/instantclient/112010/oracle-instantclient11.2-sdk-11.2.0.1.0-1.x86_64.zip
http://download.oracle.com/otn/linux/instantclient/112010/oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.zip

Caso seu Linux seja para plataforma 32 bits, os links diretos são:

http://download.oracle.com/otn/linux/instantclient/112010/instantclient-basic-linux32-11.2.0.1.zip
http://download.oracle.com/otn/linux/instantclient/112010/instantclient-sdk-linux32-11.2.0.1.zip

Para baixar o oci8 acesse o site:
O link direto para a versão que foi utilizada nesse artigo:

http://pecl.php.net/get/oci8-1.4.1.tgz

    Próxima página

Páginas do artigo
   1. Introdução
   2. Instalação
   3. Erros que tive que solucionar
   4. Conclusão e testes
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Memórias Database Oracle (SGA x PGA) - Entenda a diferença e como calcular a HugePages

Instalação do Oracle Database 10g R2 no Debian Etch 4

Oracle XE 11.2 no Slackware 14.0 64 bits - Instalação e configuração

Instalação do Oracle Express 10.2 no Slackware 13.1

Instalação do Oracle 9i no Red Hat AS 4

  
Comentários
[1] Comentário enviado por quartodazona em 01/05/2010 - 07:39h

Amigo, onde trabalho, já integro o Oracle no PHP desta maneira que você mostrou e acesso numa boa, mas eu gostaria de saber como compilar o PDO do Oracle no PHP. O meu padrão de configuração do PHP antes de compilá-lo está descrito abaixo e funciona numa boa, se eu retirar 2 linhas.

./configure \
--prefix=/usr/local/php \
--with-apxs2=/usr/local/apache/bin/apxs \
--with-mysql \
--enable-dba=shared \
--enable-ftp \
--enable-mbstring \
--with-mysqli \
--with-pdo-mysql \
--with-pdo-oci8 \ <--- Esta linha dá pau
--with-pdo-oci \ <--- Esta linha aqui também dá pau
--with-mcrypt \
--with-gd \
--with-gettext \
--with-jpeg-dir=/usr/lib \
--with-zlib-dir=/lib \
--with-bz2=/lib \
--enable-sigchild \
--with-config-file-path=/usr/local/apache/conf \
--with-oci8=instantclient,/usr/local/instantclient_11_2

Se eu tirar aquelas linhas, consigo compilar numa boa, mas eu gostaria de usar o PDO, como uso no MySQL, pois com ele minha biblioteca de conexão com o banco fica igual para qualquer banco de dados que eu for utilizar, bem menor em tamanho de código e funciona numa boa. Você poderia me ajudar?

[2] Comentário enviado por ronaldo.sacco em 28/06/2010 - 19:27h

Tchê, muito bom o artigo..
funcionou 100%

[3] Comentário enviado por maplopesbtu em 13/11/2013 - 12:06h

Olá Amigo

Muito obrigada

Deu certinho, procurava isso há muito tempo.

Att

[4] Comentário enviado por tsamaral em 23/06/2014 - 13:01h

Muito obrigado pela ajuda!!!

Estava quebrando a cabeça com isso, mas seguindo os passos deu tudo certo!

:-D


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts