我尝试从 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