
jboss と申します。お世話になります。
Solaris 上で動作させていた cgi プログラムを Linux へ移行しています。
下記の動作環境にて、ブラウザより該当プログラムを実行すると、
下記のようなエラーが発生します。
■ 動作環境
OS RedHatLinux EL4.0
Apache 1.3.37
Perl 5.8.5
DBI 1.52
DBD::Oracle 1.18
DB Oracle 8i (8.1.7)
■ Apache のエラーログ
install_driver(Oracle) failed: Can't load '/usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/auto/DBD/Oracle/Oracle
.so' for module DBD::Oracle: libclntsh.so.8.0: cannot open shared object file: No such file or directory at /usr/lib/per
l5/5.8.5/i386-linux-thread-multi/DynaLoader.pm line 230, <DATA> line 855.
at (eval 7) line 3
Compilation failed in require at (eval 7) line 3, <DATA> line 855.
Perhaps a required shared library or dll isn't installed where expected
at /export/home/orasql.pl line 30
エラーログから解決方法を検索して、下記の方法は試したのですが解決しません。
・LD_LIBRARY_PATH の追加
・libclntsh.so.8.0 のパーミッション変更
ご存知であればご教授の程、お願い致します。
No.1ベストアンサー
- 回答日時:
(1)情報収集
ldd /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/auto/DBD/Oracle/Oracle
.so
を実行すると、どんなメッセージが表示されますか?
(2)「LD_LIBRARY_PATHの追加」の詳細
・「LD_LIBRARY_PATHの追加」で行った作業
・LD_LIBRARY_PATHに追加した値
を教えてください。
onosuke さん。
情報を提供頂き、ありがとうございます。
お蔭様で昨日、無事に自己解決いたしました。
解決方法は、Apache起動時に環境変数をセットする為
httpd.confへ以下の記述を追加して動作を確認しました。
LoadFile /oracle/app/oracle/product/8.1.7/lib/libclntsh.so.8.0
SetEnv LD_LIBRARY_PATH /oracle/app/oracle/product/8.1.7/lib
SetEnv ORACLE_HOME /oracle/app/oracle/product/8.1.7
ちなにみ onosuke さんから頂いた確認方法を試したところ、
以下の通りになりました。
(1)情報収集
[root@ ~]# ldd /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/auto/DBD/Oracle/Oracle.so
libclntsh.so.8.0 => /oracle/app/oracle/product/8.1.7/lib/libclntsh.so.8.0 (0x00296000)
libwtc8.so => /oracle/app/oracle/product/8.1.7/lib/libwtc8.so (0x00111000)
libdl.so.2 => /lib/libdl.so.2 (0x00113000)
libm.so.6 => /lib/tls/libm.so.6 (0x00117000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0x00a32000)
libc.so.6 => /lib/tls/libc.so.6 (0x00dbf000)
/lib/ld-linux.so.2 (0x0027f000)
(2)「LD_LIBRARY_PATHの追加」の詳細
⇒.bashrcへ下記の情報を追加しています。
export ORACLE_HOME=/oracle/app/oracle/product/8.1.7
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export 他Oracle環境変数・・・
ldd コマンドは存じておりませんでしたので、大変参考になりました。
ご意見ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
openした後、closeしないでプロ...
-
テキストファイルで提出とは?
-
perl の open について教えてく...
-
Perl言語について。
-
ファイルをディレクトリ分配の...
-
アルファベットに付いて質問し...
-
#!/usr/bin/perlで書きだしたCG...
-
Perlのエラーについてご教授く...
-
perlのflock関数でロックをかけ...
-
AI sisterとは、偽物の人ですか?
-
bashスクリプト
-
ファイルアイコンの左下に緑の□...
-
perlプログラミング 空白行削除
-
perlでリテラル値はメモリにど...
-
perlで2次元配列をサブルーチ...
-
Perlで時間の計算
-
perlについて
-
perlのrequireの動き方について...
-
perlの構文でカンマの意味が分...
-
perlについての質問
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Perl+DBD::Oracleのエラーがわ...
-
python
-
python 環境構築について
-
@INCにrequireされたファイルが...
-
use lib qw(変数名);は無理?
-
perl DBD::Pg インストールでエ...
-
Net::SSH::Perlについて
-
エラー内容がわかりません。Con...
-
Jcode.pmについて
-
英文でperlの文法などを説明し...
-
DBIをCPANからインストール時に...
-
DB_Fileモジュールインストール...
-
\\* の意味が分かりません。
-
SOAP::Liteを利用したい!
-
Pg.pmモジュールがロードできない
-
CygwinでPerlのCSV_XSを実行する
-
@INCにセットされたディレクト...
-
HTML::FillInFormが使えない(...
-
例外処理のフローチャートの記...
-
「デバイスは PRN を初期化でき...
おすすめ情報