Не могу выполнить ifconfig с php
Я не могу выполнить ifconfig с exec() в PHP на Apache. Я могу выполнять все виды команд, включая ip addr list, но это один отстой, так что мне действительно нужно иметь возможность выполнять ifconfig.
Я прочитал другие посты и убедился, что disable_functions = = "" [blank], но все равно не повезло (я перезапустил 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
1 ответ
Обычный пользователь не может использовать ifconfig в некоторых Gnu/Linux, но может использовать /sbin/ifconfig. Так попробуй это
<?php
$command="/sbin/ifconfig";
exec($command, $output);
?>
Чтобы быть уверенным в пути, запишите это в свой терминал
whereis ifconfig