我正在尝试创建一个设置页面(用于客户端),在这里他们可以查看当前的上行地址,更改IP地址等。我有一个php文件来查看IP地址
<?php
$res=shell_exec("ifconfig");
echo $res;
?>
此代码工作正常并显示预期结果。 但是,更改服务器的IP地址的代码无法正常工作。
<?php
shell_exec("ifconfig eth0 192.168.163.136");
?>
运行此代码后,当我使用ipaddr检查终端上的ipaddress时,我看不到ipaddress的任何变化。 请指出我出错的地方。我认为这是一个apache不是超级/ root用户的问题。如果是这种情况我不知道如何以root用户身份运行apache。
答案 0 :(得分:2)
您的PHP脚本没有足够的权限来更改接口地址。您可能想要写一个Shellscript,给它正确的权限(例如,将其所有者更改为root,并设置suid位),然后从PHP脚本运行它。然而,我建议不要做这样的事情
答案 1 :(得分:1)
IP地址在网络协议的网络层中配置,而不是在运行PHP的应用层中配置。 简单,PHP无法访问它,也无法更改它们。
想象一下如果可能的话,它可以创建的漏洞。
答案 2 :(得分:0)
在ifconfig工作之前添加/srv/http
。所需要的只是根拥有的位置。