我有个问题。我想用php代码重新启动ubuntu,但我做不到。我已经尝试了所有来自互联网的代码,比如
<?php
shell_exec("/usr/sbin/reboot");
exec("/usr/sbin/reboot");
system("/usr/sbin/reboot");
?>
和
<?php
shell_exec("shutdown -r");
exec("shutdown -r");
system("shutdown -r");
?>
但他们都什么都不做。请帮帮我。我需要这个密码。
如果PHP代码由Web服务器执行,则它在ubuntu中的用户"www data"下运行。
也许www数据没有关闭的权利,这是一个合理的默认值。
您可以在不提供密码的情况下授予www数据sudo关闭权限,并使用sudo调用reboot。
在编辑sudo配置之前,仔细查看man sudoers
并确保了解其安全含义:这将有效地赋予任何PHP脚本关闭服务器的权利(未经测试)。
# /etc/sudoers (edit using the visudo command)
Cmnd_Alias SHUTDOWN = /usr/sbin/shutdown
Cmnd_Alias HALT = /usr/sbin/halt
Cmnd_Alias REBOOT = /usr/sbin/reboot
Host_Alias LOCALHOST = 127.0.0.1
www-data LOCALHOST = NOPASSWD: SHUTDOWN, HALT, REBOOT
在PHP中,您可以使用:
shell_exec("/usr/bin/sudo /usr/sbin/reboot");
我不建议让root用户访问PHP用户
查看此处:https://stackoverflow.com/a/5226760/2708670