Shell_exec issue with php


Shell_exec issue with php

我在函数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 喘息。

编辑:即使nobody ALL=NOPASSWD: ALL 在 sudoers 文件中似乎也不能让我的shell_exec使用 sudo。

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

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