- PR -

/usr/bin/envが無効になってしまう理由

1
投稿者投稿内容
Folly
常連さん
会議室デビュー日: 2003/09/12
投稿数: 22
投稿日時: 2003-12-31 01:20
私の家においているServerにはtDiaryを入れているのですが、
今まで普通に稼働していたtDiaryがqmail周りを整備しているときにInternal Server Errorになるようになってしまいました。
----エラーログ-----------
[Wed Dec 31 01:02:41 2003] [error] [client 192.168.***.***] Premature end of script headers: index.rb, referer: http://hogehoge.net/
[Wed Dec 31 01:02:41 2003] [error] [client 192.168.***.***] /usr/bin/env: ruby: No such file or directory, referer: http://hogehoge.net/
-------------------------
現在はRedhat9で構築してあるのですが、以前もFreeBSDで作ったServerでenvだと動かないと言ったことがありました。
以前はapache2をrestartすると動いていたので、起動後Apacheのみrestartしていました。
今回構築当初は何の問題もなく動いていました。
しかし、今日になってdaemontoolsを入れたりとqmailのセキュリティー対策工をしていたら、Internal Server Errorがでるようになっておりました。
今回、restartかけても全く状態が変わらず困っています。
つまり、普通に動いていたのにqmailの整備で動かなくなってしまったといった具合です。

どうかお助けください。
t-wata
大ベテラン
会議室デビュー日: 2002/07/12
投稿数: 209
お住まい・勤務地: 東京
投稿日時: 2003-12-31 02:59
/usr/bin/envの問題ではなく、apacheを起動しているプロセスの環境変数PATHの
問題でしょう。要するにPATHが通ってないだけです。
rubyはどこにあるのでしょうか?/usr/local/bin辺りかな?
Folly
常連さん
会議室デビュー日: 2003/09/12
投稿数: 22
投稿日時: 2003-12-31 13:13
rubyはおっしゃるとおりdefaultの/usr/local/binにあります。
apacheのuserにしている/home/wwwにある.bash_profileにpath、/usr/local/binを追加してみたのですが、うまくいきません。
素直にプロセスに渡すとはどうやるのでしょうか。

qmailとかだと/etc/rc.d/init.d/qmail内に確か指定できると思うのですが、
apacheはapachectlで操作していています。

とりあえずfindで探してみようかと思いますが。
望ましいと思われる場所を教えていただけると幸いです。
t-wata
大ベテラン
会議室デビュー日: 2002/07/12
投稿数: 209
お住まい・勤務地: 東京
投稿日時: 2004-01-02 20:58
> apacheのuserにしている/home/wwwにある.bash_profileにpath、/usr/local/binを追加して
> みたのですが、うまくいきません。

ログインシェルの環境変数で指定しても、ログインシェルから起動されないプロセスに対しては有効になりませんよ。

> apacheはapachectlで操作していています。

export PATH=$PATH:/usr/local/bin
apachectl start
とすればOKな筈です。
1

スキルアップ/キャリアアップ(JOB@IT)