Redigera: Hmm. Att prova detta på Windows 8 verkar generera samma fel som du angav. Jag undersöker just nu...
Mitt misstag (jag hade aktiverat fel extension_dir
linje). Det fungerar i Win8 precis som beskrivs nedan.
Följande steg bör vara allt du behöver för att få OCI att arbeta med PHP (jag har precis verifierat detta på en nyinstallerad Windows 2008 R2 Standard x64 virtuell maskin):
- Ladda ner och extrahera PHP (jag använde
C:\php
frånphp-5.6.7-nts-Win32-VC11-x86.zip
). - Ladda ner och extrahera InstantClient (jag använde
C:\instantclient_12_1
fråninstantclient-basic-nt-12.1.0.2.0.zip
). - Lägg till ovanstående sökvägar till systemsökvägen.
- Kopiera
c:\php\php.ini-production
tillc:\php\php.ini
. - i
php.ini
:- aktiverad rad
extension_dir = "ext"
. - aktiverad rad
extension=php_oci8_12c.dll
.
- aktiverad rad
- Installera Microsoft Visual C++ 2010 Runtime (x86). Detta behövs för OCI8-tillägget.
- Installera Microsoft Visual C++ 2012 Runtime (x86). Detta behövs för PHP.
Kör nu php --ri oci8
i en kommandotolk visar mig följande utdata:
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
Och letar efter oci_connect
funktion:
C:\>php -r "var_dump(function_exists('oci_connect'));"
bool(true)