編集: <ストライク>うーん。 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ランタイム(x86)をインストールします。これは、OCI8拡張機能に必要です。
- Microsoft Visual C ++ 2012ランタイム(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)