我无法在apache上使用PHP中的exec()执行ifconfig。我可以执行所有类型的命令,包括ip addr list但是那个可以吸球,所以我真的需要能够执行ifconfig。
我已阅读其他帖子并确保disable_functions =“”[空白],但仍然没有运气(我重新启动了apache)。感觉它是某种权限问题,因为所有其他命令都可以正常工作。
在第一个文件中,我只是执行exec,然后根据需要清理结果,我很确定问题不在哪里,因为它在其他命令之前工作正常
第一个文件
function execute($command){
exec($command, $output);
$output_array; // each row contains a array representing all elements in a output row
for ($i = 0; $i < sizeof($output); $i++){
$tmp_array = explode(" ",$output[$i]);
$output_array[$i] = $tmp_array;
}
// clear the array from all ""
$clean_array;
for ($i = 0; $i < sizeof($output_array); $i++){
$tmp;
$index = 0;
for ($j = 0; $j < sizeof($output_array[$i]); $j++){
if (strlen($output_array[$i][$j]) > 0){
$tmp[$index++] = $output_array[$i][$j];
}
}
$clean_array[$i] = $tmp;
}
return $clean_array;
第二档
include "../app_includes/application_functions.php";
$command = "ifconfig";
//$command = "ip addr list";
$arr = execute($command);
// print the result
for ($i = 0; $i < sizeof($arr); $i++){
for ($j = 0; $j < sizeof($arr[$i]); $j++){
echo $arr[$i][$j]." ";
}
echo "<br>";
}
解决: 通过执行“/ sbin / ifconfig”而不是仅执行ifconfig
来解决问题答案 0 :(得分:4)
普通用户不能在某些Gnu / Linux上使用ifconfig,但可以使用/ sbin / ifconfig。所以试试这个
<?php
$command="/sbin/ifconfig";
exec($command, $output);
?>
要确定路径,请在终端中录制
whereis ifconfig