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: 40.515 ]

Por: daniel em 30/04/2010


Instalação



Pronto, agora vamos brincar com nosso servidor.

Eu baixei os arquivos na seguinte pasta: /home/cpd/Oracle

Então vamos seguir os seguintes passos.

Entrar na pasta que foi feito o download dos arquivos;

cd /home/cpd/Oracle

Com o comando abaixo já assumi o console com o usuário root:

sudo su

Obs.: Daqui para frente todos os comandos foram executados como root, caso prefira pode executar os comandos com o usuário comum, não se esquecendo de adicionar no começo de cada comando a palavra "sudo".

Extrair os arquivos instantclient:

# unzip oracle-instantclient11.2-sdk-11.2.0.1.0-1.x86_64.zip
# unzip oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.zip


Será criada uma pasta em /home/cpd/Oracle com o nome instantclient_11_2. O pacote Basic extrai os arquivos em /home/cpd/Oracle/instantclient_11_2 e o SDK em /home/cpd/Oracle/instantclient_11_2/sdk. O nome das pastas pode variar de acordo com a versão do instantclient baixada.

Entrar na pasta extraída e criar os links simbólicos:

# cd instantclient_11_2/
# ln -s libclntsh.so.10.1 libclntsh.so
# ln -s libocci.so.10.1 libocci.so


Voltar para a pasta anterior e extrair o oci8:

# cd ..
# tar -xvf oci8-1.4.1.tar


Será criada uma pasta oci8-1.4.1 e um arquivo xml.

Entrar na pasta criada e rodar um phpize:

# cd oci8-1.4.1/
# phpize


Setar a variável ORACLE_HOME com o caminho da pasta que foi extraído o instantclient:

# export ORACLE_HOME=/home/cpd/Oracle/instantclient_11_2

Ainda dentro da pasta do oci8 executar o comando:

# ./configure --with-oci8=share,instantclient,/home/cpd/Oracle/instantclient_11_2

Após o comando acima aparecerá um prompt solicitando a pasta que contém as libs do Oracle... eu não sei porque ele ainda pede isso já que já setamos no parâmetro --with-oci8 e a variável ORACLE_HOME, mas já que está pedindo de novo você deve digitar o seguinte:

instantclient,/home/cpd/Oracle/instantclient_11_2

Lembrando que o "instantclient," é obrigatório e o restante é a pasta que você extraiu o instantclient.

Feito isso executar os comandos:

# make
# make install


Se tudo ocorrer certo executar:

# echo extension=oci8.so >> /etc/php5/apache2/php.ini
# echo extension=oci8.so >> /etc/php5/cli/php.ini


Reiniciar o Apache:

# /etc/init.d/apache2 restart

Página anterior     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

Migração de arquivos do tipo BLOB para sistema de arquivos

Instalação do Oracle 10g Client no Red Hat Enterprise Server 4

Instalação do Oracle Express 10.2 no Slackware 13.1

Processo de replicação de SCHEMA no Oracle

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

  
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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts