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

Impossible de charger la bibliothèque dynamique 'C:\xampp\php\ext\php_oci8.dll' - %1 n'est pas une application Win32 valide

Votre erreur montre une incompatibilité de type intégré.

Résolvez-le en suivant ces étapes :

Assurez-vous de télécharger et d'installer oracle instantclient à :http://www.oracle.com/technetwork/topics/winsoft -085727.html , mais notez :

  1. Notez votre Oracle version de la base de données ; utilisez la version 12.1.x pour la base de données Oracle 12c et Version 11.1.x pour 11g versions.
  2. Dans les deux cas, assurez-vous de télécharger le Basic Lite version du client instantané Oracle.

Après cela, ajoutez l'emplacement de votre client instantané Oracle à votre chemin de variable système sous vos variables d'environnement. Assurez-vous également que vous avez à la fois le PHP de votre xampp et son extension disponibles et définis là également (sinon, ajoutez-les).

Ensuite, continuez à ajouter une nouvelle variable système avec TNS_ADMIN comme nom de variable et l'emplacement d'Oracle instantclient comme valeur variable .

Définissez également vos variables utilisateur PATH avec le même emplacement vers Oracle instantclient comme valeur .

Après cette étape, redémarrez votre ordinateur pour une propagation complète des variables d'environnement nouvellement définies.

Une fois allumé, vous pouvez ouvrir votre invite de commande Windows et exécutez où oci* pour vous assurer que vos variables d'environnement sont bien définies ; la réponse devrait ressembler à ceci :

C:\Users\flex>where oci*

C:\oraclexe\app\oracle\product\11.2.0\server\bin\oci.dll
C:\oraclexe\app\oracle\product\11.2.0\server\bin\ocijdbc11.dll
C:\oraclexe\app\oracle\product\11.2.0\server\bin\ocijdbc11.sym
C:\oraclexe\app\oracle\product\11.2.0\server\bin\ociw32.dll
C:\instantclient_11_2\oci.dll
C:\instantclient_11_2\oci.sym
C:\instantclient_11_2\ocijdbc11.dll
C:\instantclient_11_2\ocijdbc11.sym
C:\instantclient_11_2\ociw32.dll
C:\instantclient_11_2\ociw32.sym

Si ce n'est pas le cas, vous avez dû manquer quelque chose et devez revoir le processus, en vous assurant de le terminer efficacement.

Vous pouvez maintenant passer à votre fichier php.ini (à condition que les variables d'environnement soient bien définies) et activer votre oci extensions (php_oci8.dll et php_oci8_11g.dll) en les décommentant ; vous pouvez y parvenir en supprimant simplement la demi-colonne (; ) avant lesdites extensions.

N'oubliez pas de sauvegarder votre fichier php.ini, puis de redémarrer ou de démarrer votre apache s'il n'est pas déjà en cours d'exécution.

Pour vérifier que vos configurations PHP oci8 sont activées, vous pouvez revenir à votre invite de commande Windows et exécuter :php --ri oci8; la réponse devrait ressembler à celle ci-dessous :

C:\Users\flex>php --ri oci8

OCI8 Support => enabled
OCI8 DTrace Support => disabled
OCI8 Version => 2.1.1
Revision => $Id: 86f22a208f89dcd5b305e82929a7429683968b11 $
Oracle Run-time Client Library Version => 11.2.0.4.0
Oracle Compile-time Instant Client Version => 10.2

Directive => Local Value => Master Value
oci8.max_persistent => -1 => -1
oci8.persistent_timeout => -1 => -1
oci8.ping_interval => 60 => 60
oci8.privileged_connect => Off => Off
oci8.statement_cache_size => 20 => 20
oci8.default_prefetch => 100 => 100
oci8.old_oci_close_semantics => Off => Off
oci8.events => Off => Off

Statistics =>
Active Persistent Connections => 0
Active Connections => 0

Alternativement, vous pouvez créer un fichier PHP avec <?php phpinfo(); ?> en tant que contenu, puis ouvrez-le dans votre navigateur et recherchez les occurrences oci8 ; il devrait également s'afficher activé.