Oracle
 sql >> Base de données >  >> RDS >> Oracle

La connexion oci_connect a échoué

En raison de plusieurs erreurs de configuration et de 3 jours perdus à chercher une solution, j'ai déménagé pour développer sur un serveur Linux et tous les problèmes ont disparu.

Ce que j'ai trouvé :

  • les deux php_oci8.dll et php_oci8_11g.dll dépendent des bibliothèques Oracle Instant Client
    • ces bibliothèques ne contiennent pas oci_ fonctions (comme oci_connect ), uniquement ociX fonctions (comme ociLogon ) ce qui est étrange...
  • bien que je sois à peu près sûr d'avoir téléchargé Oracle Instant Client Basic et toutes les extensions, je n'ai pas pu me connecter à un autre serveur Oracle en raison d'un jeu de caractères inconnu et l'erreur disait que j'utilisais uniquement Lite client instantané...
  • J'ai essayé en vain les versions 64 bit et 32 bit du client instantané
  • mon Apache est en 64 bits, Windows en 64 bits, PHP en 32 bits, le serveur Oracle distant en 64 bits, le serveur Linux distant en 64 bits...
  • essayé de nombreux paramètres d'environnement (ORA_HOME , TNS_ADMIN , PATH ajusté se tourner vers l'installation instantanée du client) en vain
  • tenté de désinstaller le serveur Oracle XE local en raison d'interférences possibles avec les paramètres d'environnement, mais en vain
  • j'ai presque perdu la tête - en vain...

Donc, finalement, sur le serveur Linux, je n'ai aucun problème pour me connecter au serveur Oracle distant. Quelque part (en surfant sur des milliers de pages liées à PHP-Oracle), j'ai trouvé une information selon laquelle "il ne faut pas développer d'application PHP se connectant au serveur Oracle sous Windows" et doit plutôt s'en tenir au système UNIX...

Alors n'importe qui rencontrez des problèmes similaires ou identiques - soyez si gentil et ne perdez pas votre temps, installez une VirtualBox, exécutez Linux dessus et avancez !