4

我有个问题。我想用 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");
?>

但他们都什么都不做。请帮我。我需要这个代码。

4

2 回答 2

2

如果 PHP 代码正在由 web 服务器执行,它在 ubuntu 中的用户“www-data”下运行。

可能 www-data 无权关闭,这是一个正常的默认设置。

您可以在不提供密码的情况下授予 www-data sudo 关机权限,并使用 sudo 调用重新启动。

在编辑 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");
于 2013-08-26T07:42:52.933 回答
0

我不建议为 PHP 用户授予 root 访问权限

在这里查看: https ://stackoverflow.com/a/5226760/2708670

于 2013-08-26T07:40:31.627 回答