2013-05-13 146 views
0

我目前正在使用一个设备,并试图授予用户重新启动托管它的服务器的可能性。重新启动PHP的CentOS服务器? (不是PHP服务,但服务器)

会有任何方法让Apache有权这样做吗?

我试过,在一个提交按钮点击时,执行以下代码:

<?php exec('/sbin/reboot'); ?> 

但它说,只有root可以做到这一点。

所以,我想在sudoers文件中添加此:

nobody ALL = NOPASSWD: /sbin/reboot 

我仍然得到这个错误,防止我重新启动从PHP服务器。

php使用的角色是apache。

我也试过现在使用shutdown -r并得到了同样的问题。

有没有办法做到这一点?我见过几个系统,但是我不知道他们是怎么做的...

谢谢。

回答

1

没有真正熟悉自己在做什么,但我确实注意到这一点:

你说:

nobody ALL = NOPASSWD: /sbin/reboot

...

The role php is using is apache.

所以不该你在sudoers文件里说:

apacheALL = NOPASSWD: /sbin/reboot

+0

嗯,你是对的,我改变了它。问题是什么都没有发生,并且执行没有显示输出,尽管它实际上创建了输出文件... – user2377141 2013-05-13 13:05:28

+0

@ user2377141你是什么意思'它实际上创建输出文件'?它在哪里创建一个文件,然后在那个文件中是什么? – 2013-05-13 13:12:22

+0

@ user2377141另外:您正在授予运行/ sbin/reboot的权限。但是,如果我没有错,重启只是一个运行'shutdown -r now'的脚本。试试还可以右击运行关机(它也在/ sbin /?) – 2013-05-13 13:15:34