• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:httpd で SetEnv が使えない)

httpdの問題:SetEnvが使えない

このQ&Aのポイント
  • httpd-2.2.17を使っており、cgiの中でモジュールを使用するためにLD_LIBRARY_PATHを設定する必要があります。
  • しかし、SetEnvで設定したLD_LIBRARY_PATHが読み込まれず、cgiでモジュールの読み込みに失敗します。
  • suexecを使っているためSetEnvが無効になっているが、suexecを有効にしつつcgiに環境変数を渡す方法はあるでしょうか?

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

  • ベストアンサー
  • NARH
  • ベストアンサー率82% (88/107)
回答No.3

POSTは標準入力からくるので、 read ln ; echo $ln | ./hello.cgi とかすると いけると思いますが、試してませんです。 mod_rewite でも環境変数セットできたと思ったのですが、結局 SetEnv と同じようなので ダメみたいですね。 LD_LIBLARY_PATHにしないで、ライブラリフォルダに放りこむってのはダメなんでしょうか? Linux系なら /etc/ld.so.conf とかにPATH書いちゃうとか。。。

moritan2
質問者

お礼

現在は /usr/lib に ln -s でリンクを作って対応しています。 とにかく、どうやってもsuexec と SetEnv は両立しないということで、諦めるしかないのでしょうか? これがはっきりすれば、諦めてシンボリックリンクを作る方法で行こうと思います。 しかし httpd のconfigure とかで suexec と SetEnv を両立させる方法があるのなら、それをやった方がすっとスマートなので質問をしています。

その他の回答 (2)

  • NARH
  • ベストアンサー率82% (88/107)
回答No.2

cgi を別のcgiでwrapするとか言ってみる。 CentOS 5.5 上で shell でwrapしてみたらいけそうだけど。 shell だとイケテないですが、環境変数設定できる言語ならなんでもいいんじゃないかと。 [環境変数変数表示] $ cat hello.cgi #!/bin/sh echo "Content-type: text/html"; echo "" echo "<pre>" env echo "</pre>" [環境変数設定ラッパー] $ cat hellowrapper.cgi #!/bin/sh export LD_LIBRALY_PATH=$(/usr/bin/readlink -f ../../lib) ./hello.cgi

moritan2
質問者

お礼

ご回答有難うございます。 ご回答の方法はcgiのパラメータがgetの場合はうまく行きそうですが、post の時にうまく動くでしょうか?

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.1

/etc/profileに LD_LIBRARY_PATH=XXXXXXXXXXXXXXXXXXX 必要なパスを書けばいいのでは

moritan2
質問者

補足

だめでした。 そもそも /etc/profile で環境変数を設定しても bash で設定される環境変数に影響するだけであり、httpd の環境変数がかわるわけではないのでは?