Oracle
 sql >> база данни >  >> RDS >> Oracle

Не може да се зареди динамична библиотека 'C:\xampp\php\ext\php_oci8.dll' - %1 не е валидно Win32 приложение

Вашата грешка показва несъответствие на вграден тип.

Разрешете го, като следвате тези стъпки:

Уверете се, че сте изтеглили и инсталирали oracle instantclient на:http://www.oracle.com/technetwork/topics/winsoft -085727.html , но имайте предвид:

  1. Обърнете внимание на вашия Oracle версия на база данни; използвайте Версия 12.1.x за база данни на Oracle 12c и Версия 11.1.x за11г издания.
  2. И в двата случая се уверете, че сте изтеглили Basic Lite версия на Oracle instantclient.

След това добавете местоположението на вашия Oracle instantclient към вашия път на системната променлива под вашите променливи на средата. Също така се уверете, че имате и двата PHP на вашия xampp и ния налични и зададени също там (ако не, добавете ги).

След това продължете да добавяте нова системна променлива с TNS_ADMIN като име на променлива и местоположението до Oracle instantclient като стойност на променлива .

Освен това дефинирайте вашите потребителски променливи PATH със същото местоположение към Oracle instantclient като стойност .

След този етап рестартирайте компютъра си за пълно разпространение на новодефинираните променливи на средата.

След като го включите, можете да отворите вашия Команден ред на Windows и стартирайте where oci* за да сте сигурни, че имате добре дефинирани променливи на средата; отговорът трябва да изглежда така:

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

Ако не, сигурно сте пропуснали нещо и трябва да преразгледате процеса, за да се уверите, че ще го завършите ефективно.

Сега можете да продължите към вашия php.ini файл (при условие, че променливите на средата са добре дефинирани) и да активирате вашия oci разширения (php_oci8.dll и php_oci8_11g.dll), като ги разкоментирате; можете да постигнете това, като просто премахнете полуколоната (; ) преди споменатите разширения.

Не забравяйте да запазите вашия php.ini файл, след което рестартирайте или стартирайте своя apache, ако вече не работи.

За да проверите дали вашите PHP oci8 конфигурации са активирани, можете да се върнете към командния ред на Windows и да изпълните:php --ri oci8; отговорът трябва да е подобен на този по-долу:

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

Като алтернатива можете да създадете PHP файл с <?php phpinfo(); ?> като съдържание, след това го отворете в браузъра си и потърсете oci8 събития; там също трябва да се показва активирано.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Не може да се зареди файл или сборка „Oracle.ManagedDataAccess.EntityFramework

  2. Вмъкване и актуализиране на базата на записи в Oracle

  3. InterfaceError:Не може да се получи манипулатор на средата на Oracle; ORACLE_HOME е правилен и SQL*Plus ще се свърже

  4. ORA-29913:грешка при изпълнение на извикване на ODCIEXTTABLEOPEN

  5. Как да копирате само първите 4000 знака от Oracle NCLOB в NVARCHAR2(4000) стойност?