2016-11-29 18 views
0

ファイルを削除するコマンドを持つshファイルがあります。私は、ブラウザからPHPファイルを開いた場合cronでphファイルからshファイルを実行する

shell_exec("sudo -n ./truncatefiles.sh 2>&1"); 

ザッツは正常に動作しますが、スケジュールされたクーロンタブからdoesntの仕事:

は、私はこのようなPHPからそれを実行します。

PHPユーザ:www-data

私はcronでwhoiamiを実行した場合、同じ返します:WWWのデータを

私はvisudoをにこれを追加しました:このSHファイルが戻るため

www-data ALL=(ALL) NOPASSWD: /www/sites/..../importscript/truncatefiles.sh 

シェルexecを(cronから):

sudo:申し訳ありませんが、sudoを実行するにはパスワードが必要です

なぜそれはcronで逆の方法ですか?

私はそれを動作させるために何をすべきですか?

+0

これはApache Webサーバーです。 – mirko911

+0

はい、その2.2.16(Debian) – bbenhu

答えて

0

あなたをデバッグすることができますこの方法 * * myscript.php >> /var/log/myjob.log 2> 、ファイルにcrotabからあなたの出力をログに記録するようにしてください 、次の操作を実行してみてくださいスクリプト。 1.また、シェルスクリプト、PHPファイルのユーザーとアクセス許可を確認します。 2. sudo crotab -eを試してみてください。

+0

私は応答を知っています:sudo:申し訳ありません、パスワードはsudoを実行するために必要です – bbenhu

+0

PHPファイル777、shファイル777 – bbenhu

+0

シェルexecこの方法:./truncatefiles.sh 2>&1 ask sudo -nで始まるパスワードはパスワードを要求します。それ以上のレスポンスはありません: – bbenhu

関連する問題