ルートでなくても実行できるbashスクリプトがあります。
しかし、私が次のようにshell_exec()
(またはsystem()
、、またはexec()
)を介して実行すると、次のようになります。
return system("/home/tom/rrd/rrdtool-drawgraph.sh $interval $multiples - debug 2>&1;");
次のメッセージが表示されます。
sh:/home/tom/rrd/rrdtool-drawgraph.sh:許可が拒否されました
(不思議なことに、メッセージが繰り返されます。それが適切かどうかわかりませんか?編集:代わりにバッククォートを使用すると、メッセージが繰り返されないようですshell_exec
。図を参照してください。)
777ファイルのアクセス許可を使用してみました。所有者とグループをに変更してみましたwww-data
。出力を吐き出すディレクトリを、同じように許容できる権限を持つように変更しました。
それでも実行されません。
私が考えることができる唯一のことは、スクリプトが私のホームディレクトリにあるということです。これが問題である場合、私は驚かれることでしょう(私のWebルートも私のホームディレクトリにあるので)、しかし私は修正される準備ができています。これが問題である場合、ルート特権を必要とせずに修正できますか?
ホームディレクトリにいることとは関係がない場合、何が問題になりますか?そして、どうすれば修正できますか?