• ベストアンサー

CGIでの環境変数PERL5LIBの設定

自分の ~/.bash_profile で、 export PERL5LIB=/usr/local/lib というように設定しているのですが、 CGIではこれが反映されていません。 どこでPERL5LIBを設定すれば、 /usr/local/lib が @INCに組み込まれるようになるのでしょうか?

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

  • ベストアンサー
回答No.2

httpd サーバの種類は、何でしょうか。 Apache ならば、httpd.conf で、 SetEnv ディレクティブによって環境変数を設定すればよいと思います。 SetEnv PERL5LIB /usr/local/lib

参考URL:
http://httpd.apache.org/docs/2.2/mod/mod_env.html#setenv
JF1Msf
質問者

お礼

httpdはapache2です。 ありがとうございました。 これこそ、教えていただきたかった情報です。

その他の回答 (1)

回答No.1

httpd サーバの設定にもよりますが、通常は、 CGIが実行されるのは、自分のユーザーIDによってではなく、 httpd サーバを実行するユーザIDです。 そのため、環境変数を自分のユーザープロファイルで設定しても、 CGIに反映されません。 CGI の記述言語はPerl のようですので、 CGIプログラムの冒頭に次の1行を記述すると、@INC に /usr/local/lib が追加されます。 use lib qw(/usr/local/lib);

JF1Msf
質問者

補足

早々にご回答、ありがとうございました。 実は、しかたなく、 use lib "/usr/local/lib"; をスクリプトに書き入れてなんとかしていたのですが、 そのhttpdを実行するIDの環境変数を設定できないものか。 もし設定可能ならば、どのファイルで設定すればいいのかを、 教えていただきたかった次第です。 もしご存知でしたら、すみませんが、またよろしくお願いいたします。

関連するQ&A