Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Falha na conexão oci_connect


Devido a vários erros de configuração e 3 dias perdidos enquanto procurava uma solução, mudei para desenvolver no servidor Linux e todos os problemas desapareceram.

O que eu encontrei:
  • ambos php_oci8.dll e php_oci8_11g.dll dependem das bibliotecas do Oracle Instant Client
    • estas bibliotecas não contêm oci_ funções (como oci_connect ), apenas ociX funções (como ociLogon ) o que é estranho...
  • embora eu tenha certeza de ter baixado o Oracle Instant Client Basic e todas as extensões, não consegui me conectar a outro servidor Oracle devido ao charset desconhecido e o erro estava dizendo que estou usando apenas Lite cliente instantâneo...
  • Tentei a versão de cliente instantâneo de 64 bits e 32 bits sem sucesso
  • meu Apache é de 64 bits, o Windows é de 64 bits, PHP é de 32 bits, o servidor Oracle remoto é de 64 bits, o servidor Linux remoto é de 64 bits...
  • tentei muitas configurações de ambiente (ORA_HOME , TNS_ADMIN , ajustado PATH para olhar para a instalação instantânea do cliente) sem sucesso
  • tentei desinstalar o servidor Oracle XE local devido a uma possível interferência nas configurações do ambiente sem sucesso
  • quase perdi a cabeça - sem sucesso...

Então, finalmente, no servidor Linux, não tenho problemas para me conectar ao servidor Oracle remoto. Em algum lugar (enquanto navegava em milhares de páginas relacionadas ao PHP-Oracle), encontrei uma informação de que "não se deve desenvolver aplicativos PHP conectando-se ao servidor Oracle no Windows" e deve-se manter o sistema UNIX ...

Então qualquer um enfrentando problemas semelhantes ou iguais - seja gentil e não perca seu tempo, instale um VirtualBox, execute o Linux nele e siga em frente!