PHP shell_exec 访问 deb 9 上的系统服务

PHP shell_exec to access a system service on deb 9

我正在尝试使用 PHP shell_exec 访问 deb 系统服务,但我无法使其正常工作。

这是我试图从 php 脚本 运行 执行的命令:

shell_exec('sudo service icecast2 stop');

但它不起作用有两个原因..

1) 我不确定我是否在 /etc/sudoers 中授予了正确的用户权限?

%www-data ALL=NOPASSWD: /sbin/???????

2) ???????? = 我不确定在 /sbin 中指向哪里以允许访问系统服务?我已经尝试了多种方法,但由于我不确定我错在了哪一部分(可能两者都错了),所以我什么都做不了。

感谢任何帮助;)

在我的 Debian 系统上 service/usr/sbin 中,而不在 /sbin 中。所以应该是:

%www-data ALL=NOPASSWD: /usr/sbin/service

您还应该在 shell_exec() 命令中使用完整路径,因为 /usr/sbin 可能不在网络服务器的 $PATH.

shell_exec('sudo /usr/sbin/service icecast2 stop');