无法从 php 启动 VM

无法从 php 启动 VM

我尝试从 php 页面使用 KVM 管理程序上的 virsh 工具启动虚拟机,但出现了此错误。

error: Failed to connect socket to '@/var/www/.libvirt/libvirt-sock': Connection refused
error: failed to connect to the hypervisor.

请提出一些解决方法。是否可以在不授予 www-data 用户 root 权限的情况下执行此操作?

谢谢

答案1

第一种方式

Php 代码

<?php $output=shell_exec("virsh -c qemu:///system start vmname 2>&1"); echo "<pre>$output</pre>"; ?>

除了在 Ubuntu 12.04 的终端中运行此命令之外,还可以对其他版本执行相同的操作。

sudo chown www-data /var/run/libvirt/libvirt-sock

此外,您还可以使用

sudo visudo www-data ALL = NOPASSWD: /usr/bin/virsh

第二种方式

用于libvirt-php API启动虚拟机。要启动虚拟机,请使用libvirt_domain_create函数。有关更多信息,请参阅此处http://libvirt.org/php/api-reference.html#libvirt_domain_create

相关内容