Установка и настройка серверов Linux,создание сайтов, установка и настройка Asterisk PBX, Linux для начинающих и не только.
Получать статьи этого сайта на почту:

 

29
Дек 2018
sergldom
автор
0
комментариев
Рейтинг статьи:
3
Средняя: 3 (2 оценки)

Установка Virtualbox на сервер Debian, Ubuntu с web интерфейсом phpvirtualbox

      <![CDATA[]]>Virtualbox<![CDATA[]]> - система виртуализации, на данный момент одна из наилучших  бесплатных программных продуктов виртуализации. Лично тестировал работу гостевых: XP, Windows 2003, 2008, Debian, Ubuntu работает стабильно.

      <![CDATA[]]>phpVirtualBox<![CDATA[]]> - AJAX реализация пользовательского интерфейса VirtualBox, написанного на PHP. Это веб-интерфейс для получения удалённого доступа к виртуальным машинам.

   Для установки Virtualbox мы будем используем операционную систему Linux Debian GNU/Linux с установленной панелью управления хостингом ISPConfig установленную по инструкции: Устанавливаем и настраиваем хостинг панель ISPConfig 3 в Debian

Обновленная версия инструкции по установке Virtualbox 5.1 в Debian 9 (Stretch) и Ubuntu 18.04 (Bionic) с управлением через PHPVirtualBOX, устаревшую можно почитать ниже

   Имеем установленную версию операционной системы Debian 9 (Stretch) либо Ubuntu 18.04 (Bionic), проверяем, чтобы на сервере был прописан репозиторий Virtualbox в файл /etc/apt/sources.list:

   Для Debian 9 (если необходимо установить другую версию Debian заменяем stretch на другое имя дистрибутива):

deb http://download.virtualbox.org/virtualbox/debian stretch contrib

можно репозиторий добавить командой:

echo 'deb http://download.virtualbox.org/virtualbox/debian stretch contrib' >> /etc/apt/sources.list

   Также, чтобы был прописан в операционной системе репозиторий main contrib non-free, например такой:

deb http://ftp.debian.org/debian/ stretch main contrib non-free

 

   Для Ubuntu 18.04 (если необходимо установить на  другую версию Ubuntu заменяем bionic на другое имя дистрибутива):

deb https://download.virtualbox.org/virtualbox/debian bionic contrib

можно добавить командой:

echo 'deb https://download.virtualbox.org/virtualbox/debian bionic contrib' >> /etc/apt/sources.list

Добавляем публичный ключ  репозитория virtualbox командой:

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

Обновляем репозиторий и запускаем установку virtualbox командами:

aptitude update

Для установки Virtualbox 5.1 выполняем команду:

aptitude install virtualbox-5.1

Проверяем версию установшегося virtualbox выполнив команду:

vboxwebsrv -V

Ответ:

Oracle VM VirtualBox web service Version 5.1.38
(C) 2007-2018 Oracle Corporation
All rights reserved.
5.1.38r122592

Версия 5.1.38r122592, потому качаем VirtualBox Extension Pack нужной версии и устанавливаем выполнив команды:

wget http://download.virtualbox.org/virtualbox/5.1.38/Oracle_VM_VirtualBox_Extension_Pack-5.1.38-122592.vbox-extpack
vboxmanage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.1.38-122592.vbox-extpack

Настраиваем автозапуск виртуалок, создаем файлы с содержимым:

vi /etc/vbox/autostart.cfg

default_policy = deny

vbox = {
allow = true
startup_delay = 10
}

 

vi /etc/default/virtualbox

VBOXWEB_USER=vbox
VBOXWEB_HOST=192.168.0.1
VBOXWEB_PORT=18083
VBOXAOTPSTART_DB=/etc/vbox
VBOXAOTPSTART_CONFIG=/etc/vbox/autostart.cfg

где 192.168.0.1 - внутренний айпи сервера в локальной сети:

   Для работы Virtualbox необходимо создать пользователя под которым будут работать виртуальные машины. Добавляем пользователя vbox в систему командой:

useradd -d /home/vbox -m -g vboxusers -s /bin/bash vbox
chgrp vboxusers /etc/vbox
usermod -aG vboxusers vbox
usermod -G cdrom -a vbox

   Устанавливаем php и веб сервер выполнив команду:

