web-dev-qa-db-ja.com

php.iniでoci8(Oracle)の拡張機能を有効にする方法-PHP警告:PHPスタートアップ:0行目の不明

私はWindows XPを持っていて、最近wamp(Apache-mysql-php)32ビットをインストールしました。インストールをテストし(phpとApacheでmysqlデータベースに接続)、すべてが正常に機能していました。

ここで、Oracleデータベースに接続する必要があるため、Oracleおよびoci8に関連するいくつかの拡張機能を有効にしようとしました。

そして私はしました:

1)php.iniファイルを開き、次の行の前のセミコロンを削除しました。

前:

;extension=php_oci8.dll
;extension=php_oci8_11g.dll

後:

 extension=php_oci8.dll
 extension=php_oci8_11g.dll

2) Apacheとすべてのサービスを再起動すると、

  • 「PHPスタートアップ」の警告。

php_error.logファイルで取得:

 **PHP Warning:  PHP Startup:  in Unknown on line 0**

だから、私の拡張phpフォルダーがどこにあるか、そしてそれらのdllファイルがそこにあるかどうかを確認するのは良い考えだと思いました。

php.iniで私の拡張フォルダは次の場所にあります:

extension_dir = "C:/wamp/bin/php/php5.4.16/ext/"

フォルダが存在し、これらのライブラリ(php_oci8.dll php_oci8_11g.dll)は両方ともそのフォルダ内にあります。

4) Windowsの「Path」システム変数に次を追加しました。

C:\wamp\bin\php\php5.4.16\ext;

5)これらのdllファイルの両方をApacheのフォルダーにコピーしましたが、やはり機能しませんでした。

C:\wamp\bin\Apache\Apache2.4.4\bin 

6)また、phpinfoページを確認したところ、「oci8」のエントリは次のとおりです。

コマンドの構成

 "--with-oci8=C:\php-sdk\Oracle\instantclient10\sdk,shared" "--with-oci8-11g=C:\php-sdk\Oracle\instantclient11\sdk,shared"

うーん...次のフォルダ存在しません私のシステムでは:

C:\php-sdk\Oracle\instantclient10\sdk
C:\php-sdk\Oracle\instantclient11\sdk

では、oci8拡張機能を正しく有効にするために次に何をすべきでしょうか?

ありがとう

5
programmer

[解決済み]

Instant Client Package-Basic(バージョン10.2.0.5)をダウンロードし、解凍しました。

その後、そのパッケージのすべてのファイルを次のフォルダーにコピーしました。

C:/wamp/bin/php/php5.4.16/ext/
C:/wamp/bin/Apache/Apache2.4.4/bin

それは私にとってこのように機能しました。その後、oci8モジュールがロードされました。

7
programmer

InstantClientをダウンロードするときは、アーキテクチャにwampがインストールされていることを確認してください。

私の場合、instantclientはx64をダウンロードしましたが、x32をインストールしていて、問題がありました。

正しいアーキテクチャをダウンロードし、正常に動作しました。

1
user3596663