linux-phpでのShell_execの問題
shell_exec関数で小さな問題が発生しました。 私がやろうとしているのは、ボタンをクリックしてLinuxサーバーを再起動することです。ただし、コマンドを機能させることができないようです。
これは私が使おうとしているコマンドです:
shell_exec('sudo sbin/shutdown -r now');
私はこの問題について数時間読んでいて、見つけたすべてのことを試しましたが、役に立ちませんでした。
これが私が試したことです:
まず、php.iniにコマンドの使用を妨げる行がないことを確認しました。
次に、この行を/ etc / sudoers
に追加しました
%www-data ALL=NOPASSWD: /sbin/shutdown
それでもうまくいかなかった場合は、etc / sudoers.d /に新しいファイルを作成し、そこに次のように書き込みました: %users ALL=NOPASSWD: /sbin/shutdown
また、それが適切かどうかはわかりませんが、同じ場所で別のshell_execを実行しようとすると、正常に動作します(www-dataを返します)
echo shell_exec("whoami");
しかし、sudoを追加しても何も表示されません:
echo shell_exec("sudo whoami");
そうですね、他に何を試すべきか教えてくれる人がいたら、それをいただければ幸いです。前もって感謝します。 PS、それが助けになるなら、私がこれを動かそうとしているのはLinuxwheezyです。
編集:nobody ALL=NOPASSWD: ALLでも
sudoersファイルの
では、shell_execがsudoで機能しないようです。
答え :
解決策:
おそらくタイプミスだと思います。
shell_exec('sudo /sbin/shutdown -r now'); である必要があります。相対パスの使用は、毎回機能するとは限りません。
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。