从PHP重新启动CentOS serveer?(不是php服务,而是服务器)

从PHP重新启动CentOS serveer?(不是php服务,而是服务器),php,centos,Php,Centos,我目前正在处理一个设备,并试图授予用户重启托管它的服务器的可能性 有没有办法让apache有权这么做 我尝试在单击提交按钮时执行以下代码: <?php exec('/sbin/reboot'); ?> 我仍然遇到了这个错误,它阻止我从PHP重新启动服务器 php使用的角色是apache 我现在也尝试过使用shutdown-r,但也遇到了同样的问题 有什么办法可以做到这一点吗?我见过几个系统允许这样做,但我不知道它们是如何做到的 谢谢。我不太熟悉你在做什么,但我注意到: 你说: no

我目前正在处理一个设备,并试图授予用户重启托管它的服务器的可能性

有没有办法让apache有权这么做

我尝试在单击提交按钮时执行以下代码:

<?php exec('/sbin/reboot'); ?>
我仍然遇到了这个错误,它阻止我从PHP重新启动服务器

php使用的角色是apache

我现在也尝试过使用
shutdown-r
,但也遇到了同样的问题

有什么办法可以做到这一点吗?我见过几个系统允许这样做,但我不知道它们是如何做到的


谢谢。

我不太熟悉你在做什么,但我注意到:

你说:

nobody ALL=NOPASSWD:/sbin/reboot

php使用的角色是apache。

那么你不应该在sudoers文件中说:


apache
ALL=NOPASSWD:/sbin/reboot

嗯,你说得对,我改了。问题是什么也没有发生,执行过程没有显示输出,尽管它实际上创建了输出文件…@user2377141“它实际上创建了输出文件”是什么意思?它在哪里创建一个文件,然后该文件中是什么?@user2377141:您正在授予运行/sbin/reboot的权限。但是,如果我没有弄错的话,重启只是一个运行
shutdown-r now
的脚本。请尝试运行shutdown的权限(是否也在/sbin/?)它会在我要求的位置创建我要求他创建的输出文件,但它是空的,同时它应该说“需要是root”,以防它不工作,这种情况会发生。我试图授予apache运行shutdown的权限,但仍然没有任何迹象发生。@user2377141/var/log/messages中有任何内容吗?
nobody ALL = NOPASSWD: /sbin/reboot