Apacheのユーザーにwww-dataは、を使用して特定のアプリケーションを実行するための特権を付与する必要がありますsudo。
- コマンドを実行します
sudo visudo。実際に、ファイルを編集しますetc/sudoers。それを行うには、sudo visudoターミナルで、sudoers編集する複製(一時)ファイルを使用します。
- ファイルの最後に、次のexを追加します:-
restartスモーキングにphpコマンドを使用し、質問の別のアクションにコマンドを使用する場合、
www-data ALL=NOPASSWD: /etc/init.d/smokeping/restart, usr/bin/php
(これは、スーパーユーザー(root)特権を使用して実行するコマンドrestartとphpコマンドを使用することを前提としています。そしてphp、usr/bin/pathでコマンドを使用します)
ただし、スーパーユーザー権限を使用してすべてのアプリケーションを実行する場合は、上記の代わりに次を追加しますALL。コマンドではなく、非常に危険です。
www-data ALL=NOPASSWD: ALL
3. sudoersファイルを編集した後(そのためvisudo、一時ファイルを編集しsudoersて保存し、一時ファイル(visudo)を終了してsudoersファイルに書き込みます。(wq!)
4.これで、スクリプト内でexec()またはshell_exec次の方法でxxx.phpスクリプト内で使用できます。phpスクリプトでコマンドを使用するsudo前に使用することを忘れないでください。
例:-
exec ("sudo /etc/init.d/smokeping restart 2>&1");
または
shell_exec("sudo php -v");
だからあなたの問題では、使用したいコマンドを追加し、必要に応じてstep no (2.)PHPスクリプトを追加して変更します。
ここにあなたと同じ問題があります/programming//a/22953339/1862107