質問
-
エコノミー
.htaccessでSetEnvした環境変数をcgiで使いたい -
本文:
.htaccessで独自の環境変数MYPARAを
SetEnv MYPARA 'value'
と設定し、このMYPARAをcgiで
$ENV{'MYPARA'}
として使いたい、というのが目標です。が、この環境変数をcgiに渡すことができず、困っています。
試しに、環境変数の一覧を出力するcgiを下記の通り作成してみると、
foreach $key (keys %ENV) {
print "$key --> $ENV{$key}<br>";
}
ローカルのテスト環境ではvalueを設定したMYPARAがリストアップされてくるのですが、いざ同じcgiをスターサーバーにアップロードして動作させるとMYPARAは現われないのです。
この理由(想像されるヒントでも構いません)、回避策などありましたら教えていただけるとありがたいです。 - 緊急度:通常投稿者:whitecloudさん投稿時間:2020/11/23 00:50
回答 No.10754
この回答がベストアンサーです
■
>>
suEXEC は、安全な環境変数のリスト (これらは設定時に作成されます) 内の変数として渡される安全な PATH 変数 (設定時に指定されます) を設定することで、 プロセスの環境変数をクリアします。
http://httpd.apache.org/docs/2.2/ja/suexec.html
<<
このあたりでは?
■
CGI(Perl)で質問文の通り確認してみましたが、確かに環境変数がセット?されてないですね。
PHPで確認すると、.htaccessで設定した環境変数が取得できました。
質問者からのコメント
なるほど、ありがとうございます。suEXECが設定されているとすると自前の環境変数は使えない、ということですね。(apacheのdocsの文章を読んでもなかなか理解できませんでした...)
まともにやれば回避策はphp、ということになるわけですか。php書いたことがなくて...トホホ。
確認等、お時間頂戴してありがとうございました。感謝します。もう少し設計も考え直してみます。