aptitude install -y apache2 libapache2-mod-php php php-soap php-xml

   Скачиваем phpvirtualbox выполнив команду:

wget http://sourceforge.net/projects/phpvirtualbox/files/latest/download -O phpvirtualbox.zip

   Разархивируем скачанный дистрибутив phpvirtualbox:

unzip phpvirtualbox.zip

Копируем содержимое архива в папку /var/www веб сервера:

cp -Rp phpvirtualbox-5.0-5/* /var/www/html/

   Создаем конфигурационный файл из дефолтного командой в консоли:

mv /var/www/html/config.php-example /var/www/html/config.php

   Если закачиваете файлы phpvirtualbox через фтп, просто переименовываем и редактируем настройки как ниже в инструкции:

изменяем config.php:

vi /var/www/html/config.php

/* Username / Password for system user that runs VirtualBox */
var $username = 'vbox';
var $password = 'pass';

   где pass - ваш пароль введенный при создании пользователя vbox

Изменяем далее:
было:

/* SOAP URL of vboxwebsrv (not phpVirtualBox's URL) */
var $location = 'http://127.0.0.1:18083/';

   Внимание!!! Для того, чтобы работал rdp через веб интерфейс, необходимо указать не 127.0.0.1 а внутренний либо внешний IP, например 192.168.0.1(внутренний адрес сервера)

стало:

/* SOAP URL of vboxwebsrv (not phpVirtualBox's URL) */
var $location = 'http://192.168.0.1:18083/';

 

было:

// Host / ip to use for console connections
#var $consoleHost = '192.168.1.40';

стало:

// Host / ip to use for console connections
var $consoleHost = '192.168.0.1';

 

   Так как разработчик Phpvirtualbox не сделал еще версию веб интерфейса для 5.1 и выше, то необходимо внести изменения в конфигурационный файл phpvirtualbox и создать ссылки на файлы выполнив команды:

cd /var/www/html/endpoints/lib
vi config.php

было:

define('PHPVBOX_VER', '5.0-5');

стало:

define('PHPVBOX_VER', '5.1-38');
ln -s vboxweb-5.0.wsdl vboxweb-5.1.wsdl
ln -s vboxwebService-5.0.wsdl vboxwebService-5.1.wsdl

Создаем файл лога и даем на него права:

touch /var/log/vboxweb
chown -R vbox:vboxusers /var/log/vboxweb

Перезагружаем virtualbox сервис:

service vboxweb-service restart
service vboxweb-service status

 

   Авторизируемся под пользователем vbox и выполняем команды:

su vbox
VBoxManage setproperty websrvauthlibrary null
VBoxManage setproperty autostartdbpath /etc/vbox

   Когда Вы создадите виртуальную машину и захотите настроить её автозагрузку после включения сервера, и сохранения состояния машины при выключении сервера, выключите виртуальную машину, и авторизовавшись под пользователем vbox выполните команду, заменив имя сервера Server на имя вашей виртуальной машины:

su vbox
VBoxManage modifyvm Server --autostart-enabled on --autostop-type savestate

   Внимание!!! можно указать IP 127.0.0.1, но для того, чтобы работал rdp через веб интерфейс, необходимо указать не 127.0.0.1 а внутренний либо внешний IP , например 192.168.1.1(внутренний адрес сервера)
Перезагружаем virtualbox командой:

 

<![CDATA[]]>Старая версия инструкции для устаревших дистрибутивов

   Добавляем  репозиторий с оффициального сайта Virtualbox.

Добавляем в source.list  репозиторий  командой:

Для Debian Wheezy:

echo 'deb http://download.virtualbox.org/virtualbox/debian wheezy contrib' >> /etc/apt/sources.list

Для Debian Jessie:

echo 'deb http://download.virtualbox.org/virtualbox/debian jessie contrib' >> /etc/apt/sources.list

Добавляем публичный ключ  репозитория virtualbox командой:

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

Обновляем репозиторий и запускаем установку virtualbox командами:

aptitude update

Для установки Virtualbox 4.3 выполняем команду:

aptitude install virtualbox-4.3

Для установки Virtualbox 5 выполняем команды:

