如何使用LAMP服务器通过php站点关闭我的系统


How to shutdown my system via a php site using LAMP server?

这是我迄今为止拥有的代码

站点:

<?php
if ($_POST['action']=="Shutdown") {
    $test=shell_exec("touch /scripts/shutdown.sh");
}
?>

shutdown.sh:

#!/bin/sh
if [ -f "/tmp/shutdown" ]
then
   rm -f /tmp/shutdown
   /sbin/shutdown now
fi

我大概是从http://ubuntuforums.org/但是,当我在本地主机上运行php脚本时,它不会显示吗?

问题如何使用LAMP服务器通过php站点关闭我的系统

提前感谢!

无需为其创建脚本,只需执行以下操作即可:

shell_exec('sudo /sbin/shutdown -h now');

touch只更新文件的修改时间,不执行脚本。

您需要做的是向用户提供正在运行的PHP/web服务器进程作为执行shutdown命令的权限,该权限通常是为根进程而非普通web进程保留的。最好的方法可能是通过sudoers文件,授予用户(可能是www-data左右)通过exec()执行sudo shutdown的权限,而无需密码提示。阅读系统的man sudoers配置。要非常小心,不要授予超出此范围的权限,或者以其他方式破坏您的sudoers配置。

sudoers文件需要一个条目,如:

www-data  ALL=NOPASSWD:  /sbin/shutdown

再次阅读man sudoers以确定您在这里做什么。只使用visudo来编辑sudoers文件,以确保它不会出错。

然后:

exec('sudo /scripts/shutdown.sh');