使用PHP和Html格式部署VM [重复]

问题描述 投票:1回答:1

这个问题在这里已有答案:

在我开始研究VM管理器平台的那些日子里,它与virt-manager,KVM和PhP 7.2一起工作。在form.html中应指定kvm2.php可以运行VM create命令的值。

问题是我很好地给出了值并填充了字段,kvm2.php(libvirt)连续写入此错误消息:

“错误 --name是必需的 - 需要MiB的记忆金额“

我做错了什么?

提前感谢您的回答, 埃里克

截图: https://imgur.com/a/zr8ePBn

form.html:

<form action="kvm2.php" method="get">
VM name: <input type="text" name="VMname" id="VMname" required><br>
vCPU number(s): <input type="text" name="VMvCPU" id="VMvCPU" required><br>
Memory (in MB): <input type="text" name="VMmem" id="VMmem" required><br>
Disk size (in GB): <input type="text" name="VMdisk" id="VMdisk" required><br>
<input type="submit" name="submit">
</form>

kvm2.php:

<?php
    $output=shell_exec("virt-install --connect qemu:///system --name=$VMname --vcpus=$VMvCPU --memory=$VMmem --disk size=$VMdisk --cdrom=/home/erik/Letöltések/debian.iso --os-type linux --vnc --network=bridge:br0 2>&1");
    echo "<pre>$output</pre>";
?>

编辑:

目前的代码是:

$output=shell_exec("sudo virt-install --connect qemu:///system --name=$_GET["VMname"]; --vcpus=$_GET["VMvCPU"]; --memory=$_GET["VMmem"]; --disk size=$_GET["VMdisk"]; 2>&1");

根据要求,我打开了显示错误:

解析错误:第2行的语法错误,意外的'“',期待' - '或标识符(T_STRING)或变量(T_VARIABLE)或数字(T_NUM_STRING)

php html virtual-machine libvirt
1个回答
1
投票

您的语法错误是因为您在双引号字符串中有双引号。 PHP无法解决字符串真正开始和结束的位置。

有两种方法可以解决它:

1)对字符串中的字段名称使用单引号:

$output=shell_exec("sudo virt-install --connect qemu:///system --name=$_GET['VMname']; --vcpus=$_GET['VMvCPU']; --memory=$_GET['VMmem']; --disk size=$_GET['VMdisk']; 2>&1");

2)使用字符串连接而不是插值:

$output=shell_exec("sudo virt-install --connect qemu:///system --name=".$_GET["VMname"]."; --vcpus=".$_GET["VMvCPU"]."; --memory=".$_GET["VMmem"]."; --disk size=".$_GET["VMdisk"]>"; 2>&1");

(我将假设每次引用$ _GET变量后的分号都是virt-install命令所需语法的一部分,但是如果它们不是,那么你也需要删除它们。)

© www.soinside.com 2019 - 2024. All rights reserved.