web-dev-qa-db-ja.com

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

次の行はコメントされていません(私のphp.iniにあります):

_extension=php_Oracle.dll 
extension=php_oci8.dll
_

そして、私はこのファイルを_instantclient-basiclite-nt-11.2.0.2.0.Zip_ダウンロードして解凍し、ドライブDに置きました...

WindowsXPを使用しています

私は次のように環境変数を設定します:

_LD_LIBRARY_PATH     C:\instantclient_11_2:$LD_LIBRARY_PATH 
Oracle_HOME     C:\instantclient_11_2 
_

しかし、oci_connect()関数を実行すると、次のエラーが表示されます。

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

そして私はerroeLogファイルでこの警告を見つけました:

[2011年12月29日00:36:39] PHP警告:PHP起動:ダイナミックライブラリを読み込めません 'c:\ php\ext\php_oci8 .dll'-指定されたモジュールが見つかりませんでした。0行目の不明で

[2011年12月29日00:36:39] PHP警告:PHP起動:ダイナミックライブラリを読み込めません 'c:\ php\ext\php_Oracle .dll'-指定されたモジュールが見つかりませんでした。

7
afsane

チェック事項:

  • LD_LIBRARY_PATHOracle_HOMEも設定する必要はありません。ただし、D:\instantclient_11_2PATH環境変数に追加し、コンピューターを再起動して変更を適用する必要があります。

  • PHPを構成する前に、Oracleクライアントライブラリが実際に機能することを確認してください(たとえば、SQL Developerに接続してみてください)。

  • extension=php_Oracle.dllをコメントアウトします。これは、古くて非推奨のOracle拡張機能に属しています。

  • php_oci8.dllファイルが実際にc:\php\ext\php_oci8.dllにあることを再確認しますか?

4

php_oci8.dllファイルをphp/extディレクトリに置いた後、Apacheを再起動しましたか?

2

拡張機能の場所を指すこの行をphp.inファイルに追加するだけで、拡張機能の場所を知る必要がありますが、通常はphpフォルダーにあります。

extension_dir = C:\xampp\php\ext ;これはxamppを使用している私にとっては賢明です。

それは私のために働いた。問題は拡張機能へのアクセスにあり、Oracleライブラリとは何の関係もありません。

0
user3269964