Получить информацию из менеджера виртуальных машин с помощью php

enter image description here

Можно ли получить информацию из менеджера виртуальных машин, используя код php? я пробовал через exec команды, но не смог получить ничего в браузере в результате. Пожалуйста, помогите, чтобы выполнить эту задачу.

Я использую Ubuntu Server 11.04 и KVM в качестве гипер-забрала. Я установил диспетчер виртуальных машин.

Пожалуйста, не предлагайте никаких инструментов для установки.

1
задан 7 November 2012 в 15:29

2 ответа

Из http://php.net/manual/en/function.exec.php:

Необходимо будет использовать массив, который будет произведен.

Так, используйте следующий код:

$result=[]; // Create an array
exec('your command line', &$result);  // Remember the & before the result as it ***IS A REFERENCE***
//DO whatever with your result

Проблема состоит в том, что Вы не передали свой массив результата как ссылку.

Или, использовать shell_exec, то, где Ваше возвращаемое значение - все, возвратилось:

$return=shell_exec($command_line);

Можно также использовать обратные галочки:

$result=`cmdline`

Или, использовать popen(:

Создайте новый указатель с:

$handle = popen("/bin/ls", "r");

и затем считайте его:

$read = fread($handle);

и согласитесь:

pclose($handle);

Это заблокирует выполнение, пока вывод не остановится.

1
ответ дан 7 November 2012 в 15:29

Функции PHP, такие как exec() или shell_exec(), не помогут, потому что libvirt выполняется в режиме root, а PHP - как пользователь www-data. Мы можем дать www-data привилегии root, но в этом случае могут возникнуть некоторые проблемы с безопасностью. Поэтому лучший способ - использовать API libvirt-php. Например, чтобы перечислить все виртуальные машины в php:

<?php
     $conn = libvirt_connect('null', false);
     $doms = libvirt_list_domains($conn);
     print_r($doms);
?>

Ссылки:

Это будет выполняться гладко, если libvirt прослушивает порт TCP. Чтобы прослушивание libvirt через порт tcp, поможет этот вопрос: Я не могу использовать libvirt с прослушиванием TCP

0
ответ дан 7 November 2012 в 15:29

Другие вопросы по тегам:

Похожие вопросы: