用php解决Shell_exec问题

时间:2016-03-17 16:00:32

标签: php linux exec restart shell-exec

我遇到了一个关于shell_exec函数的小问题。 我要做的是通过单击按钮重启linux服务器。但是,我似乎无法让命令工作。

这是我正在尝试使用的命令:

shell_exec('sudo sbin/shutdown -r now');

我已经读了几个小时这个问题并尝试了所有我能找到的但无济于事。

所以这就是我尝试过的: 首先,我检查了php.ini中没有行阻止我使用该命令。 其次,我将此行添加到/ etc / sudoers

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

如果那也不起作用,我还在etc / sudoers.d /中创建了一个新文件并在那里写了:%users ALL=NOPASSWD: /sbin/shutdown

此外,我不知道这是否相关,但当我尝试在同一个地方运行另一个shell_exec时,它工作正常(返回www-data)

echo shell_exec("whoami");

但是当我添加sudo时没有显示任何内容:

echo shell_exec("sudo whoami");

所以是的,如果有人能告诉我还有什么可以尝试,我会很感激。提前致谢。 PS,这是linux的喘息,如果有任何帮助的话,我正试图让它继续工作。

编辑:sudoers文件中的偶数nobody ALL=NOPASSWD: ALL 似乎无法使我的shell_exec与sudo一起使用。

1 个答案:

答案 0 :(得分:0)

我认为这可能是一个错字。

它应该是shell_exec('sudo /sbin/shutdown -r now');,使用相对路径不会每次都有效。