aptitude install virtualbox-5.0

или:

aptitude install virtualbox-5.1

 

 

 

   Для того, чтобы у нас работал доступ к RDP через web интерфейс и USB2 для виртуальной машины, необходимо скачать и установить дополнительный пакет virtualbox

   Но перед тем как установить пакет дополнений, необходимо узнать версию установленного virtualbox командой:

vboxwebsrv -V
Oracle VM VirtualBox web service Version 4.3.40
(C) 2007-2016 Oracle Corporation
All rights reserved.
4.3.40r110317

либо:

vboxwebsrv -V
Oracle VM VirtualBox web service Version 5.0.10
(C) 2007-2015 Oracle Corporation
All rights reserved.
5.0.14r105127

или:

vboxwebsrv -V
Oracle VM VirtualBox web service Version 5.1.24
(C) 2007-2017 Oracle Corporation
All rights reserved.
5.1.24r117012

   Получается, что у нас стоит версия 4.3.34 либо 5.0.14, потому заходим на страницу http://download.virtualbox.org/virtualbox/<![CDATA[]]> и открываем директорию 4.3.34либо 5.0.14 и в самом верху видим файл Oracle_VM_VirtualBox_Extension_Pack-4.3.34.vbox-extpack , его то нам нужно скачать и установить.

 

Для этого скачиваем дополнительный пакет командой:

wget http://download.virtualbox.org/virtualbox/4.3.40/Oracle_VM_VirtualBox_Extension_Pack-4.3.40-110317a.vbox-extpack

Для версии 5.0:

wget http://download.virtualbox.org/virtualbox/5.0.14/Oracle_VM_VirtualBox_Extension_Pack-5.0.14.vbox-extpack

Для версии 5.1:

wget http://download.virtualbox.org/virtualbox/5.1.24/Oracle_VM_VirtualBox_Extension_Pack-5.1.24-117012.vbox-extpack

И устанавливаем скачанный пакет для работы rdp и usb2 командой:

VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-*.vbox-extpack

Ответ системы на выполнение установки пакета:

0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Successfully installed "Oracle VM VirtualBox Extension Pack".

После установки необходимо перезагрузить сервис vboxweb-service командами:

/etc/init.d/vboxweb-service stop
sleep 7
/etc/init.d/vboxweb-service start

   Для работы Virtualbox необходимо создать пользователя под которым будут работать виртуальные машины.
   Добавляем пользователя vbox в систему командой:

adduser vbox

Указываем пароль пользователя vbox, предварительно записав его в свой блокнот для паролей.

Установка phpvirtualbox
   Для того, чтобы работал phpvirtualbox через веб интерфейс, необходимо добавить домен vm.server.loc по примеру как в инструкции Установка почтового веб клиента Roundcube в Debian - ч.5 без базы данных, создаем FTP аккаунт, через который дальше мы закачаем файлы phpvirtualbox.

   Далее качаем через браузер phpvirtualbox (предварительно удостоверившись на <![CDATA[]]>странице<![CDATA[]]>, что это на данный момент самая последняя версия), либо командой в консоли на самом сервере:

Phpvirtualbox для Virtualbox 4.3

wget -c -t0 http://kent.dl.sourceforge.net/project/phpvirtualbox/phpvirtualbox-4.3-3.zip

Phpvirtualbox для Virtualbox 5.0

wget -c -t0 http://netcologne.dl.sourceforge.net/project/phpvirtualbox/phpvirtualbox-5.0-5.zip

Распаковываем содержимое скачанного архива phpvirtualbox нужной Вам версии в папку домена по фтп как в инструкции указанной выше Установка почтового веб клиента Roundcube, либо через консоль сервера, не забыв изменить права веб сервера:

Меняем права на файлы phpvirtualbox для веб сервера по примеру как в инструкции указанной выше.

Перегружаем веб сервер командой:

/etc/init.d/apache2 restart

Далее через консоль переходим в папку домена /var/www/vm.server.loc командой:

cd /var/www/vm.server.loc

Создаем конфигурационный файл из дефолтного командой в консоли:

mv config.php-example config.php

Если закачиваете файлы phpvirtualbox через фтп, просто переименовываем и редактируем настройки как ниже в инструкции:

