Пользователю Apache www-dataнеобходимо предоставить привилегии для запуска определенных приложений sudo.
- Запустите команду
sudo visudo. На самом деле мы хотим отредактировать файл в. etc/sudoersЧтобы сделать это, используя sudo visudoв терминале, он дублирует (временный) sudoersфайл для редактирования.
- В конце файла добавьте следующее, например: -если мы хотим использовать команду для
restartкопчения и phpкоманду для другого действия в вашем вопросе,
www-data ALL=NOPASSWD: /etc/init.d/smokeping/restart, usr/bin/php
(Это предполагает, что вы хотите запускать restartи phpкоманды, используя привилегии суперпользователя (root). И вы используете phpкоманду в usr/bin/пути)
Однако, если вы хотите запускать каждое приложение, используя привилегии суперпользователя, добавьте следующее вместо того, что указано выше. Возможно, вы не захотите делать это, не для ALLкоманд, это очень опасно.
www-data ALL=NOPASSWD: ALL
3. После редактирования файла sudoers ( visudoмы редактируем временный файл, sudoersпоэтому сохраняем и выходим из временного файла (visudo) для записи в sudoersфайл. ( wq!)
4. Вот и все, теперь используйте exec()или shell_execследующим образом внутри вашего xxx.phpскрипта. Не забудьте использовать sudoперед использованием команды в сценарии php.
например: -
exec ("sudo /etc/init.d/smokeping restart 2>&1");
или
shell_exec("sudo php -v");
Так что в вашей проблеме добавьте команды, которые вы хотите использовать в к, step no (2.)как я добавляю, и измените ваш php-скрипт на то, что вы хотите.
здесь та же проблема, что и у вас /programming//a/22953339/1862107