Proxmox VNC auf website einbinden

CuzImPeter

New Member
Aug 31, 2019
20
1
3
28
Moin ich würde gerne VNC auf meiner Website einbinden.
Mein bisheriger Code:
Code:
$node = 'node';
$vmid = 501;
$f = Nodes::createQemuVncproxy($node, $vmid, $data = array());
$array = json_decode(json_encode($f), True);
Nodes::qemuVncwebsocket($node, $vmid, $array["data"]["port"], $array["data"]["ticket"]);
$vnc = 'https://78.46.xxx.xxx:8006/?console=kvm&novnc=1&node='.$node.'&resize=scale&vmid='.$vmid.'&path=api2/json/nodes/'.$node.'/qemu/'.$vmid.'/vncwebsocket?port=' . $array["data"]["port"] . '&vncticket=' . $array["data"]["ticket"];
echo '<iframe src="'.$vnc.'" width="800" height="600" allowfullscreen="true"></iframe>';
Leider funktioniert es nicht so richtig und ich bekomme immer "Error 401: No Ticket"
Ich verwende diese API: https://github.com/Saleh7/ProxmoxVE_PHP_API
 
"Error 401: No Ticket"

diesen fehler bekommt man, wenn kein cookie mit dem korrekten api ticket gesetzt ist...
ich vermute mal das die seite keinen cookie für '78.46.xxx.xxx:8006' setzt (bzw. setzen kann)

in diesem fall müsste man einen echten proxy für das novnc bauen... (allerdings nicht so trivial)
 
Ich habe mir meinen Code noch mal angeguckt und gemerkt das er nicht sonderlich schön ist also hab ich es schöner gemacht uns es sieht jetzt so aus:
Code:
Nodes::createQemuVncproxy($node, $vmid, $data = array());
print_r($data);
Nodes::qemuVncwebsocket($node, $vmid, $data["data"]["port"], $data["data"]["ticket"]);
$vnc = 'https://78.46.xxx.xxx:8006/?console=kvm&novnc=1&node='.$node.'&resize=scale&vmid='.$vmid.'&path=api2/json/nodes/'.$node.'/qemu/'.$vmid.'/vncwebsocket?port=' . $data["data"]["port"] . '&vncticket=' . $data["data"]["ticket"];
echo '<iframe src="'.$vnc.'" width="800" height="600" allowfullscreen="true"></iframe>';
Und habe gemerkt das $data ein leeres Array ist kann mir jemand sagen warum? oder was ich falsch mache?