Прежде всего, запуск виртуальной машины в виде CGI-скрипта крайне непрактичен, так как он остановит машину, если соединение разорвано. Вместо этого скрипт CGI должен иметь возможность запускать, останавливать и контролировать виртуальную машину, которая будет работать в фоновом режиме.
Что касается взаимодействия с виртуальной машиной, VirtualBox поддерживает удаленные рабочие столы (по протоколу VNC), что, вероятно, является наиболее подходящим способом отображения и управления им. Однако, хотя вы можете использовать комбинацию сценариев на стороне сервера и на стороне клиента для выполнения этой работы, это, вероятно, станет очень медленным и потребует большой полосы пропускания. Вместо этого вы можете использовать что-то наподобие Java-апплета для прямого подключения к виртуальной машине через VNC, что сэкономит большую часть хлопот на стороне сервера.
Существует также похожая идея под названием phpvirtualbox , которую я не изучал сам, но вы могли бы найти ее интересной.