首页 > 解决方案 > PHP shell_exec 在 deb 9 上访问系统服务

问题描述

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

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

shell_exec('sudo service icecast2 stop');

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

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

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

2) ??????? = 我不确定在 /sbin 中指向何处以允许访问系统服务?我尝试了很多方法,但由于我不确定哪一部分我错了(可能两者都有),所以我无法让任何工作。

任何帮助表示赞赏;)

标签: phpdebianshell-exec

解决方案


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

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

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

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

推荐阅读