web-dev-qa-db-ja.com

xampp 5.6.3でociを有効にする方法は?

XAMPP経由でApacheサーバーを起動しているときに問題が発生しました。 XAMPPバージョン5.6.3をインストールしました。

XamppコントロールパネルからApacheサーバーを起動すると、次のようなエラーメッセージが表示されます。

Figure-1

[OK]ボタンをクリックすると、次のような別のダイアログボックスが表示されます。

Figure-2

Mysqlの代わりにOCIを使用したかったのです。そのため、mysql拡張機能をコメントアウトし、php.iniファイルのOCI拡張機能のコメントを解除しました。

Figure-3

php_oci8_12c.dllファイルは、xamppのphpの拡張子(ext)フォルダーで使用できる唯一のファイルです。したがって、上の画像に示すように、php.iniにその行を含めました。

それ以来、このエラーが発生しています。

Instant Client 12.1もインストールしましたが、うまくいきません。また、instantclient_12_1からOCI.dllをコピーして、c:/ xampp/phpおよびc:/ xampp/Apache/binに貼り付けてみました。エラーは引き続き発生します。

助けが必要..

PDATE:環境変数のPATHにある他のOracleパスを削除し、instantclientパスのみを保持しました。今、私はこのエラーが発生しています。

Figure-4

6
Harshrossi

私は問題を解決しました。問題は、32ビットPHPで64ビットDLL(php_oci8_12g.dll)を使用しようとしていたことでした。 32ビットのinstantClientをダウンロードしましたが、動作します。 :-)

instantclient-basic-nt-12.1.0.2.0.Zip

1
Harshrossi

XAMPP 1.8.2、PHP 5.4およびApache2.0をインストールしましたが、php_oci8_11g.dllを使用して正常に動作します。

Php_oci8_12g.dllを使用しようとしています。このリンクを読むことをお勧めします http://www.Oracle.com/technetwork/articles/dsl/technote-php-instant-12c-2088811.html 仕様oci12gを実行します。

2
Pablo Lopes

OCI8とXAMPPに関連する問題が数日続けて発生しました。問題は次のように表示されました。

致命的なエラー:未定義の関数oci_connect()の呼び出し

XAMPPにデフォルトで付属しているphpを使用して修正することができました。私もWindows10 64ビットを使用していますが、xampp-win32-7.3.2-0-VC15(php 7.3.2)を使用しています。要約すると、32ビットバージョン(OSを除く)ですべてを実行することにより、正しい構成を取得することができました。完全なストーリーと私がそれをどのように行ったか:

Cmdを介してxampp/phpディレクトリに移動すると、私の場合は「C:\ xampp\php」であり、単純なコマンド「php」でphpを起動すると、おそらくどのdllが表示されますかetcフォルダーに見つからないか、Win 32互換ではないもの。この問題が発生した場合、phpinfo()ページを開いたときにOCI8ページを表示できません。

enter image description here

その場合、win 32の互換性の問題があるか、そこにあると確信しているdllが見つからない場合は、XAMPPをアンインストールし、x32バージョンを使用して再インストールする必要があります。 phpinfoページにはx86アーキテクチャが表示されます。使用中のphpの場所を特定できないソースをパス変数から削除することを忘れないでください。ここでのポイントは、XAMPPでデフォルトで指定されているソースを使用することです。何らかの理由で別のphpインストールを使用する必要がある場合は、x86アーキテクチャを使用することを忘れないでください。更新されたOCI8dllが必要な場合は、 https://pecl.php.net/package/oci8 からダウンロードできますが、スレッドセーフの互換性を確認することを忘れないでください。phpinfoページで見つけることができます。同様に。私の場合、XAMPPが提供するものを使用するだけで十分でした。

この後、拡張機能を有効にする必要があります。

 extension=oci8_12c

php.ini構成ファイル内。これだけを有効にするだけで十分でしたが、extension = pdo_ociも有効にすることを提案する人もいます。ここに示されているパスでインストールに失敗した場合にのみ、これを試すことをお勧めします。私の場合、拡張機能に関して正しいパスに設定されているかどうかを確認することもお勧めします。

extension_dir="C:\xampp\php\ext"

この後、Oracle InstantClientをダウンロードする必要があります。 x86アーキテクチャを使用しているため(これを使用する必要があります)、32ビットバージョンのOICを見つける必要がありますが、コメントを外した拡張機能と互換性があるものを確認することも重要です。私の場合、oci8_12cのうち、instantclient-basic-nt-12.2でした。最後のステップは、「C:\ Instantclient_12_2」などのフォルダーに解凍し、システムのパス変数に追加することです。 Apacheをリロードし、OCI8が正しく表示されているかどうかを確認します。

0
GDelfs