изменяем config.php:

/* Username / Password for system user that runs VirtualBox */
var $username = 'vbox';
var $password = 'pass';

где pass - ваш пароль введенный при создании пользователя vbox

Изменяем далее:
было:

/* SOAP URL of vboxwebsrv (not phpVirtualBox's URL) */
var $location = 'http://127.0.0.1:18083/';

Внимание!!! Для того, чтобы работал rdp через веб интерфейс, необходимо указать не 127.0.0.1 а внутренний либо внешний IP, например 192.168.0.1(внутренний адрес сервера)

стало:

/* SOAP URL of vboxwebsrv (not phpVirtualBox's URL) */
var $location = 'http://192.168.0.1:18083/';

 

было:

// Host / ip to use for console connections
#var $consoleHost = '192.168.1.40';

стало:

// Host / ip to use for console connections
var $consoleHost = '192.168.0.1';

Создаем файл отвечающий на каком айпи и порту будет работать virtualbox

echo '
VBOXWEB_USER=vbox
VBOXWEB_HOST=192.168.0.1
VBOXWEB_PORT=18083 ' > /etc/default/virtualbox

Внимание!!! можно указать IP 127.0.0.1, но для того, чтобы работал rdp через веб интерфейс, необходимо указать не 127.0.0.1 а внутренний либо внешний IP , например 192.168.0.1(внутренний адрес сервера)
Перезагружаем virtualbox командой:

/etc/init.d/vboxweb-service restart

Открываем в браузере адрес нашего сервера:

http://192.168.0.1/

и вводим
логин:   admin
пароль: admin

Откроется веб интерфейс на английском языке, который можно изменить в настройках на русский, кстати настоятельно рекомендую изменить у пользователя пароль, а лучше создать администратора с не типичным именем и сложным паролем, а текущий удалить, тогда если у Вас интерфейс глядит в инет (что не рекомендуется для безопасности) пароль и логин будет гораздо сложнее (практически не возможно) подобрать.

Интерфейс веб интерфейса практически ничем не отличается от десктопной версии Virtualbox.

Создаем виртульную машину с помощью мастера нажав на кнопку создать, и подключив образ нужного диска и выбрав в сдроме образ выполняем установку операционной системы.

 

Делаем автозапуск виртуальных машин при включении сервера, сохранение текущего состояния гостевой машины (не выключение) при выключении физическогосервера с восстановлением текущего состояния при включении сервера.

Автозапуск гостевой машины Virtualbox:

Создаем скрипт, который будет запускать и сохранять гостевые машины при включении, выключении сервера:

vi /etc/init.d/virtualbox

#!/bin/bash
### BEGIN INIT INFO 
# Provides: myscript 
# Required-Start: 
# Required-Stop: 
# Default-Start: 2 3 4 5 
# Default-Stop: 1 0 6 
# Short-Description: simple description. 
### END INIT INFO
START="/bin/bash"

#if [ ! -f /etc/rc.vm ]; then
#       echo "/etc/rc.vm does not exist"
#       exit 0
#fi

VBOXDIR="/etc/vbox"
VM_USER="vbox"
SU="su - $VM_USER -c"
VBOXMANAGE="VBoxManage -nologo"
VM="Gateway"

case "$1" in
       start)
       echo -n "Starting up virtual maschine $VM"
       sleep 15 && $SU "VBoxHeadless --startvm $VM > /dev/null 2>&1 &"
       echo "done."
       ;;
       restart)
       $SU "VBoxManage controlvm $VM reset"
       ;;
       stop)
       $SU "VBoxManage controlvm $VM    savestate"
    ;;
       stopacpi)
       $SU "VBoxManage controlvm $VM acpipowerbutton"
       exit 0
       ;;
*)
       echo "Usage: $N {start|restart|stop}" >&2
       exit 1
       ;;
esac

exit 0

В этом файле необходимо изменить только переменную VM, в ней нужно указать название вашей виртуальной машины, которая отображается в веб интерфейсе phpvirtualbox.
Делаем файл исполняемым и добавляем его в автозагрузку командами:

chmod +x /etc/init.d/virtualbox
update-rc.d virtualbox defaults

