使用PHP重新启动Nagios

我正在制作一个与NAGIOS交互的工具,在这里应该添加一些configuration文件,因此需要重新启动。

我需要知道的是如何使用PHP代码重新启动NAGIOS,因为这个工具是用PHP编写的。当我尝试使用下面的代码:

shell_exec("service nagios restart"); 

更改不会发生,但是当我通过控制台手动执行此操作时,我使用PHP脚本所做的所有更改都被应用… 2分钟研究后,我发现我要求linux执行此命令,而我以apache用户身份login所以我改变了命令:

  shell_exec('echo "mypass" | sudo -S service nagios restart'); 

仍然有同样的问题…新的configuration文件不会被读取,直到我手动重新启动

任何build议将不胜感激:)

最好将你的web服务器添加到sudoers中,以使其不用提示input密码即可重新启动nagios服务。 这比在PHP文件中input密码更安全。 为此,键入:

 $ sudo visudo 

然后,像这样添加一行:

 apache_user ALL=NOPASSWD: /path/to/script 

这将使apache_user能够以sudo权限执行/path/to/script并提示input密码。

我的猜测是,权限仍然有问题,用su apacheusername作为apache用户su apacheusername ,然后执行你的命令

 echo "nagiosxi" | sudo -S service nagios restart 

validation这个不会给出任何错误。 你确定你是在运行Nagios吗?