Редактиране: Хм. Опитът на това в Windows 8 изглежда генерира същата грешка, както сте посочили. В момента разследвам...
Моя грешка (бях активирал грешен extension_dir
линия). Работи в Win8 точно както е документирано по-долу.
Следните стъпки трябва да са всичко, от което се нуждаете, за да накарате OCI да работи с PHP (току-що проверих това на прясно инсталирана Windows 2008 R2 Standard x64 виртуална машина):
- Изтеглете и извлечете PHP (използвах
C:\php
отphp-5.6.7-nts-Win32-VC11-x86.zip
). - Изтеглете и извлечете InstantClient (използвах
C:\instantclient_12_1
отinstantclient-basic-nt-12.1.0.2.0.zip
). - Добавете горните пътища към системния път.
- Копирайте
c:\php\php.ini-production
къмc:\php\php.ini
. - в
php.ini
:- активиран ред
extension_dir = "ext"
. - активиран ред
extension=php_oci8_12c.dll
.
- активиран ред
- Инсталирайте Microsoft Visual C++ 2010 Runtime (x86). Това е необходимо за разширението OCI8.
- Инсталирайте Microsoft Visual C++ 2012 Runtime (x86). Това е необходимо за PHP.
В този момент се изпълнява php --ri oci8
в командния ред ми показва следния изход:
C:\>php --ri oci8
oci8
OCI8 Support => enabled
OCI8 DTrace Support => disabled
OCI8 Version => 2.0.9
Revision => $Id: f5a3ee1083d1ffa6adb5143efda6eafa210b8414 $
Oracle Run-time Client Library Version => 12.1.0.2.0
Oracle Compile-time Instant Client Version => 12.1
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.connection_class => no value => no value
oci8.events => Off => Off
Statistics =>
Active Persistent Connections => 0
Active Connections => 0
И проверка за oci_connect
функция:
C:\>php -r "var_dump(function_exists('oci_connect'));"
bool(true)