Для каждой гостевой машины необходимо сделать свой файл запускающий и сохраняющий виртуальную машину при включении-выключении сервера.

Установлен Virtualbox с веб интерфейсом PHPVirtualbox на Debian GNU/Linux

 

Ошибки!!!

!!! Если при открытии веб интерфейса выдает ошибку: 

Error logging in to vboxwebsrv

необходимо запустить команду под пользователем vbox:

su vbox
VBoxManage setproperty websrvauthlibrary null
Ctrl+d

Затем перезагрузить virtualbox командой:

/etc/init.d/vboxweb-service restart

!!! Внимание. Если выдает такую ошибку при подключении к RDP:

Disconnect reason: I: MCS: Disconnect Request I: RDPCLIENT: The server has dropped connection.

Необходимо зайти: Свойства виртуальной машины - Дисплей - Удаленный дисплей - Дополнительные возможности - поставить галочку на Разрешить несколько подключений

 

Если Вы в виртуальной машине вместо образа установочного диска выбрали использовать физический привод CD/DVD и Вам веб интерфейс PHPVirtualbox выдал ошибку:

Cannot open host device '/dev/sr0' for readonly access. Check the permissions of that device ('/bin/ls -l /dev/sr0'): Most probably you need to be member of the device group. Make sure that you logout/login after changing the group settings of the current user (VERR_ACCESS_DENIED)

Установлен Virtualbox с веб интерфейсом PHPVirtualbox на Debian GNU/Linux

Это значит, что пользователю под которым мы запускаем виртуальную машину, в нашем случае это vbox нет прав на пользование физическим приводом CD/DVD.

Для лечения этой ошибки достаточно добавить пользователя vbox в группу cdrom командой:

usermod -G cdrom -a vbox

Задача выполнена, Virtualbox установлен на сервер с Debian GNU/Linux, установлен и настроен веб интерфейс PHPVirtualbox, настроен автозапуск виртуальных машин.

С Вами был Сергей Лазаренко.

 

После продуктивной работы, можно отвлечься и посмотреть видео о работе с VMware vSphere:

 

Recoverable fatal error: Argument 1 passed to xmlsitemap_node_create_link() must be an instance of stdClass, boolean given, called in /var/www/clients/client1/web1/web/sites/all/modules/xmlsitemap/xmlsitemap_node/xmlsitemap_node.module on line 28 and defined в функции xmlsitemap_node_create_link() (строка 194 в файле /var/www/clients/client1/web1/web/sites/all/modules/xmlsitemap/xmlsitemap_node/xmlsitemap_node.module).

Recoverable fatal error: Argument 1 passed to xmlsitemap_node_create_link() must be an instance of stdClass, boolean given, called in /var/www/clients/client1/web1/web/sites/all/modules/xmlsitemap/xmlsitemap_node/xmlsitemap_node.module on line 28 and defined в функции xmlsitemap_node_create_link() (строка 194 в файле /var/www/clients/client1/web1/web/sites/all/modules/xmlsitemap/xmlsitemap_node/xmlsitemap_node.module).

Recoverable fatal error: Argument 1 passed to xmlsitemap_node_create_link() must be an instance of stdClass, boolean given, called in /var/www/clients/client1/web1/web/sites/all/modules/xmlsitemap/xmlsitemap_node/xmlsitemap_node.module on line 28 and defined в функции xmlsitemap_node_create_link() (строка 194 в файле /var/www/clients/client1/web1/web/sites/all/modules/xmlsitemap/xmlsitemap_node/xmlsitemap_node.module).

Рейтинг статьи: 

3
Средняя: 3 (2 оценки)

Вам понравилась статья? Хотите получать уведомления о выходе новых статей с этого сайта на свой почтовый адрес? Подписывайтесь пожалуйста. Введите свой почтовый адрес и нажмите кнопку Хочу получать статьи!

<![CDATA[]]><![CDATA[]]>

 

*Адреса электронной почты не разглашаются и не предоставляются третьим лицам для коммерческого или некоммерческого использования.

 

 
 

 

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

Filtered HTML

  • Поисковые системы будут индексировать и переходить по ссылкам на разрешённые домены.

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Plain text

  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
  • Поисковые системы будут индексировать и переходить по ссылкам на разрешённые домены.

CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.