【发布时间】:2016-07-04 02:37:45
【问题描述】:
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 wheezy。
编辑:即使 sudoers 文件中的 nobody ALL=NOPASSWD: ALL
似乎也无法让我的 shell_exec 与 sudo 一起使用。
【问题讨论】:
-
From : codebin.co.uk/blog/running-scripts-as-root-from-php : 如果输出为空并且命令静默失败,那是因为 sudo 设置为只能从终端直接使用。链接中的解决方案(未测试不知道是否有效)。
-
试过了,没用。不过感谢您的回复。
标签: php linux exec restart shell-exec