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