我遇到了一个关于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一起使用。
答案 0 :(得分:0)
我认为这可能是一个错字。
它应该是shell_exec('sudo /sbin/shutdown -r now');
,使用相对路径不会每次都有效。