Установка VirtualBox и phpvirtualbox на FreeBSD
После установки ОСи обновляем устанавливаем порты и обновляем их.
# portsnap fetch extract portsnap fetch update
Получаем свежие src ОС
# Получаем свежие сырцы fetch -o /tmp/src.txz http://ftp.freebsd.org/pub/FreeBSD/releases/amd64/`uname -r`/src.txz cd /; tar xJvf /tmp/src.txz
Собираем VirtualBox и модули ядра для его работы
# Устанавливаем tmux /usr/ports/sysutils/tmux make install clean BATCH=yes # Порт virtualbox-ose будет компилироваться несколько часов, поэтому выполняем это в tmux # Порт virtualbox-ose-kmod подтянется сам. tmux cd /usr/ports/emulators/virtualbox-ose make install clean BATCH=yes I_DONT_CARE_IF_MY_BUILDS_TARGET_THE_WRONG_RELEASE=yes cd /usr/ports/sysutils/lsof make install clean BATCH=yes # Добавляем модуль в загрузку echo 'vboxdrv_load="YES"' >> /boot/loader.conf # Загружаем модуль в память kldload vboxdrv
Устанавливаем PhpVirtualBox
# Добавляем пользователя, от которого будут работать VM на сервере. # Пароль сохраняем, он нам потребуется чуть позднее. adduser vbox pw groupmod vboxusers -m vbox # Устанавливаем web-сервер nginx pkg install -y nginx # Устанавливаем PhpVirtualBox cd /usr/ports/www/phpvirtualbox make install clean BATCH=yes
Обращаю внимание, что php установится автоматом при установке phpvirtualbox
Конфигурируем VirtualHost для вебморды
# Копируем конфиг для php.ini cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini # Добавляем ссылку на каталог ngnix/conf.d sed -i.bak '$s/>/\tinclude conf.d\/\*\.conf;\r\n\r\n>/' /usr/local/etc/nginx/nginx.conf # Создаем директорию для добавления собственных конфигов NgiNX mkdir /usr/local/etc/nginx/conf.d/
Далее нужно создать конфиг /usr/local/etc/nginx/conf.d/vbox.conf Укажите URL , по которому будет работать веб-морда phpVBox
server { listen 80; server_name URL-URL; root /usr/local/www; error_log /var/log/nginx/vbox-error.log warn; access_log /var/log/nginx/vbox.log; location / { root /usr/local/www/nginx; index index.php index.html; try_files $uri $uri/ =404; } location /phpvirtualbox { index index.html; try_files $uri $uri/ =404; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
Включаем phpVirtualBox
# Добавляем в автозагрузку nginx и php-fpm sysrc nginx_enable=YES sysrc php_fpm_enable=YES # Стартуем сервисы service php-fpm restart service nginx restart
Стартуем vboxwebserver
sysrc vboxwebsrv_enable=YES sysrc vboxwebsrv_user="vbox" /usr/local/etc/rc.d/vboxwebsrv start
Сразу проверим, работает ли он:
lsof -i :18083 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME vboxwebsr 87849 vbox 8u IPv6 0xfffffe003e89b0e0 0t0 TCP localhost:18083 (LISTEN)
Конфигурируем PhpVirtualBox
nano /usr/local/www/phpvirtualbox/config.php
/* Username / Password for system user that runs VirtualBox */ var $username = 'vbox'; /* Тут указываем имя пользователя */ var $password = 'Pa$$w0rD'; /* Тут указываем пароль пользователя */ /* SOAP URL of vboxwebsrv (not phpVirtualBox's URL) */ var $location = 'http://localhost:18083/'; /* Тут меняем 127.0.0.1 на locahost */
Стартуем все сервисы и проверяем работу VirtualBox и Вебморды
sysrc vboxguest_enable=YES sysrc vboxnet_enable=YES service vboxnet start
Переходите на http://URL-URL/phpvirtualbox/ и начинайте настройку виртуальных машин. Пароль admin по дефолту admin.
PS Не работает в веб-интерфейсе выбор файла для монтирования
Если не работает в веб-интерфейсе выбор файла для монтирования, то действуем так:
$ vboxmanage list vms "app" $ vboxmanage storageattach "5e261d64-68d0-4f20-92eb-82dadde4c54b" --storagectl IDE \ --port 0 --device 0 --type dvddrive --medium /home/vbox/iso/debian-11.6.0-amd64-netinst.iso
Если потребовалось сменить hdd диск у виртуальной машины:
# Находим UUID нужного диска в этом списке: vboxmanage list hdd $DISKUUID # Находим UUID машины, в которой хотим сменить диск vboxmanage list vms $VMUUID "app" {5e261d64-68d0-4f20-92eb-82dadde4c54b} "mysql" {f5d595f0-c8a0-4359-83f5-185083710a40} # Меняем диск vboxmanage storageattach $VMUUID --storagectl "SATA" --device 0 --port 0 --type hdd --medium $DISKUUID
[PHP Modules] Core date hash json libxml mysqlnd openssl pcre Reflection session SimpleXML soap SPL standard xml [Zend Modules]
Аникин

Связаться со мной:
Установка virtualbox с web-интерфейсом на сервер.
Имеем сервер на ubuntu 14.04. Нужно установить virtualbox с веб интерфейсом, чтобы установить несколько виртуальных машин на сервер.
Скрипт автоустановки для ленивых
Установка virtualbox.
Для начала установим сам virtualbox последней версии с репозиториев oracle.
Добавляем репозиторий и импортируем ключ
# echo "deb http://download.virtualbox.org/virtualbox/debian $(lsb_release -sc) contrib" | sudo tee -a /etc/apt/sources.list # wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -
Устанавливаем virtualbox и модули ядра
# apt-get update # apt-get install dkms virtualbox-5.0
Установим пакет дополнений гостевой ОС. Смотрим версию virtualbox
# vboxwebsrv -V Oracle VM VirtualBox web service Version 5.0.2 (C) 2007-2015 Oracle Corporation All rights reserved. 5.0.2r102096
И на этой странице берем ссылку для дополнений для нужной нам версии.
Скачиваем
# wget http://download.virtualbox.org/virtualbox/5.0.2/Oracle_VM_VirtualBox_Extension_Pack-5.0.2-102096.vbox-extpack
# VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.0.2-102096.vbox-extpack
Теперь создадим юзера, под которым будут работать наши виртуальные машины и добавим его в группу vboxusers
# adduser vbox # usermod -a -G vboxusers 'vbox'
Не забываем пароль, который мы назначили пользователю vbox. Он нам ещё потребуется.
Настраиваем веб-сервис virtualbox
# nano /etc/default/virtualbox
VBOXWEB_USER=vbox #пользователь под которым работает virtualbox VBOXWEB_HOST=xxx.xxx.xxx.xxx #ip VBOXWEB_PORT=18083 #порт для веб-сервиса
# service vboxweb-service stop # service vboxweb-service start
Установка web-интервейса.
Для работы веб интерфейса нам потребуется веб-сервер(мы будем использовать nginx) и php. Установим их.
# apt-get install nginx php5-common php5-fpm php-pear
Для ubuntu 16.04 кликнуть сюда
# apt-get install nginx php-common php-fpm php-pear php-soap
Создадим каталог для виртуального хоста.
# mkdir /var/www && mkdir /var/www/phpvirtualbox
На этой странице мы можем получить ссылки на архивы веб-интерфейса phpvirtualbox для разных версий virtualbox. В данном случае скачиваем и распаковываем в каталог виртуального хоста phpvirtualbox для нашей версии.
# cd /var/www/phpvirtualbox/ && wget http://sourceforge.net/projects/phpvirtualbox/files/phpvirtualbox-5.0-2.zip/download && mv download phpvirtualbox-5.0-2.zip # unzip phpvirtualbox-5.0-2.zip && mv ./phpvirtualbox-5.0-2/* /var/www/phpvirtualbox
Копируем пример конфига
# cp /var/www/phpvirtualbox/config.php-example /var/www/phpvirtualbox/config.php
# nano /var/www/phpvirtualbox/config.php
# Пользователь и пароль под которым работает virtualbox var $username = 'vbox'; var $password = 'PaS$w0rd'; # Адрес веб-сервиса var $location = 'http://xxx.xxx.xxx.xxx:18083/'; # Диапазон rdp портов var $vrdeports = '9000-9100'; # IP сервера var $consoleHost = 'xxx.xxx.xxx.xxx';
Создаем файл виртуального хоста в nginx
# nano /etc/nginx/conf.d/phpvirtualbox.conf
server < listen xxx.xxx.xxx.xxx:80; root /var/www/phpvirtualbox/; index index.php index.html index.htm; location / < # First attempt to serve request as file, then # as directory, then fall back to index.html try_files $uri $uri/ /index.html; # Uncomment to enable naxsi on this location # include /etc/nginx/naxsi.rules ># pass the PHP scripts to FastCGI server listening on 1$ # location ~ \.php$ < try_files $uri =404; fastcgi_split_path_info ^(.+.php)(.*)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; >>
Для ubuntu 16.04 конфиг такой
server < listen XXX.XXX.XXX.XXX:80; root /var/www/phpvirtualbox/; index index.php index.html index.htm; location / < # First attempt to serve request as file, then # as directory, then fall back to index.html try_files $uri $uri/ /index.html; # Uncomment to enable naxsi on this location # include /etc/nginx/naxsi.rules ># pass the PHP scripts to FastCGI server listening on 1$ # location ~ \.php$ < try_files $uri =404; fastcgi_split_path_info ^(.+.php)(.*)$; fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; >>
# service nginx restart
Теперь перейдя по адресу http://ip-сервера/ мы увидим форму логина. По умолчанию логин — admin и пароль — admin. Логинимся, открываем меню File, пункт Preferences и меняем пароль в графе Users. В графе Language можно поставить русский язык.

Установка виртуальной машины.
Скачиваем установочный образ нужной нам ОС(в данном случае debian 8) в домашний каталог юзера vbox
# cd /home/vbox/ # wget http://mirror.yandex.ru/debian-cd/8.1.0/amd64/iso-cd/debian-8.1.0-amd64-CD-1.iso
Затем в веб-интерфейсе, кликаем кнопку создать и создаем виртуальную машину с нужными нам характеристиками.

Переходим в настройки виртуальной машины — Дисплей. И во вкладке «Удаленный дисплей» включаем доступ по rdp с нужными нам данными авторизации и портом.

Запускаем нашу виртуальную машину. При первом запуске она спросит установочный iso образ, который мы скачали в домашний каталог пользователя vbox.

После запуска виртуальной машины мы можем подключится любым rdp клиентом к хост-машине по порту указанному в настройках удаленного дисплея и продолжить установку как обычно. Также можно подключится прямо через веб-интерфейс, просто кликнув «Консоль» справа сверху.
Разворачиваем образ VirtualBox с виртуальным веб-сервером LEMP (Linux, NGINX, MySQL, PHP) под Debian 8
Разворачиваем образ VirtualBox с виртуальным веб-сервером LEMP (Linux, NGINX, MySQL, PHP) под Debian 8 на Windows/Mac/Linux.
Введение:
Мне пришлось перепробовать множество различных сборок веб-серверов, созданных для разработки и дальнейшего тестирования на локальной машине: Денвер, XAMPP, Open Server. Так же устанавливал локально весь набор для веб-сервера (apache, php, mysql), пробовал некоторые другие решения, в конечном итоге оказавшиеся недостаточно удобными. Если в начале работы не было никаких нареканий, то через какое-то время требовалась новая версия одной или нескольких частей софта, и после обновления сборки веб-сервера приходилось сталкиваться с несовместимостью конфигураций, помойкой в системе, помехами со стороны ОС и установленного ПО (например, на Windows Skype занимает 80-й порт). Все решения подобных проблем, какие можно было найти на форумах, это — «переустанови веб-сервер». А если что-то не устраивает в готовых системах, то лучше сделать самому — установить VirtualBox и поднять свой сервер.
Запуск виртуального веб-сервера осуществляется средствами бесплатного и доступного каждому VirtualBox’а (virtualbox.org). Запускать машину можно через графический интерфейс VB (это добавляет окна, которые в последствии придется сворачивать) или через интерфейс командной строки (как фоновый процесс).
Запускаемая виртуальная среда по набору софта и конфигурациям почти полностью совпадает со средой на production-сервере.
Скачать образ виртуального веб-сервера Debian 8 LEMP (Linux, NGINX, MySQL, PHP) для VirtualBox
Образ содержит NGINX, MySQL, PHP-fpm. В этом решении не используется Apache (LAMP), заменяя его связкой NGINX и PHP-fpm (LEMP).
Первый запуск и настройка виртуального веб-сервера
Запуск осуществляется через консоль операционной системы, командой:
VBoxManage startvm D8-lemp --type vrdp
Дополнительный параметр —type заставляет ядро VirtualBox использовать интерфейс VBoxHeadless.
Виртуальная машина запустится в фоновом режиме, и для подключения к ней потребуется SSH-клиент.
Подключение по SSH должно осуществляться на статический IP-адрес виртуальной машины:
ssh root@192.168.0.121
Пароль: «pass»
Если у вас другая сеть, или адрес занят, то необходимо запустить единожды виртуальную машину стандартным способом через графический интерфейс VirtualBox и отредактируйте данные IP, маски и шлюза в файле:
nano /etc/network/interfaces
Сохранить изменения и выполнить обновление настроек:
/etc/init.d/networking reload
Затем выключить машину командой:
Poweroff
Теперь можно запускать машину через консоль и выполнять подключение по SSH на установленный вами IP.
При обращении к виртуальной машине через браузер по её IP-адресу должно появится приветствие от NGINX.
Работа с файлами виртуальном веб-сервере
При каждой успешной авторизации по SSH на виртуальной машине будет появляться стандартное приветствие и дополнительная информация о работе машины, которая выглядит следующим образом:
Быстрый старт LEMP (Linux, NGINX, MySQL, PHP) на Debian 8:
- nano ~/.hgrc — Укажите свои данные для доступа к Mercurial
- Все сайты добавляются в папку /home/web/ или монтируется папка через VB в /media/sf_*
- Конфигурации сайтов живут в /etc/nginx/sites-enabled/
- Перезагрузка веб-сервера происходит по команде service nginx reload
- Перезагрузка php-fpm происходит по команде service php5-fpm reload
- Выполнение системных команд требует root прав, а для этого выполните su
Пароль везде: pass
Доступны: Mercurial и Composer.
Инструкция довольно простая, но раскрою пару моментов.
![]()
- Если вам не нужен Mercurial и Composer, просто игнорируйте их, они напоминать о себе не будут.
- Самый удобный вариант работы с файлами, это прицепить папку через VirtualBox, которая потом появится в виртуальной машине по адресу /media/sf_*
- Папки цепляются через раздел «Общие папки» в настройках виртуальной машины. Установите для папки параметры «Авто-подключение» и «Создать постоянную папку». Перед подключением папки, выключите виртуальную машину командой poweroff
- Цепляйте корневую папку в которой лежат все проекты, чтобы потом не приходилось каждый раз добавлять новую папку.
Запуск тестового сайта на виртуальном веб-сервере
В виртуальной машине настроен тестовый сайт с доменом test.web, чтобы увидеть его и любой другой виртуальный хост, который вы настроите на машине, где установлен VirtualBox, в файле hosts, пропишите доступ до test.web:
В Windows файл hosts находится по данному адресу:
C:\Windows\System32\drivers\etc\hosts
В MacOS и Linux:
/etc/hosts
Открываем его в текстовом редакторе и прописываем в нем доменное имя и IP-адрес (в данном варианте IP-адрес виртуальной машины) для него.
Пример:
192.168.0.121 test.web
Открыв браузер и набрав в адресной строке test.web, сгенерируется страница с надписью «Hi!».
Добавление и запуск сайтов на виртуальном веб-сервере
Для добавления нового сайта скопируйте файл конфигурации /etc/nginx/sites-enabled/test.
Например:
cp /etc/ngingx/sites-enabled/test /etc/nginx/site-enabled/mysite
Откройте скопированный файл и отредактируйте папку расположения сайта и имя сервера (домена).
Например:
server_name test.web; root /home/test;
меняем на
server_name mysite.web; root /home/mysite;
Для применения изменений конфигурации требуется перезапуск сервиса:
service nginx reload
Аналогично перезапускается сервис php5-fpm в случае, если изменялись конфигурации, связанные с php:
service php5-fpm reload
Добавление базы данных в MySQL.
На виртуальной машине установлена СУБД MySQL. Для обращения к ней и создания баз данных существует несколько вариантов. Самый простой — использование графического клиента. Другой вариант — работать с СУБД через консоль.
Примеры ПО с графическим интерфейсом:
- Для Windows, бесплатный SSH-клиент heidisql.
- Для MacOS, бесплатный SSH-клиент SequelPro.
При использовании ПО с графическим интерфейсом требуется создание SSH-туннеля.
Пример для программы SequelPro
Выбираем создание SSH-туннеля.
- Указываем IP-адрес в поле Адрес SSH
- Пользователь: root
- Пароль: pass
- Адрес MySQL: 127.0.0.1
- Пользователь: root
- Пароль: pass
- Соединяемся с MySQL.
Установка дополнительных пакетов и обновления
Данная виртуальная машина является полноценной операционной системой, поэтому ее можно обновлять и устанавливать любое другое дополнительное программное обеспечение.
Дополнительные изменения
- Чтобы избежать проблем с правами у папки, в которой располагаются файлы проектов, пользователь www-data добавлен в дополнительную группу vboxsf.
usermod -a -G vboxsf www-data - Включена авторизация для root по SSH.
Установка Virtualbox на сервер Debian, Ubuntu с web интерфейсом phpvirtualbox

phpVirtualBox — 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
Настраиваем автозапуск виртуалок, создаем файлы с содержимым:
default_policy = deny vbox =
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 через фтп, просто переименовываем и редактируем настройки как ниже в инструкции:
/* 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 командой:
Добавляем репозиторий с оффициального сайта 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/ и открываем директорию 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
wget http://download.virtualbox.org/virtualbox/5.0.14/Oracle_VM_VirtualBox_Extension_Pack-5.0.14.vbox-extpack
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 (предварительно удостоверившись на
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 через фтп, просто переименовываем и редактируем настройки как ниже в инструкции:
/* 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/
Откроется веб интерфейс на английском языке, который можно изменить в настройках на русский, кстати настоятельно рекомендую изменить у пользователя пароль, а лучше создать администратора с не типичным именем и сложным паролем, а текущий удалить, тогда если у Вас интерфейс глядит в инет (что не рекомендуется для безопасности) пароль и логин будет гораздо сложнее (практически не возможно) подобрать.
Интерфейс веб интерфейса практически ничем не отличается от десктопной версии 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" >&2 exit 1 ;; esac exit 0
В этом файле необходимо изменить только переменную VM, в ней нужно указать название вашей виртуальной машины, которая отображается в веб интерфейсе phpvirtualbox.
Делаем файл исполняемым и добавляем его в автозагрузку командами:
chmod +x /etc/init.d/virtualbox update-rc.d virtualbox defaults
Для каждой гостевой машины необходимо сделать свой файл запускающий и сохраняющий виртуальную машину при включении-выключении сервера.

Ошибки.
. Если при открытии веб интерфейса выдает ошибку:
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)

Это значит, что пользователю под которым мы запускаем виртуальную машину, в нашем случае это 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).
