HOWTO: Configurando PHP para conectar ao Oracle
Instalando o InstantClient
Vamos começar pela instalação do client para acesso ao SGBD Oracle. Diferentemente do MySQL onde as conexões precisam somente da dll libmysql.dll, o Oracle exige ter um cliente completo para fazer a conexão. Este cliente pode utilizar dois tipos de conexão. Uma chamada de Easy Connect Naming (Conexão Nomeada Simples) que utiliza o formato [//]host[:port][/service_name] e uma outra chamada de External Naming que utiliza variáveis de ambiente para recuperar as configurações (arquivos tnsnames.ora, listener.ora, ORACLE_HOME, TNS_ADMIN, etc).
Primeiro devemos instalar o Oracle InstantClient e para isso acesse a pagina de seleção do Oracle Instant Client (http://www.oracle.com/technology/software/tech/oci/instantclient/index.html> e selecione a versão correta do seu sistema Operacional, marque a opção Accept e clique no link correspondente ao Instant Client Package – Basic Lite desejado (Ex.: instantclient-basiclite-win32-11.1.0.7.0.zip). Será requisitado que você se autentique no sistema Oracle. Se você não tiver uma conta é só criar pois, é grátis.
Baixe também o pacote Instant Client Package – SQL*Plus para que possamos fazer um teste simples de conexão.
Com os arquivos já baixados, descompacte-os no mesmo diretório diretório como por exemplo c:\oracle.
Estrutura de Diretórios após descompactar os arquivos
Vamos começar pela instalação do client para acesso ao SGBD Oracle. Diferentemente do MySQL onde as conexões precisam somente da dll libmysql.dll, o Oracle exige ter um cliente completo para fazer a conexão. Este cliente pode utilizar dois tipos de conexão. Uma chamada de Easy Connect Naming (Conexão Nomeada Simples) que utiliza o formato [//]host[:port][/service_name] e uma outra chamada de External Naming que utiliza variáveis de ambiente para recuperar as configurações (arquivos tnsnames.ora, listener.ora, ORACLE_HOME, TNS_ADMIN, etc).
Primeiro devemos instalar o Oracle InstantClient e para isso acesse a pagina de seleção do Oracle Instant Client (http://www.oracle.com/technology/software/tech/oci/instantclient/index.html> e selecione a versão correta do seu sistema Operacional, marque a opção Accept e clique no link correspondente ao Instant Client Package – Basic Lite desejado (Ex.: instantclient-basiclite-win32-11.1.0.7.0.zip). Será requisitado que você se autentique no sistema Oracle. Se você não tiver uma conta é só criar pois, é grátis.
Baixe também o pacote Instant Client Package – SQL*Plus para que possamos fazer um teste simples de conexão.
Com os arquivos já baixados, descompacte-os no mesmo diretório diretório como por exemplo c:\oracle.
Estrutura de Diretórios após descompactar os arquivos
Simei, desculpe a demora em responder (provavelmente já tenha solucionado).
O maoir problema com o suporte de PHP a Oracle com o IIS é o PATH.
No IIS tem como você verificar qual o PATH que ele está utilizando. Verifique se no PATH está o caminho para o instantclient.
Outra coisa são as permissão de execução/acesso aos binários dentro do diretório do instantclient.
Como você não é o primeiro a me perguntar isso, estou atualizando o tutorial para utilizar o PHP 5.3 e vou criar uma versão com o IIS em Windows XP, Seven e Server.
O maoir problema com o suporte de PHP a Oracle com o IIS é o PATH.
No IIS tem como você verificar qual o PATH que ele está utilizando. Verifique se no PATH está o caminho para o instantclient.
Outra coisa são as permissão de execução/acesso aos binários dentro do diretório do instantclient.
Como você não é o primeiro a me perguntar isso, estou atualizando o tutorial para utilizar o PHP 5.3 e vou criar uma versão com o IIS em Windows XP, Seven e Server.
31/01/2011 8:36pm
(~14 anos atrás)
Olá Marcos, primeiramente obrigado pelo passo a passo não se acha quase nada na net sobre o assunto, vamos a dúvida.... fiz tudo que vc falou e tá tudo redondinho no phpinfo... no teste com o servidor oracle etc... o detalhe é que ao invés de Apache eu estou usando IIS 7, você sabe alguma coisa sobre o assunto? se tem que fazer alguma configuração a mais? porque dá erro 500 no IIS 7. Precisa ser no IIS porque existem outras aplicações em aspx no mesmo servidor.
21/12/2010 3:33pm
(~14 anos atrás)
Então Lucas, na verdade não coloquei no título, mas a configuração se faz necessário para se conectar a um servidor Oracle REMOTO. Quando você instala um Servidor Oracle localmente, essa instalação cria todos os procedimenos para que seja possível acessar localmente tornando as coisas mais simples.
30/06/2010 4:29pm
(~14 anos atrás)
eu instalei a versão g10, quando fui ver a variavel de ambiente, ja estava la:
C:\wamp\bin\oracle\app\oracle\product\10.2.0\server\bin
falou.
C:\wamp\bin\oracle\app\oracle\product\10.2.0\server\bin
falou.
30/06/2010 4:14pm
(~14 anos atrás)
Fatal error: Uncaught Error: Call to undefined function oci_connect() in C:\xampp\htdocs\aulaphp\teste.php:21 Stack trace: #0 {main} thrown in C:\xampp\htdocs\aulaphp\teste.php on line 21
linha 21
[ if (!$con = oci_connect($usuario, $senha, "$host:$porta")) ]
//$sql = "select * from usuarios";
//$usuario = 'teste';
//$senha = 'teste';
//$host = '127.0.0.1';
//$porta = '1521';