php実行時のWarningメッセージ出力について
[対象となる製品のバージョン]
Asianux Server 3 for x86(32bit)
Asianux Server 3 for x86-64(64bit)
MIRACLE LINUX V4.0 - Asianux Inside
MIRACLE LINUX V4.0 - Asianux Inside for x86-64
MIRACLE LINUX V3.0 - Asianux Inside
MIRACLE LINUX V3.0 - Asianux Inside for x86-64
[注意事項]
本ドキュメントは、各ソフトウェア開発元の情報およびマニュアル等を元にした参考情報です。本ドキュメントの内容は、予告なしに変更される場合があります。本ドキュメントは、限られた評価環境における検証結果をもとに作成しており、全ての環境での動作を保証するものではありません。本ドキュメントの内容に基づき、導入、設定、運用を行なったことにより損害が生じた場合でも、弊社はその損害についての責任を負いません。あくまでお客様のご判断にてご使用ください。
[現象]
一般ユーザー、または、rootユーザー権限で、コマンドラインからphpを実行すると以下の様なWarningメッセージが出力される場合があります。
# php -v
PHP Warning: PHP Startup: Unable to load dynamic library'/usr/lib/php/modules/oci8.so'
/usr/lib/php/modules/oci8.so: undefinedsymbol: xxxxxxx in Unknown on line 0
(xxxxxxxにはoci8.soライブラリ内のシンボル名が表示されます。)
[詳細]
このWarningメッセージは、php-oci8が使用するOracle Databaseのライブラリが正しく読み込まれなかったことを意味し、Oracle Databaseのライブラリへのパスが正しく設定がされていない場合に出力されます。 php-oci8はphpでOracle Databaseを操作する為のパッケージです。Oracle Databaseと連携していない場合、このWarningメッセージが出力されたとしても、phpの動作に影響はありません。Oracle Databaseを使用している場合、phpからOracle Databaseの操作が出来無い可能性があります。
[対処方法]
本問題の対処方法はOracle Databaseのインストールの有無によって異なります。
ご使用の環境に当てはまる方法を行って下さい。
-
Oracle Databaseを使用していない場合
Oracle Databaseと連携をしない場合、このWarningメッセージは無視することができます。また、php-oci8のパッケージを削除することでWarningメッセージを止める事ができます。このパッケージを削除することによるphpの動作への影響はありません。
# rpm -qa |grep php-oci8
php-oci8-5.1.6-23.2AXS3
# rpm -e php-oci8-5.1.6-23.2AXS3
-
Oracle Databaseを使用している場合
実行するユーザーの環境変数ORACLE_HOME,LD_LIBRARY_PATHにパスを正しく設定して頂く事でライブラリが正しく読み込まれるようになり、Warningメッセージの出力を止める事が出来ます。
インストールされているOracle Databaseのライブラリを設定します。
# export ORACLE_HOME=/opt/app/oracle/product/xx.x.xx/db_1
(ORACLE_HOMEにはOracle Databaseのインストール先ディレクトリを指定してください。)
# export LD_LIBRARY_PATH=$ORACLE_HOME/lib
常時使用する場合にはユーザーの設定ファイルに以下の設定を追記します。
例)ユーザー”user1”に対して設定を行う場合
/home/user1/.bashrc
export ORACLE_HOME=/opt/app/oracle/product/xx.x.xx/db_1
(ORACLE_HOMEにはOracle Databaseのインストール先ディレクトリを指定してください。)
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
[更新履歴]
2010年 2月25日 新規作成