• 締切済み

Perl+DBD::Oracleのエラーがわからず困っています

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 のパーミッション変更 ご存知であればご教授の程、お願い致します。

みんなの回答

  • onosuke
  • ベストアンサー率67% (310/456)
回答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に追加した値 を教えてください。

jboss
質問者

お礼

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