使用 PHP 重新启动 Nagios

使用 PHP 重新启动 Nagios

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

我需要知道的是如何使用 PHP 代码重新启动 NAGIOS,因为这个工具是用 PHP 编写的。当我尝试使用以下命令执行此操作时:

  shell_exec("service nagios restart");

更改不会发生,但是当我通过控制台手动执行此操作时,我使用 PHP 脚本所做的所有更改都会应用...经过 2 分钟的研究,我发现我在以以下身份登录时要求 Linux 执行此命令阿帕奇用户所以我将命令改为:

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

仍然有同样的问题...直到我重新启动,新的配置文件才会被读取手动

任何建议都将受到赞赏:)

答案1

最好将您的 Web 服务器添加到 sudoers,以使其无需输入密码即可重新启动 nagios 服务。这比在 PHP 文件中输入密码更安全。为此,请输入:

$ sudo visudo

然后,添加如下一行:

apache_user ALL=NOPASSWD: /path/to/script

这将允许仅具有提示输入密码的权限的人执行apache_user/path/to/scriptsudo

答案2

我猜还是权限有问题,用 apache 用户登录su apacheusername,然后执行你的命令

echo "nagiosxi" | sudo -S service nagios restart

验证这不会产生任何错误。您确定正在将 Nagios 作为服务运行吗?

相关内容