web-dev-qa-db-ja.com

win7 x64でphp(xampp)を使用してOracleクライアント11.2を使用する方法

Win7(x64)PCに実際のXAMPPをインストールして、OracleDBに接続するためのPHPスクリプトを記述しました。また、通常のOracle 11.2.0クライアントもインストールしています(PATHとOracle_HOMEはクライアントは他のすべての作業に問題なく使用されます。

Oracle DBに接続しようとすると、PHPはFatal error: Call to undefined function oci_connect() inで失敗します。php.iniで「oci8-extensions」を有効にする必要があったことを覚えています。数年前のx32winXP PCでも同じことですが、現在のxamppの_php/ext_フォルダーにはこれらのdllがありません(Apacheの起動時に不明な関数のエラーをいくつかスローする_php_oci8_12c.dll_のみです。 11)ではなくOracle 12)とphp.iniも、インスタントクライアントにのみ必要であると述べています。

_;extension=php_oci8.dll      ; Use with Oracle 10gR2 Instant Client
;extension=php_oci8_11g.dll  ; Use with Oracle 11gR2 Instant Client
_

また、これ SO-questions は、通常のクライアントでコメント拡張機能を使用しても機能しないことを示しています(これも試しました)。

解決策をグーグルで検索しようとしましたが、すべての「解決策」は「win32インスタントクライアントをインストールして拡張機能を有効にする」です。しかし、私のQA作業のほとんどは、インストールおよび構成された11.2.0クライアントを必要とし、とにかくphp/ext-folderに.dllがないため、これを行うことはできません。

また、ociw32.dllをclient/binフォルダーからphp/ext-folderにコピーしようとしましたが、ApacheはそれがPHPライブラリではないと言います。

では、どうすればPHP Oracleライブラリがx64win7[〜#〜] without [〜#〜]win32 Oracle Instant Clientをインストールし、現在の設定を破棄しますか?

編集:私はまた、説明されている手順を試しました PHP:インストールマニュアル(投稿:samantha dot vincent at gmail dot com) Apacheの変更を含む-http.confも役に立ちませんでした。

phpinfo()-出力についても混乱しています

_Configure Command   "--with-pdo-oci=c:\php-sdk\Oracle\x86\instantclient_12_1\sdk,shared" "--with-oci8-12c=c:\php-sdk\Oracle\x86\instantclient_12_1\sdk,shared"
_
4
bish
  1. https://pecl.php.net/package/oci8/2.2.0/windows SELECT-> 32ビットの場合は7.3スレッドセーフ(TS)x86、64ビットの場合は7.3スレッドセーフ(TS)x64
  2. すべてのファイルを抽出し、de C:\ xampp\php\extにコピーします
  3. Php.iniファイルを開き、次のように記述します:extension = php_oci8.dll
  4. Xamppを再起動します。ブラウザを確認してください http://localhost/dashboard/phpinfo.php oci8が有効になっていない場合は、表示されません。インターネットからダウンロードし、oci8.dllをc:\ windows\system32フォルダーにコピーします。
  5. Xamppを再起動します
  6. ブラウザを確認してください http://localhost/dashboard/phpinfo.php oci8が有効になっている場合。完了!!
2
Yvan Serrata