quarta-feira, 29 de maio de 2013

Instalar o PHP5 com suporte ao ORACLE no Debian Squeeze

Neste procedimento foi utilizado o ambiente abaixo.
 

Debian 6
Apache 2.2
Php 5.3.3-7
Oci8

Requisitos

Instale os pacotes abaixo:

# apt-get install php5-dev build-essential php-pear alien libaio1

Oracle

http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

Faça o download do Oracle dependendo do seu sistema operacional

Basic – oracle-instantclient11.2-basic-11.2.0.1.0-1.i386.rpm
Devel – oracle-instantclient11.2-devel-11.2.0.2.0.i386.rpm

Após concluído o download, execute o comando para converter os arquivos rpm para deb

# alien oracle-instantclient11.2-basic-11.2.0.1.0-1.i386.rpm
# alien oracle-instantclient11.2-devel-11.2.0.2.0.i386.rpm

Instale os pacotes debian

# dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.i386.deb
# dpkg -i oracle-instanclient11.2.-devel-11.2.02.0-1.i386.deb

OCI

Instalando o pacote OCI8

# pecl install oci8

Obs: Será solicitado o caminho do oracle client, deixe em branco e pressione enter que ele encontrará automaticamente.

Configurando o PHP.

OCI8 instalado agora é só informar ao PHP para utilizar a extensão.
Crie um arquivo chamado oci8.ini com o conteúdo: extension=oci8.so
Salve o arquivo na pasta /etc/php5/conf.d/ e reinicie o Apache.
Reinicie o apache

# /etc/init.d/apache restart

Diretórios Oracle

Crie os diretórios de configuração

# mkdir -p '/usr/lib/oracle/11.2/client/network/admin'

Variáveis do ORACLE

edite o arquivo /etc/init.d/apache2 inclua as seguintes linhas

ORACLE_HOME='/usr/lib/oracle/11.2/client'
ORACLE_SID=NBS
TNS_ADMIN=${ORACLE_HOME}/network/admin
export ORACLE_HOME
export ORACLE_SID
export TNS_ADMIN
export LD_LIBRARY_PATH=${ORACLE_HOME}/lib:${LD_LIBRARY_PATH}
echo "Oracle Home: $ORACLE_HOME"
echo "Oracle SID: $ORACLE_SID"
echo "Oracle LD_LIBRARY_PATH: $ORACLE_HOME"
echo "Oracle TNS_ADMIN: $TNS_ADMIN"
echo Starting Apache

Arquivo PHP para testar.

conexao.php

//oracle connection variables

$ora_user = 'USUARIO'; //username
$ora_pass = 'SENHA DO BANCO'; //user password
$ora_host = 'IP DO SERVIDOR OU HOSTNAME"'; //host name or server ip address
$ora_db = 'NOME DO BANCO'; //database name

// place variable into oci_connect function, then place funtion in variable

$ora_conn = oci_connect($ora_user,$ora_pass,'//'.$ora_host.'/'.$ora_db);

// error handling

if (!ora_conn){ // if variable $ora_conn fails to connect

// do the following if it fails

$ora_conn_erno = oci_error(); // insert oci_error() function into variable
echo ($ora_conn_erno['message']."\n"); // print the $ora_conn_erno variable/oci_error() function selecting only the message (human readable)
oci_close($ora_conn); // close the connection just in case php doesn't close it

} else {

// if it doesn't fail it will proceed with the rest of the script

echo "Connection Succesful\n"; //echo message if connection does not error
oci_close($ora_conn); // close the connection

}

?>

Nenhum comentário: