你是正确的,shutdown脚本需要执行root或sudo权限.如果您确实需要通过Web可访问页面重新启动服务器,则执行此操作的一种方法是添加www-data到sudoers列表,但仅用于访问shutdown命令.
编辑/etc/sudoers并添加以下行:
%www-data ALL=NOPASSWD: /sbin/shutdown
Run Code Online (Sandbox Code Playgroud)
该行允许该www-data组sudo /sbin/shutdown 无需密码即可访问- 因此请确保您的Web可访问脚本不公开.
编辑sudoers文件后,您可以使用脚本中的以下内容重新启动:
shell_exec('sudo /sbin/shutdown -r now');
Run Code Online (Sandbox Code Playgroud)