Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Dynamische Bibliothek „C:\xampp\php\ext\php_oci8.dll“ kann nicht geladen werden – %1 ist keine gültige Win32-Anwendung

Ihr Fehler zeigt eine Nichtübereinstimmung des integrierten Typs.

Beheben Sie es, indem Sie diesen Schritten folgen:

Stellen Sie sicher, dass Sie Oracle InstantClient herunterladen und installieren unter:http://www.oracle.com/technetwork/topics/winsoft -085727.html , aber beachten Sie:

  1. Achten Sie auf Ihr Oracle Datenbankversion; Verwenden Sie Version 12.1.x für Oracle-Datenbank 12c und Version 11.1.x für 11g Veröffentlichungen.
  2. Stellen Sie in jedem Fall sicher, dass Sie Basic Lite herunterladen Version des Oracle-Instantclients.

Fügen Sie danach den Speicherort Ihres Oracle-Instantclients zu Ihrem Systemvariablenpfad unter Ihren Umgebungsvariablen hinzu. Stellen Sie ebenso sicher, dass Sie sowohl das PHP Ihres xampp haben und seine ext vorhanden und dort ebenfalls gesetzt (wenn nicht, fügen Sie sie hinzu).

Fügen Sie dann mit TNS_ADMIN eine neue Systemvariable hinzu als Variablenname und der Speicherort für Oracle Instantclient als Variablenwert .

Definieren Sie außerdem Ihre Benutzervariablen PATH mit demselben Standort für Oracle Instantclient als Wert .

Starten Sie nach dieser Phase Ihren Computer neu, damit die neu definierten Umgebungsvariablen vollständig weitergegeben werden.

Anschließend können Sie Ihre Windows-Eingabeaufforderung öffnen und führen Sie where oci* aus um sicherzustellen, dass Sie Ihre Umgebungsvariablen gut definiert haben; die Antwort sollte so aussehen:

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

Wenn nicht, müssen Sie etwas übersehen haben und müssen den Prozess erneut überprüfen, um sicherzustellen, dass er effektiv abgeschlossen wird.

Sie können jetzt mit Ihrer php.ini-Datei fortfahren (vorausgesetzt, Umgebungsvariablen sind gut definiert) und Ihr oci aktivieren Erweiterungen (php_oci8.dll und php_oci8_11g.dll), indem Sie sie auskommentieren; Sie können dies erreichen, indem Sie einfach die Halbsäule (;) entfernen ) vor den genannten Erweiterungen.

Denken Sie daran, Ihre php.ini-Datei zu speichern, und starten Sie dann Ihren Apache neu, falls er noch nicht läuft.

Um zu überprüfen, ob Ihre PHP oci8-Konfigurationen aktiviert sind, können Sie zu Ihrer Windows-Eingabeaufforderung zurückkehren und Folgendes ausführen:php --ri oci8; Die Antwort sollte der folgenden ähneln:

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

Alternativ können Sie eine PHP-Datei mit <?php phpinfo(); ?> als Inhalt, öffnen Sie es dann in Ihrem Browser und suchen Sie nach oci8-Vorkommen; es sollte dort auch aktiviert angezeigt werden.