Configurando PHP com banco de dados Oracle
Janeiro 4, 2008 – 12:25 pmEste post é sobre como configurar um servidor linux para utilizar PHP com Banco de dados Oracle, na verdade ele é uma tradução de um artigo eu que encontrei na Internet com algumas correções e adaptações para facilitar o processo de instalação.
Todo o procedimento foi testado. Para o teste foi utilizado o linux Debian com Oracle Instant Client 11.
Configurando PHP para conectar com o Oracle.
1 - Primeiro baixe os pacotes Basic e SDK no link abaixo, observe que você precisa ser cadastrado no site da oracle:
http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html
No momento em que foi escrito este post os mais recentes eram:
BASIC = oracle-instantclient-basic-11.1.0.1-1.i386.rpm
SDK = oracle-instantclient-devel-11.1.0.1-1.i386.rpm
No entanto, como o meu servidor é um Debian baixei os arquivos com extensão .zip, basic.zip e jdk.zip.
OBS: caso a sua plataforma não seja Linux X86, você deve escolher a plataforma correta no link abaixo:
http://www.oracle.com/technology/software/tech/oci/instantclient/index.html
2 - Descopacte os arquivos em: /opt/oracle/instantclient
comandos:
mkdir -p /opt/oracle/
cd /opt/oracle/
unzip basic.zip
unzip sdk.zip
Obs: Será criado um diretório com o nome instantclient e a versão do cliente por exemplo instantclient_11_1, para facilitar a instalação renomeie apenas para instantclient
mv /opt/oracle/instantclient_11_1 /opt/oracle/instantclient
echo /opt/oracle/instantclient >> /etc/ld.so.conf
ldconfig
Explicando:
As duas últimas linhas criam 2 links simbólicos chamados libclntsh.so e libocci.so, que serão utilizados mais tarde. Caso estes links não sejam criados você deve fazer isso manualmente. (Melhor fazer manualmente mesmo, porque toda vez que fiz o teste os links simbólicos não foram criados).
comandos:
ln -s libclntsh.so.11.1 libclntsh.so
ln -s libocci.so.11.1 libocci.so
3 - Baixando o Pear do Debian
comando:
apt-get install php-pear
4 - Compiliando o módulo oci8
Normalmente, após baixar o Pear, poderíamos utilizar o comando “pear install oci8″, mas aparentemente o pear não está pronto para trabalhar com as “libraries” do instantclient. Então temos baixar o oci8 e fazer compilá-lo.
Baixe o pacote OCI8 no link http://pecl.php.net
comandos:
mkdir -p /usr/local/src
cd /usr/local/src
tar xzf oci8-1.1.1.tgz
cd oci8-1.1.1
phpize
./configure –with-oci8=shared,instantclient,/opt/oracle/instantclient
make
make install
OBS 1: Não é mais possível instalar o oci8 com o comando “pear download oci8″, por isso deve-se baixar direto pelo site http://pecl.php.net
OBS 2: Caso o seu linux não tenha o phpize você deve instalá-lo, no Debian ficaria assim: apt-get install php4-dev ou php5-dev em outras distribuições deve ser php4-devel ou php5-devel.
5 - Habilitando o módulo oci8
Para habilitar o módulo oci8, vá em /etc/php5/apache2/php.ini e adicione a linha:
extension=oci8.so
OBS: Insira a linha após os exemplos iniciando com ;extension.
6 - Finalizando instalação
Agora bastar reiniciar o Apache, crie um arquivo php com o comando phpinfo() e veja o oci8 ativo.
7 - Testando a conexão
Agora crie um arquivo php para testar a conexão.
// ABRE CONEXÃO COM O BANCO DE DADOS ORACLE
$conn = OCILogon(”usuario”, “senha”, “//10.0.101.114:1755/nomedobanco”);
if (!$conn)
{
echo”<script>alert(’Falha na conexão!’);history.go(-1)</script>”;
}
else
{
echo”<script>alert(’Conexão realizada com sucesso!’)</script>”;
}
Pronto, se você seguiu todos os passos corretamente, já deve estar conectado ao Oracle.
3 Responses to “Configurando PHP com banco de dados Oracle”
Muito Bom esse Post, to precisando disso agora. Vou testar.
By Castelhano on Fev 26, 2008
Fiz a instalação só que não esta aparecendo o modulo oci8 no phpinfo() como tambem nao esta reconhecendo as funções do oracle, sendo que existe o arquivo oci8.so na pasta /usr/lib/php5/2006…lfs/… e ja inseri no php.ini
Queria instalar dessa forma, pois quero manter o padrao na instalação via apt-get.
Talvez seja alguma biblioteca que nao esteja setada. Quero um auxilio.
Obirgado!
By Silvio Frazão on Fev 27, 2008
Ufa !
Consegui realizar a instalação.
Parabenizo o artigo acima e só acrescento que minhas dificuldades que passei por dois motivos:
1 - Testei o artigo acima numa máquina virtual(vmware) com debian e não funcionou.
2 - O banco de dados que utilizamos é ORACLE 10g versao 10.2.0.2 por isso, instale o cliente sqlplus(instantclient) da MESMA VERSÃO. Testei o cliente 11.x e nao funcionou.
O resto é só seguir o roteiro citado acima.
By Silvio Frazão on Mar 14, 2008