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 сервера.

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

    Хорошая инструкция, но почему-то дальше этапа systemctl restart vboxweb-service сдвинуться не удалось. Ошибка:
    Job for vboxweb-service.service failed because the control process exited with error code.
    See «systemctl status vboxweb-service.service» and «journalctl -xe» for details.

    Файл /lib/systemd/system/vboxweb-service.service взят дословно с мануала…

    1. Vladimir (автор)

      Приветствую.
      Директорию для pid файла сделали?
      Что выдает systemctl status vboxweb-service.service и journalctl -xe?

      1. Vitaliy

        Был уверен что сделал, но проверив необнаружил…создал ещё раз и уже точно есть, далее все по инструкии, но ошибка таже:
        ● vboxweb-service.service — VirtualBox Web Service
        Loaded: loaded (/lib/systemd/system/vboxweb-service.service; enabled; vendor preset: enabled)
        Active: failed (Result: exit-code) since Tue 2021-03-09 22:35:37 UTC; 14s ago
        Process: 6244 ExecStart=/usr/bin/vboxwebsrv —pidfile /run/vboxweb/vboxweb.pid —host=0.0.0.0 —background (code>

        Mar 09 22:35:37 gorgona2021 vboxwebsrv[6244]: 00:00:00.000165 main DMI Product Version:
        Mar 09 22:35:37 gorgona2021 vboxwebsrv[6244]: 00:00:00.000179 main Firmware type: BIOS
        Mar 09 22:35:37 gorgona2021 vboxwebsrv[6244]: 00:00:00.000224 main Host RAM: 48277MB (47.1GB) total, 47727MB (46>
        Mar 09 22:35:37 gorgona2021 vboxwebsrv[6244]: 00:00:00.000227 main Executable: /usr/lib/virtualbox/vboxwebsrv
        Mar 09 22:35:37 gorgona2021 vboxwebsrv[6244]: 00:00:00.000228 main Process ID: 6244
        Mar 09 22:35:37 gorgona2021 vboxwebsrv[6244]: 00:00:00.000228 main Package type: LINUX_64BITS_UBUNTU_19_10
        Mar 09 22:35:37 gorgona2021 vboxwebsrv[6244]: vboxwebsrv: error: could not get base directory for logging: VERR_PATH>
        Mar 09 22:35:37 gorgona2021 systemd[1]: vboxweb-service.service: Control process exited, code=exited, status=1/FAILU>
        Mar 09 22:35:37 gorgona2021 systemd[1]: vboxweb-service.service: Failed with result ‘exit-code’.
        Mar 09 22:35:37 gorgona2021 systemd[1]: Failed to start VirtualBox Web Service.

      2. Vitaliy

        Есть идеи, куда копать….? :roll:

        1. Vladimir (автор)

          vboxwebsrv: error: could not get base directory for logging: VERR_PATH

        2. Aleksanrd

          Нужно создать домашний каталог пользователя
          mkhomedir_helper vbox

          1. Дмитрий

            Ровно то же самое, после рестарта

            root@megaplan:/var/www/phpvirtualbox# systemctl status vboxweb-service.service
            ● vboxweb-service.service — VirtualBox Web Service
            Loaded: loaded (/lib/systemd/system/vboxweb-service.service; enabled; vendor preset: enabled)
            Active: failed (Result: exit-code) since Thu 2021-03-25 13:32:30 UTC; 38s ago
            Process: 2698 ExecStart=/usr/bin/vboxwebsrv —pidfile /run/vboxweb/vboxweb.pid —host=0.0.0.0 —background (code=exited, status=1/FAILURE)

            Mar 25 13:32:30 megaplan vboxwebsrv[2698]: 00:00:00.000167 main DMI Product Version:
            Mar 25 13:32:30 megaplan vboxwebsrv[2698]: 00:00:00.000184 main Firmware type: BIOS
            Mar 25 13:32:30 megaplan vboxwebsrv[2698]: 00:00:00.000239 main Host RAM: 64270MB (62.7GB) total, 63658MB (62.1GB) available
            Mar 25 13:32:30 megaplan vboxwebsrv[2698]: 00:00:00.000242 main Executable: /usr/lib/virtualbox/vboxwebsrv
            Mar 25 13:32:30 megaplan vboxwebsrv[2698]: 00:00:00.000243 main Process ID: 2698
            Mar 25 13:32:30 megaplan vboxwebsrv[2698]: 00:00:00.000243 main Package type: LINUX_64BITS_UBUNTU_19_10
            Mar 25 13:32:30 megaplan vboxwebsrv[2698]: vboxwebsrv: error: could not get base directory for logging: VERR_PATH_NOT_FOUND
            Mar 25 13:32:30 megaplan systemd[1]: vboxweb-service.service: Control process exited, code=exited, status=1/FAILURE
            Mar 25 13:32:30 megaplan systemd[1]: vboxweb-service.service: Failed with result ‘exit-code’.
            Mar 25 13:32:30 megaplan systemd[1]: Failed to start VirtualBox Web Service.

  2. Дмитрий

    Заметил, что папка /run/vboxweb после перезагрузки сервера пропадает

  3. Vitaliy

    Вот что-то никак не получилось по данному мануалу стартонуть, ка в принципе и по многим другим, такое впечатление что жизнь есть только до vbox 6.0 ((

    Еще и эта строчка:
    ln -s /etc/nginx/sites-available/vb.marvins.ru /etc/nginx/sites-enabled/

    Обязательно через sites-available? Нельзя через виртуальный хост?

  4. Сергей

    После изменения служба не стартует. Ошибка
    /usr/lib/virtualbox/vboxwebsrv: not found
    как быть ???

Добавить комментарий

:) :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.