sql >> Database >  >> RDS >> Oracle

Kan dynamische bibliotheek 'C:\xampp\php\ext\php_oci8.dll' niet laden - %1 is geen geldige Win32-toepassing

Uw fout toont een niet-overeenkomend ingebouwd type.

Los het op door deze stappen te volgen:

Zorg ervoor dat u oracle instantclient . downloadt en installeert op:http://www.oracle.com/technetwork/topics/winsoft -085727.html , maar let op:

  1. Let op je Oracle databaseversie; gebruik Versie 12.1.x voor Oracle-database 12c en Versie 11.1.x voor 11g releases.
  2. Zorg er in beide gevallen voor dat u de Basic Lite . downloadt versie van de Oracle instantclient.

Voeg daarna de locatie van uw Oracle instantclient toe aan uw Systeemvariabele Pad onder uw Omgevingsvariabelen. Zorg er ook voor dat je zowel de PHP van je xampp . hebt en zijn ext beschikbaar en stel daar ook in (zo niet, voeg ze dan toe).

Ga dan verder met het toevoegen van een nieuwe systeemvariabele met TNS_ADMIN als variabelenaam en de locatie naar Oracle instantclient als variabele waarde .

Definieer ook uw gebruikersvariabelen PATH met dezelfde de locatie naar Oracle instantclient als waarde .

Start na deze fase uw computer opnieuw op voor een volledige verspreiding van de nieuw gedefinieerde omgevingsvariabelen.

Eenmaal ingeschakeld, kunt u uw Windows-opdrachtprompt . openen en voer waar oci* . uit om ervoor te zorgen dat u uw omgevingsvariabelen goed had gedefinieerd; het antwoord zou er als volgt uit moeten zien:

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

Als dat niet het geval is, moet u iets hebben gemist en moet u het proces opnieuw bekijken om ervoor te zorgen dat u het effectief voltooit.

U kunt nu doorgaan naar uw php.ini-bestand (mits de omgevingsvariabelen goed zijn gedefinieerd) en uw oci inschakelen extensies (php_oci8.dll en php_oci8_11g.dll) door ze te verwijderen; je kunt dat bereiken door simpelweg de halve kolom te verwijderen (; ) voor de genoemde extensies.

Vergeet niet om je php.ini-bestand op te slaan en herstart of start je apache als deze nog niet actief is.

Om te controleren of uw PHP oci8-configuraties zijn ingeschakeld, kunt u teruggaan naar uw Windows-opdrachtprompt en uitvoeren:php --ri oci8; het antwoord moet vergelijkbaar zijn met het onderstaande:

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

U kunt ook een PHP-bestand maken met <?php phpinfo(); ?> als inhoud, open het vervolgens in uw browser en zoek naar oci8-exemplaren; het zou daar ook ingeschakeld moeten zijn.



  1. Hoe UUID() werkt in MariaDB

  2. neem de Jfactory-klasse op in een extern php-bestand, Joomla

  3. Homebrew gebruiken om postgresql te downgraden van 10.1 naar 9.6 op Mac OS

  4. PHP - Is het een goede gewoonte om MYSQL-query's in een txt-bestand te cachen?