Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php重新启动pc_Php - Fatal编程技术网

使用php重新启动pc

使用php重新启动pc,php,Php,是否可以使用php重新启动电脑?您可以使用类似于exec()或system()的方法来运行系统命令以重新启动计算机。通常,您需要超级用户权限才能重新启动计算机。但作为超级用户运行web服务器是一种不好的做法。我建议进行一些进程间通信。例如。PHP脚本在文件中写入密钥,然后cron作业读取该文件并重新启动计算机 我不确定通过网络重启电脑是否是个好主意。为什么要这样做?确实可以使用exec()或system(),但是权限将是问题,因为PHP是在运行apache的用户上运行的 作为一种快速解决方法,用

是否可以使用php重新启动电脑?

您可以使用类似于
exec()
system()
的方法来运行系统命令以重新启动计算机。

通常,您需要超级用户权限才能重新启动计算机。但作为超级用户运行web服务器是一种不好的做法。我建议进行一些进程间通信。例如。PHP脚本在文件中写入密钥,然后cron作业读取该文件并重新启动计算机


我不确定通过网络重启电脑是否是个好主意。为什么要这样做?

确实可以使用
exec()
system()
,但是权限将是问题,因为PHP是在运行
apache
的用户上运行的

作为一种快速解决方法,用户apache可能被授予重新启动的权限。根据您的系统,设置此选项可能相当困难

另一种方法是让Cron任务(属于root)每隔分钟(或几秒钟)检查一次文件,并让PHP程序编辑该文件。该文件设置为只能由Apache编辑。这要容易得多


希望这有帮助。

这个答案适用于基于linux的服务器

危险:从php使用system(),在系统中,使用“sudo shutdown-r now”重新启动,使用“sudo shutdown-h now”关闭

在/etc/sudoers中,为apache用户添加运行shutdown的权限

一个问题是sudo可以提示输入密码

删除apache用户的密码(但不要运行sshd、telnetd、ftpd等),或者查看/etc/sudoers是否具有无密码配置。关于第200行和第270行的“man sudoers”说,Tag_Spec可以包含NOPASSWD,以指定用户不必使用密码重新验证就可以运行sudo命令


更安全:token/cron让php在某个地方写一个文件。编写一个由cron以root用户身份运行的脚本,这样,如果该文件存在,则删除该文件,然后运行关机或重新启动。

在我们的系统中,我们执行Paul告诉我们的操作

  • 有一个脚本可以写入某个命令目录(例如:/data/command/)。不过,您必须强化此脚本
  • 有一个每分钟运行一次的cron来检查您的命令dir。若它有一个restart命令,那个么cron将向系统发出一个restart命令

  • 我同样需要运行Debian/Lenny的CarPC设置。我将inetd配置为每当连接到该服务的端口时运行/sbin/reboot

    然后我让一个PHP脚本对localhost/端口执行一个fsockopen(),它会立即重新启动

    快速设置(debian-针对您的系统进行修改):

    /etc/services
    中添加一行
    “reboot 88/tcp”
    (或任何您想要的端口) 在
    /etc/inetd.conf
    中添加一行
    “重新启动流tcp nowait root/sbin/reboot”
    使用/etc/init.d/openbsd-inetd Restart重新启动inetd

    现在连接到localhost:88,它将重新启动系统


    如果您的系统运行xinetd,您可以将其配置为只接受来自localhost的连接,以稍微加强安全性。无论如何,这仍然是一种黑客行为

    我希望你指的是服务器,而不是浏览器的机器。一些服务器管理工具,如Plesk允许这样做。