centos — libvirt-php получает ошибку: невозможно подключиться к серверу

Я установил php-libvirt, а также все необходимые пакеты (я пробовал remi rpm и компилирование).

Я настроил свой php-файл следующим образом:

<?php
print_r ( libvirt_version() );
echo '<br>';
$uri="qemu+tcp:///system";
$credentials=array(VIR_CRED_AUTHNAME=>"fred",VIR_CRED_PASSPHRASE=>"fred");
echo ("Connecting to libvirt (URI:$uri)<BR>");
$conn=libvirt_connect($uri,false,$credentials);
if ($conn==false)
{
echo ("Libvirt last error: ".libvirt_get_last_error()."<br>");
exit;
} else {
$hostname=libvirt_get_hostname($conn);
echo ("hostname:$hostname<br>");
?>

Однако, когда я загружаю страницу, я получаю:

Array ( [libvirt.release] => 2 [libvirt.minor] => 10 [libvirt.major] => 0 [connector.version] => 0.4.8 [connector.major] => 0 [connector.minor] => 4 [connector.release] => 8 )
Connecting to libvirt (URI:qemu+tcp:///system)
Libvirt last error: unable to connect to server at 'localhost:16509': Permission denied

Работает нормально из командной строки при запуске

# virsh -c qemu + tcp: /// системный список

Пожалуйста, введите ваше имя для аутентификации: fred
Пожалуйста, введите пароль:

Id Name State
-------------------------------------------------- -

Я пробовал командную строку с другого сервера, чтобы убедиться, что он будет работать удаленно, и все было в порядке.

Я пробовал fred @ hostname, и это не сработало. Я пробовал VIR_CRED_USERNAME, и это тоже не сработало.

В чем может быть проблема?

0

Решение

По умолчанию механизм аутентификации для TCP-соединения libvirtd — SASL. До сих пор TCP-соединение слушало, и теперь мы должны настроить аутентификацию на основе SASL. Отредактируйте /etc/libvirt/libvirtd.conf, они используют auth_tcp = «none», но используют auth_tcp = «sasl», если это еще не сделано. Теперь выполните следующую команду.

sudo saslpasswd2 -a libvirt fred
Password: fred
Again (for verification): fred

В вашем случае libvirtd прослушивает TCP-соединение, но иногда нам нужно внести некоторые изменения, чтобы он прослушивал данный порт. Первая ссылка в ссылках будет полезна для этого.

Рекомендации:

https://askubuntu.com/questions/423425/i-cant-use-libvirt-with-listen-tcp

http://libvirt.org/auth.html#ACL_server_username

https://www-01.ibm.com/support/knowledgecenter/linuxonibm/liabp/liabpkvmsecsrmsasl.htm

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]