• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CGI でDBI->connectするとエラー発生)

CGIでDBI->connectするとエラー発生

このQ&Aのポイント
  • CGIでORACLEに接続しようとしたところ、Internal Server Errorが発生しており困っています。APACHEでCGIを実行した時だけエラーが発生し、コマンドライン上で実行するとエラーは発生しません。
  • エラーメッセージには、'/usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/auto/DBD/Oracle/Oracle.so'が見つからないという内容が表示されています。また、試した対策として、環境変数の定義確認、ld.so.confへの追記、httpd.confへの環境変数のセットなどを行いましたが、問題は解決していません。
  • 現在、どこが悪くて動かないのか、原因として考えられること、対処すべきことについてわからない状況です。試すべきことや追加情報などがあればお知らせください。

質問者が選んだベストアンサー

  • ベストアンサー
  • vsba23895
  • ベストアンサー率58% (18/31)
回答No.1

>APACHEでCGIを実行した時だけ >コマンドライン上で実行するとエラーは発生しない この症状だと、apache (httpd) にアクセス権がない、という可能性あり。 usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/auto/ 以下のディレクトリ、ファイルの permission を調べて見ては。 あと、コマンドラインで which perl した結果が、CGI で呼んでいる perl と同じものかどうかも、一応チェックするのが吉です。

hogehoge0
質問者

お礼

ご回答、有難うございます。 以下の対応をする事により、解決しました。 ・apacheのエラーメッセージにあるファイルのパーミッションをゆるめる(今回はlibnnz10.soだった) ・環境変数でアクセスするディレクトリのパーミッションをゆるくする ・apacheでcgiを実行する時のユーザー(nobody)のセカンドグループにoinstall($ORACLE_HOMEを持つグループ)を追加する ・httpd.confの最下行に必要な環境変数を全てセットし、apacheを再起動する 以上、解決しましたので終了とさせて頂きます。

関連するQ&A