Restarting a Linux Server via Web Browser (PHP)

 After opening and reading every result on Google, I figured it's time to make my own thread somewhere.

I'm trying to setup a means of rebooting/doing other system functions through a web interface powered by HTML (for the buttons/text) and PHP (for the execution of the aforementioned functions).

I'm unable to get this to work. I've read that I need to add the web user to the sudoers file, and I've tried. I'm running Nginx on my server, how do I add the user to the sudoers in my case?

Also, I'm aware of the security risks, and would prefer not to be advised of them, thanks.

The following is what I have so far:

HTML:

HTML
<body>

<h3>Restart</h3>
<p>
<form action="restart.php" method="get">
  <input type="submit" value="Press me.">
</form>
</p>

</body>

PHP:

PHP
<?php
echo "This is a test";
echo "<br>";
echo "<br>";
echo shell_exec('ifconfig');
echo "<br>";
echo "<br>";
echo "Restarting server...";
exec ('/usr/bin/sudo /etc/init.d/portmap restart');
shell_exec("/sbin/reboot");
exec("/sbin/reboot");
system("/sbin/reboot");
?>

Mind you that here, I only have so many things attempting to execute, so that I make sure I hit the target when one of them works, if that makes sense. The IFConfig is just a test to make sure that it's actually able to execute.

Sudoers:

Text
# User privilege specification
root    ALL=(ALL:ALL) ALL
www-data reboot = NOPASSWD: /sbin/reboot

Hope help comes. Thanks.

---------------------------------------------

EDIT - I got a response from another location that fixed my problem. In the case that someone is dealing with a similar problem, here's the solution that helped me.

Text
You can do this either by editing your sudoers file :

Sudoers:
www-data ALL=(root) NOPASSWD: /sbin/reboot 

The first ALL is for the hostname if you're hostname is not 'reboot' I advise you to keep ALL as it will work in any hostname. That's why I don't seem to work on your server


restart.php:
exec('sudo /sbin/reboot');

0 $type={blogger}: