OCI8がgit bashやコマンドプロンプトで認識されない
以下のサイトを参考にしても出来ない場合は、もしかしたらこの手段で解決できるかもしれない。
https://blogs.oracle.com/opal/installing-xampp-for-php-and-oracle-database
PHPINFOやXAMPPのshellで確認すると正常にOCI8が読み込まれているのに、bashやコマンドプロンプトからは読み込まれていない現象が発生した。
エラー
Git Bashにて (コマンドプロンプトも同様)
$ php --ri oci8
PHP Warning: PHP Startup: Unable to load dynamic library 'ext\php_oci8_12c.dll' - 指定されたモジュールが見つかりません。
in Unknown on line 0
Warning: PHP Startup: Unable to load dynamic library 'ext\php_oci8_12c.dll' - 指定されたモジュールが見つかりません。
in Unknown on line 0
Extension 'oci8' not present.
正常
XAMPP for Windows(XAMPPコントロールパネルのshellボタンから)
php --ri oci8
oci8
OCI8 Support => enabled
OCI8 DTrace Support => disabled
OCI8 Version => 2.1.8
Revision => $Id: faekfjas4asd5f465a1sd8f1sd1fasd $
Oracle Run-time Client Library Version => 12.1.0.2.0
Oracle Compile-time Instant Client Version => 12.1
解決策
まず、Windowsの「設定」->「アプリと機能」から「Microsoft Visual C++ 2010 x86 Redistributable」が存在するか確認する。
なければ以下のサイトで該当のoracle instant clientのバージョンを探す。
例では「Version 12.1.0.2.0」の「Instant Client Package - Basic」には「Microsoft Visual Studio 2010 Redistributable」が必要とある。
以下のリンクからそのダウンロードページを開く。
https://www.oracle.com/database/technologies/instant-client/microsoft-windows-32-downloads.html
XAMMPの環境では32ビットのため、以下のリンクから32ビット版である「vcredist_x86.exe」をダウンロードする。
https://www.microsoft.com/ja-JP/download/details.aspx?id=26999
ダウンロードしたファイルを実行し「Microsoft Visual C++ 2010 x86 Redistributable」をインストールすると解決した。
原因はoci8関連のdllをxampp\phpに配置してphp.iniに記述してあっても、端末自体に32ビット版の「Microsoft Visual Studio 2010 Redistributable」がインストールされていないと、XAMPPの外からは実行できないからと思われる。
Share this post
Twitter
Google+
Facebook
Email