アプリ版:「スタンプのみでお礼する」機能のリリースについて

SSIでHDDの温度を表示するスクリプトを実行しようとしましたが、上手くいきません。SSI自体は正常に動作しています。(試しに、他のスクリプトを実行させたら、正常に作動しました。)

問題は、コマンドラインからスクリプトを実行させると正しく動作するのに、作成したshtmlを実行すると動作しないのです。

以下に、正しく表示されないスクリプトとshtml、正しく動作したスクリプトとshtmlを表示します。

1.正しく表示されないスクリプト、shtml(HDD温度表示)
[スクリプト]
#!/bin/sh
hddtemp /dev/hda | awk '{print $4}'

※コマンドラインからの実行結果
39

[shtml]
<html>
<head><title>HDDTEMP実験</title></head>
<body>
現在のHDD温度<br>
<!--#exec cmd="./hddtemp.sh"-->
</body>
</html>

※実行結果
現在のHDD温度

2.正常に動作したスクリプト、shtml
[スクリプト]
#!/bin/bash
/bin/date

※コマンドラインからの実行結果
Sun May 22 18:11:21 JST 2005

[shtml]
<html>
<head><title>SSI使用例</title></head>
<body>
現在時刻を表示します<br>
<!--#exec cmd="./date.sh"-->
</body>
</html>

※実行結果
現在時刻を表示します
Sun May 22 18:09:56 JST 2005

Apacheは1.3.33です。
どうぞよろしくお願いします。

A 回答 (2件)

hddtemp.sh内から呼び出しているhddtempという実行可能ファイル?のパーミッションは適切ですか?


Apache実行ユーザーにsuして、hddtemp.shを実行してみれば切り分けが出来るでしょう。

この回答への補足

ApacheはDebianで動かしています。hddtempはapt-getで入れてみました。

確かにApache実行ユーザーにsuしたところ、hddtemp.shはcommand not foundとなりました。date.shは実行できました。おっしゃるとおりhddtempのパーミッションが適切でないということだったようです。

hddtempですが、sbinの中に以下のものが入っています。
-rwxr-xr-x 1 root root 12768 Oct 11 2002 hddtemp
sbinに入っているということは、これはApacheからSSIで実行するのは無理、ということでしょうか?

補足日時:2005/05/22 18:45
    • good
    • 0
この回答へのお礼

失礼しました。よく調べましたら、hdetempのセットアップの際に、"Do you want /usr/sbin/hddtemp to be installed SUID root?"という設定項目がありました。ここの設定を調整することにより、suでなくても実行することが出来るようになりました。

いずれにせよ、ご指摘のポイントが問題解決の大きなきっかけになりました。どうもありがとうございました。

お礼日時:2005/05/22 19:34

スクリプトを


hddtemp /dev/hda
だけで実験してみる
$4

$5にしたり
$3にしたりしてみる

この回答への補足

ありがとうございます。
はい、そこはいろいろ変えてもそれなりに動きました。

補足日時:2005/05/22 19:13
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!