『ネットオウルユーザーコミュニティ』の提供に伴い、『Q&A掲示板』は2025年3月31日正午をもって提供を終了します。[関連ニュース]

メンバーメニュー

ようこそ、ゲストさん

トップ > カテゴリ一覧 > 各種プラン > .htaccessでSetEnvした環境変数をcgiで使いたい

質問

  • エコノミー

    .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で設定した環境変数が取得できました。





  • 投稿者:k-tanさん 投稿時間:2020/11/23 11:53
質問者からのコメント

なるほど、ありがとうございます。suEXECが設定されているとすると自前の環境変数は使えない、ということですね。(apacheのdocsの文章を読んでもなかなか理解できませんでした...)
まともにやれば回避策はphp、ということになるわけですか。php書いたことがなくて...トホホ。

確認等、お時間頂戴してありがとうございました。感謝します。もう少し設計も考え直してみます。