[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:12851] perl CGI + postgreSQL on plamo1.3



横須賀の荒金と申します.

ご無沙汰しております.
plamo linuxの上でpostrgeSQLとperlを使ってCGIができないものかと,
シーラカンス本(初版)を見ながら悪戦苦闘しています.

ログインシェルからの実行はできるようになったのですが,
apache経由の実行ができません.
おそらく,postgreSQLのLD_LIBRARY_PATHの設定などが問題になっているような
気がするのですが・・・

環境は以下の通りです.
plamo-version-1.3    /usr/lib/setupより
postgresql-6.3.2
jperl5.004_04-971016
apache1.3.4


ブラウザを使ってapache経由でcgiプログラムをたたくと,「Internal Server Error」
が表示されます.
そこで/usr/local/apache/logs/errorlogを見ると以下の記述がありました.

Can't load '/usr/lib/perl5/site_perl/i586-linux/auto/Pg/Pg.so' for module Pg: Fi
le not found at /usr/lib/perl5/i586-linux/5.00404/DynaLoader.pm line 166.
 at /usr/local/apache/cgi-bin/hoge.cgi line 2

確かに,このプログラム「hoge.cgi」の2行目では
use Pg;
としてpostgresのパッケージを読み込んでいます.

そこで,/usr/lib/perl5/site_perl/i586-linux/auto/Pg/Pg.so へのアクセス権
を見たところnobodyでも問題ないように設定してありました.

.bashrcを色々と変えながらターミナル上(kterm上)で試したところ,
export LD_LIBRARY_PATH=/usr/local/pgsql/lib
が登録されていない状態だと発生するような気がします.

apache経由で入ったときはnobodyでcgiが実行されますが,このときの
環境変数はどこを見て設定されているのでしょうか?
/etc/profile にも書いてみましたが違うようです.
/etc/passwd によれば,nobody のホームディレクトリは/dev/nullで
使用するシェルの記述はありませんでした.
試しに使用するシェルを/bin/bash としてみましたが状況に変化はありませんで
した.

やっぱりpostgresと連携させるならphpが無難なんでしょうか.(T_T)

******************************************************
荒金  陽助   NTTサービスインテグレーション基盤研究所

e-mail ;  aragane@ieee.org
******************************************************

Follow-Ups
[plamo:12852] Re: perl CGI + postgreSQL on plamo1.3, KATOH Yasufumi

[検索ページ] [メール一覧]
Plamo ML 公開システム