我正在使用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了解详细信息。”]}
答案 0 :(得分:1)
很可能nginx
不能与用户root
一起运行,而这正是您需要使用systemctl
的原因。因此,您应该使用sudo
执行命令。
现在,有多种方法可以使用具有root
特权的Web服务器运行命令:
nginx
root
,以便以sudoers
特权运行该命令而没有任何密码提示root
传递您的root
密码但是,当然,您可能会在寻找其他东西。