Пользователю 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