今野です。 tamagotoka <tamagot...@yahoo.co.jp> wrote: > apache22を使っているのですが、このapache22のFreeBSD起動時の環境変数(具 > 体的にいうとPATH)の指定はどこで行ったらよいのでしょうか。 > > cgiを動かすとき、cgiのpath指定が > > #!/usr/bin/env ruby > > とかだったりするとrubyが見つからず500エラーとなってしまいます。
CGI で動かすプログラムの PATH 設定を行いたい、という話ですね。 apache を起動する際の PATH を変えても、確かに希望の動作になり ます。でも、これは危険なことです。 apache 自身の環境変数 PATH が 変わってしまうと、 apache 関係の他の動作が変わってしまう可能性が あるわけです。 # 他の CGI で /bin や /usr/bin にないプログラムを起動しようして # エラーになるはずが、 /usr/local/bin にある同名の別なプログラム # を起動してしまう可能性がある。 一つの方法は CGI プログラムを書き換えてその中で PATH を設定す る方法です。これなら設定変更の影響範囲はその CGI だけで済みます。 もう一つの方法は、(PATH にない) ruby を起動しようとしてエラー になるのであれば、 ruby をフルパスで、つまり /usr/local/bin/ruby と指定することです。フルパスで指定すれば PATH に関係なく起動できます。 最後に、apache 自体の設定を行う方法があります。 mod_env モ ジュールについて調べてみてください。 -- motoyuki