无法重新加载 nginx.service:需要交互式身份验证



我正在使用symfony 3进行项目, 该项目在 nginx 服务器上运行 我正在尝试使用以下命令重新加载配置文件: "SystemCTL reload nginx"从控制器。

/**
* @Route("/testReloadConfig")
*/
public function testReloadConfigAction(Request $request){
$output = [];
$result = null;
$cmd = 'systemctl reload nginx 2>&1';
exec($cmd, $output, $result);
return new JsonResponse([
'result' => $result,
'output' => $output,
]);
}
响应:{"结果":1,">

输出":["无法重新加载nginx.service:
需要交互式身份验证.","有关详细信息,请参阅系统日志和\u0027systemctl状态nginx.service\u0027。

很可能nginx不能与用户root一起运行,这是您需要使用systemctl的。因此,您应该使用sudo执行命令。

现在有不同的方法可以从具有root权限的Web服务器运行命令:

  • 使用用户root运行nginx,出于明显的安全原因,强烈建议不要这样做
  • 仅将此特定命令添加到sudoers,如此处所述,以便以root权限运行它,而无需任何密码提示
  • 按照此处所述通过echo传递您的root密码
  • 编写具有有限函数的 bash 脚本,如下所述

但是,当然,您可能会发现其他东西正在寻找它。

最新更新