【问题标题】:How to suspend/restart Linux Ubuntu from PHP script?如何从 PHP 脚本挂起/重启 Linux Ubuntu?
【发布时间】:2013-08-26 07:27:34
【问题描述】:

我有问题。我想用 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 linux ubuntu restart


    【解决方案1】:

    如果 PHP 代码是由 webserver 执行的,它是在 ubuntu 中的用户“www-data”下运行的。

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

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

    仔细查看 man sudoers 并确保在编辑 sudo 配置之前了解安全隐患:这将有效地赋予任何 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");
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 我看到了你的链接。但我不太明白。
      • 我知道这很危险,但我需要这个代码来锻炼
      猜你喜欢
      • 2018-07-02
      • 1970-01-01
      • 2012-03-07
      • 2011-05-12
      • 1970-01-01
      • 2011-05-31
      • 1970-01-01
      • 2012-10-01
      • 2013-09-28
      相关资源
      最近更新 更多