Ubuntu: Установка VirtualBox с WEB интерфейсом

Установка phpvirtualbox и VirtualBox в Ubuntu 20.04 (19.10)

Для экспериментов решил поднять на домашнем сервере данную связку.
Для реализации данной инсталляции нам потребуются следующие продукты:

  • Git 
  • php + php-fpm
  • Nginx
  • VirtualBox
  • phpVirtualBox

Установку PHP и NGINX мы пропустим, считаем, что она у вас уже настроена.

Становимся рутом (на время инсталляции):

$ sudo -s

Добавляем репозиторий: 

echo "deb [arch=amd64] http://download.virtualbox.org/virtualbox/debian eoan contrib" | sudo tee /etc/apt/sources.list.d/virtualbox.list

Добавляем ключи репозитория:

wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -

Обновляем репозитории:

apt update

Поищем VirtualBox:

apt search virtualbox | grep virtualbox-

virtualbox-6.0/unknown 6.0.24-139119~Ubuntu~eoan amd64
virtualbox-6.1/unknown 6.1.12-139181~Ubuntu~eoan amd64

Устанавливаем linux-headers и VirtualBox 6.1.12-139181:

apt install linux-headers-$(uname -r) dkms
apt install virtualbox-6.1

Установим Extension Pack:

wget http://download.virtualbox.org/virtualbox/6.1.12/Oracle_VM_VirtualBox_Extension_Pack-6.1.12-139181.vbox-extpack
VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-6.1.12-139181.vbox-extpack
rm Oracle_VM_VirtualBox_Extension_Pack-6.1.12-139181.vbox-extpack

Редактируем службу systemd запуска:

vi /lib/systemd/system/vboxweb-service.service

Приводим к такому виду:

[Unit]
Description=VirtualBox Web Service
After=network.target

[Service]
Type=forking
ExecStart=/usr/bin/vboxwebsrv --pidfile /run/vboxweb/vboxweb.pid --host=0.0.0.0 --background
PIDFile=/run/vboxweb/vboxweb.pid
User=vbox
Group=vboxusers

[Install]
WantedBy=multi-user.target

Создаем пользователя vbox в нужной нам группе и запоминаем пароль:

useradd vbox -G vboxusers -p mypassword

Создаем директорию для pid файла и назначим ей права:

mkdir /run/vboxweb
chown vbox:vboxusers /run/vboxweb
chmod 755 /run/vboxweb/

Перезагрузим systemd и vboxweb:

systemctl daemon-reload
systemctl restart vboxweb-service

Настало время phpVirtualBox

Получаем phpVirtualBox:

cd /var/www
git clone https://github.com/phpvirtualbox/phpvirtualbox.git

Редактируем конфиг phpVirtualBox:

cd /var/www/phpvirtualbox
cp config.php-example config.php
vi config.php

Напишу, что нужно сменить:

var $username = 'vbox';
var $password = 'password';

/* Ваш IP адрес, на котором запущен */
var $location = 'http://192.168.5.3:18083/';

var $language = 'ru';

/* Если не указать, то RDP будет запущен как 127.0.0.1 */
var $vrdeaddress = '192.168.5.3';

Установим пользователя на файлы phpVirtualBox:

chown -R www-data:www-data /var/www/phpvirtualbox

Конфигурационный файл NGINX:

vi /etc/nginx/sites-available/vb.myhost.ru
server {
        listen 80;
        server_name vb.myhost.ru;
        root /var/www/phpvirtualbox;
        index index.html;
        access_log /var/log/nginx/vbox/access.log;
        error_log  /var/log/nginx/vbox/error.log  error;


location ~* \.(gif|jpg)$ {
        expires 30d;
}


location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        auth_basic "Admin only";
        auth_basic_user_file /home/admins/pass/.vb.auth;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_intercept_errors on;
        fastcgi_ignore_client_abort off;
    }
}

Создадим директорию для логов Nginx:

mkdir /var/log/nginx/vbox

В конфигурационном файле Nginx, я решил прикрыться дополнительно http авторизацией (если вам это не нужно, просто удалите эти строки:)).
Создадим директорию для auth файла и сам файл

mkdir -p /home/admins/pass/
printf "vbadmin:$(openssl passwd -crypt MY_PASSWORD)\n" >> /home/admins/pass/.vb.auth

vbadmin — имя
MY_PASSWORD — пароль

Делаем симлинк на конфигурационный файл NGINX для его подключения:

ln -s /etc/nginx/sites-available/vb.marvins.ru /etc/nginx/sites-enabled/

Проверим конфигурацию NGINX и перезапустим его:

nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

nginx -s reload

Перейдя на указанный в конфиге NGINX адрес — http://vb.myhost.ru должна появиться форма http авторизации:
Ubuntu: Установка VirtualBox с WEB интерфейсом

  

После введения ваших данных, попадаем в phpVirtualBox.

Логин:
admin
Пароль: admin 

Ubuntu: Установка VirtualBox с WEB интерфейсом

Из этого  материала  можете узнать, как установить бесплатный сертификат от Lets’n Crypt для Web сервера.

Рейтинг
( 1 оценка, среднее 5 из 5 )
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

Этот сайт защищен reCAPTCHA и применяются Политика конфиденциальности и Условия обслуживания Google.

:) :D :( :o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.