i need to be able to change the IP address of a server using PHP. i\'m trying to use ifconfig eth0 down
as the www-data
user to make sure it will
i figured this out. the answer was to add the www-data
user (or whatever the name of your server user is) to the admin group with usermod -a -G admin www-data
. if you take a look at /etc/sudoers
, you'll notice that anyone in this group can perform sudo
commands without a password prompt using sudo -n
. made a quick code change:
//if the ip has changed, bring down the network interface and bring it up with the new IP
if($ipConf != $ip) {
$ifdownSuccess = exec("sudo -n ifconfig eth0 down", $downOutput, $downRetvar);
$ifupSuccess = exec("sudo -n ifconfig eth0 up ".$ip, $upOutput, $upRetvar);
//TODO: check for ifupSucess and revert to old ip if the command failed
var_dump($downOutput);
var_dump($downRetvar);
var_dump($ifdownSuccess);
var_dump($upOutput);
var_dump($upRetvar);
var_dump($ifupSuccess);
}
and i'm now in business. was able to connect on the new IP address via SSH and view webpages via the new IP as well.