Всем привет! Встала как-то передо мной задача установить виртуальную машину. На сервер я установил Debian 6, не пятый же ставить и плюс к этому захотел поставить именно 4 версию virtualbox'а (не третью же ставить). Проблема сразу же возникла на ровном месте. Инет ничего путного не подсказывал. Везде информация о том как установить 3 версию виртуалбокса. Дело в том, что на тот момент когда писались статьи, версия phpVirtualbox была только для третьей версии виртуалбокса и с четверкой не работала. Вот никто и не думал обновлять статьи. Конечно урывки были где-то, но все это скудно донельзя. На офсайте VB есть инструкция по добавлению репозитория и одна строчка с командой установки виртуалбокса (VB). Не очень то много. Мало того что не работал phpVB, так даже не запускался из командной строки VB, сплошные ошибки выдавал. Вот два-три дня курения буржуйских мануалов и парсинга сайтов, плюс к этому суровый взгляд начальника привел меня к нужному результату. Теперь я даже без проблем могу апдейтить VB и phpVB.
Все ниже перечисленные действия нужно будет выполнять под пользователем root
Часть 1. Установка VirtualBox
Ну что же, приступим. Я в линуксе новичек, это сразу нужно оговорить. Может если бы я был гуру линукса (или дебиана в частности), то тогда бы я все сделал быстрее и может не по такому алгоритму. В первую очередь как ни крути нужно прописать новый репозиторий. Я не люблю скачивать пакеты и потом переписывать их на сервер, там как то проставлять... Репозиторий это просто прелесть линукса, винда тут и рядом не стоит, это я оценил сразу. Да еще надо сказать, что иксы у меня не стоят. Все делается из командной строки. Заглянув на офсайт VB в ветку
]]> downloads ]]> можно увидеть отдельную ссылку на раздел
]]> VirtualBox 4.1.4 for Linux hosts ]]> . Там целая отдельная страничка. И так. Судя по мануалу нам надо прописать репозиторий. Для этого нужно открыть для редактирования файл
/etc/apt/sources.list и дописать там строку:
deb http ://download.virtualbox.org/virtualbox/debian squeeze contrib non-free
и сохранить его.
Примечание: при опубликовании статьи все http адреса автоматом преобразуются в ссылку, что бы этого не случилось после http я ставил пробел. Если будете копипастить команды, то не забудьте удалить этот самый пробел !
По идее можно и так:
echo "deb http ://download.virtualbox.org/virtualbox/debian squeeze contrib non-free" >> /etc/apt/sources.list
но ссылка добавляется не на следующую строку и сплошняком. Т.е. все равно придется заходить в редактирование файла и переносить ссылку на следующую строку вручную. Как сразу отправить текст с переводом каретки я не знаю. Затем чтобы воспользоваться этим репозиторием нам необходимо скачать и установить
public key . Делается это с помощью команды:
wget -q http ://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | apt-key add -
Это скомбинированная команда: скачиваем ключ и тут же его регистрируем. Если все прошло удачно, то на терминале вы получите ответ
ОК . Затем выполняем стандартную операцию:
aptitude update
С репозиторием вроде бы все. Теперь приступим к установке Virtualbox4. Выполним команду:
aptitude install virtualbox-4.1
тут оговорюсь. На момент написания статьи это была как раз версия 4.1. Вы можете выполнить команду:
aptitude search virtualbox
и перед вами будет выведен список найденных пакетов.
Спойлер root@vr-test:~# aptitude search virtualbox
v virtualbox -
p virtualbox-3.2 - Oracle VM VirtualBox
i virtualbox-4.0 - Oracle VM VirtualBox
p virtualbox-4.1 - Oracle VM VirtualBox
p virtualbox-ose - x86 virtualization solution - base binaries
p virtualbox-ose-dbg - x86 virtualization solution - debugging symbols
p virtualbox-ose-dkms - x86 virtualization solution - kernel module sources
p virtualbox-ose-fuse - x86 virtualization solution - virtual filesystem
pi virtualbox-ose-guest-dkms - x86 virtualization solution - guest addition module
p virtualbox-ose-guest-source - x86 virtualization solution - guest addition module
pi virtualbox-ose-guest-utils - x86 virtualization solution - non-X11 guest utilitie
pi virtualbox-ose-guest-x11 - x86 virtualization solution - X11 guest utilities
p virtualbox-ose-qt - x86 virtualization solution - Qt based user interfac
p virtualbox-ose-source - x86 virtualization solution - kernel module source
root@vr-test:~#
В будущем при обновлении VB на новую версию, нужно выполнить поиск, чтобы посмотреть какая версия доступна и затем установку. Система все обновит сама, только надо согласиться со всеми Да/Нет.
Ладно. Далее нам говорят что для установки VB4 нужно скачать дохрена зависимостей, включая иксы. Будут ли они использоваться и нужны ли вообще х.з. Но не волнуйтесь, у вас на Debian не будет графической оболочки. Я не задавался вопросом экспериментировать и устанавливать только часть пакетов. В общем нам предлагают скачать 158 мегабайт Y/N. Говорим Y (да) и жмем энтер. Ждем... Я делаю установку параллельно с написанием статьи, дабы убедиться что все верно будет написано. И так все готово спустя несколько минут. По ходу установки VB нам в дебиан будет добавлена новая группа
vboxusers , это очень важно, без нее нихрена не будет работать. Теперь нам нужно создать нового пользователя в группе
vboxusers либо уже использовать существующего, но так же перенести его в группу
vboxusers .
Из под root VB работать не будет! Создание пользователя в дебиан тоже выходит за рамки данной статьи. Все таки предполагается что за компом человек, который уже умеет кое-что в линуксе. У меня это пользователь
vboxuser . Я его создал при установке самого Debian. Просто сейчас я его вогнал в группу
vboxusers . Далее нам надо скачать и установить экстеншн пак, для того чтобы юзать RDP, USB2.0 и тому подобные плюшки. Скачать его можно
]]> отсюда ]]> . Я предпочел получить его с помощью
wget 'а. Выполняем команду:
wget http ://download.virtualbox.org/virtualbox/4.1.4/Oracle_VM_VirtualBox_Extension_Pack-4.1.4-74291.vbox-extpack
Это актуальная версия на данный момент. Нажимаем энтер и получаем примерно следующее:
Далее нам надо его установить. У меня пакет скачался в папку root . Я видать в это время был именно в этой папке. Вот от туда я его и буду ставить. Делается это так:
vboxmanage extpack install /root/Oracle_VM_VirtualBox_Extension_Pack-4.1.4-74291.vbox-extpack
Спойлер root@vr-test:~# vboxmanage extpack install /root/Oracle_VM_VirtualBox_Extension_Pack-4.1.4-74291.vbox-extpack
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Successfully installed "Oracle VM VirtualBox Extension Pack".
root@vr-test:~#
Установка экстеншнпака завершена успешна.
Примечание: при обновлении экстеншнпака на более новую версию, нужно будет выполнить команду с ключем --replace :
vboxmanage extpack install /root/Oracle_VM_VirtualBox_Extension_Pack-х.х.х-ххххх.vbox-extpack --replace
где х.х.х-ххххх номер версии экстеншнпака
Примечание: возможно после установки Oracle_VM_VirtualBox_Extension_Pack вам понадобится ребутнуть Debian, дабы virtualbox увидел этот экстеншпак
Часть 2. Установка и настройка nginx + php5-fpm и phpVirtualBox.
Лезем на
]]> офсайт ]]> phpvirtualbox и скачиваем последнюю версию проекта из той ветки, что и наш VB. Дело в том что там несколько версий:
phpvirtualbox-0.x.zip для версии VB 3.xx
phpvirtualbox-4.0-x.zip для версии VB 4.0.x
phpvirtualbox-4.1-x.zip для версии VB 4.1.x
Мы будем скачивать
phpvirtualbox-4.1-3.zip .
]]> Страница загрузки ]]> . Далее нам необходимо подготовить наш сервер. Нужно установить HTTP-сервер и PHP на наш Debian. У меня HTTP-сервер это nginx.
aptitude install nginx
ОК.
Затем ставим PHP. Будем делать связку
nginx + php5-fpm . Для установки
php5-fpm нужно добавить репозиторий в файл
/etc/apt/sources.list :
deb http ://packages.dotdeb.org squeeze all
и прописать для него ключ (дальше начинается магия, что происходит не понимаю, взял команду из инета):
gpg --keyserver keys.gnupg.net --recv-key 89DF5277 && gpg -a --export 89DF5277 | apt-key add -
Спойлер root@vr-test:~# gpg --keyserver keys.gnupg.net --recv-key 89DF5277 && gpg -a --export 89DF5277 | apt-key add -
gpg: создан каталог `/root/.gnupg'
gpg: создан новый файл настроек `/root/.gnupg/gpg.conf'
gpg: ВНИМАНИЕ: параметры в `/root/.gnupg/gpg.conf' еще не активны при этом запуске
gpg: создана таблица ключей `/root/.gnupg/secring.gpg'
gpg: создана таблица ключей `/root/.gnupg/pubring.gpg'
gpg: запрашиваю ключ 89DF5277 с hkp сервера keys.gnupg.net
gpg: /root/.gnupg/trustdb.gpg: создана таблица доверий
gpg: ключ 89DF5277: открытый ключ "Guillaume Plessis " импортирован
gpg: не найдено абсолютно доверяемых ключей
gpg: Всего обработано: 1
gpg: импортировано: 1 (RSA: 1)
OK
root@vr-test:~#
Затем выполняем знакомую нам команду:
aptitude update
и устанавливаем
php5-fpm :
aptitude install php5-fpm
Далее лезем в
/etc/nginx/sites-available и правим файл
default . Надо раскомментировать следующую структуру:
#location ~ \.php$ {
#...
#}
и еще добавить кое-что. В общем у меня получился вот такой блок:
location ~ \. php$ {
fastcgi_pass 127. 0. 0. 1: 9000 ;
fastcgi_index index. php;
fastcgi_param SCRIPT_FILENAME / var / www$fastcgi_script_name ;
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
}
Я не знаю что тут к чему, нашел пример в интернете, главное работает. Если кто понимает в данной теме прошу ваши комментарии, желательно с примером конфига. Не забудьте рестартануть потом HTTP-сервер:
/etc/init.d/nginx restart
У меня для складирования сайтов служит каталог
/var/www/ . Директорию www я создавал вручную. У вас может отличаться наверно, не знаю. В общем в такой вот каталог и распаковываем наш phpvirtualbox. Кстати папку рекомендую переименовать в
phpvirtualbox (например если она была
phpvirtualbox-4.1-3 ). В этом каталоге будет лежать файл:
config.php-example . Его нужно переименовать в файл
config.php
cp config.php-example config.php
Будет создана копия файла. Исходный конфиг лучше не удалять, мало ли чего там наворотите. Теперь нужно открыть этот файл для редактирования и изменить следующие строки:
/* Username / Password for system user that runs VirtualBox */
var $username = 'vbox' ;
var $password = 'pass' ;
где
vbox - логин пользователя, который состоит в группе
vboxusers ;
pass - пароль от этого пользователя.
У меня получилось вот так вот:
/* Username / Password for system user that runs VirtualBox */
var $username = 'vboxuser' ;
var $password = 'vrtest' ;
// Disable authentication
#var $noAuth = true;
Нужно просто раскомментировать эту строку, убрать символ
# . Если вы этого не сделаете, то при каждом заходе в phpVirtualBox придется вводить логин/пароль. По умолчанию это
admin /
admin . Сохраняем наш файл.
Это еще не все. Теперь надо настроить WEB-сервер самого VB, не путать с HTTP-сервером. Идет в папку
/etc/default/ и создаем там файл
virtualbox и пишем там:
VBOXWEB_USER=vboxuser
VBOXWEB_HOST=localhost
VBOXWEB_PORT=18083
Как вы понимаете
vboxuser это логин моего юзера, который в группе
vboxusers и он же прописан в конфиг файле
config.php . Не забываем рестартануть вебсервер:
/etc/init.d/vboxweb-service restart
По идее после этих манипуляций все должно заработать. Переходим в браузере по IP адресу нашего Debian и видим следующую картину:
Чтобы поменять язык на Русский нужно перейти в меню
File -> Preferences -> Language -> Русский -> ОК . Локализация завершена. На вкладке "
Общие " вы можете изменить путь до папки для машин. У меня например на реальном сервере создан отдельный раздел. Там я держу все виртуальные машины и жесткие диски к ним. На вкладке "
Сеть " можно добавлять/редактировать/удалять виртуальные сети хоста. Вот например сейчас во время написания статьи, у меня почему-то автоматом не создался такой хост. Но в этом нет ничего страшного. Нажимаем на иконку "сетевая карточка с плюсиком" и все. Хост добавлен и уже все прописано, даже редактировать ничего не надо.
Продолжение следует...
Written by: Строкин Владимир aka Va-Bank
Комментарии
11 комментария(ев)Дата: ПТ, 14/10/2011 - 00:56
Я знаю, что это Ва-банк написал, но автора у статьи нет
Дата: ПТ, 14/10/2011 - 02:49
Блин, забыл подписать
Вот давно по-моему уже у админов просил, чтобы автор статьи выводился на экран
Дата: ПТ, 14/10/2011 - 02:22
Уважаемый Автор, не можешь ли подсказать мне, почему мой VB 4 на Виндовс 7 не хочет распознавать USB порты и дает возможность выделять видеокарты только 128 мб,хотя она у меня на 1024?
Дата: ПТ, 14/10/2011 - 02:54
Нет не могу подсказать, ибо не знаю в чем дело. У меня на винде, когда открыта виртуальная ОС, то при вставке флешки виртуалка перехватывает USB. Иногда это даже бесит
Хотя есть мысль. Чтобы были видны USB, надо добавить USB фильтр, причем пустой, чтобы все подключаемые USB видеть. По второму вопросу я даже не знаю. У меня на серваке вообще встроенная видяха, честно, даже не знаю сколько метров. Но что на нем 256 максимум, что на моей WIn7_64bit тоже 256 мегабайт предел. Вообще не вижу смысла ставить больше. Даже для установленной Windows 8 я выделил 32 метра всего. Нужно просто не делать оценку железа, тогда тема аэро прекрасно будет работать.
Дата: СБ, 15/10/2011 - 05:57
Видяхи мне больше нужно было для того,что у меня предустановленная "косая" 7-ка Хоум Бесит и на нее не становятся мои любимые игры(я в них целый год мечтал поиграть,пока в армейке был),хотел на виртуальной ХР поираться
... но уже не надо,ибо работа много времени отнимает(((
А подсказать/скинуть инструкцию/мануал/книгу по Вирт.Боксу не сможешь, так чтобы в ней как у Фленова все объяснялось? ))
Дата: ПТ, 14/10/2011 - 22:54
Дата: СБ, 15/10/2011 - 06:00
Благодарю за разъяснения, обязательно попробую.
Дата: ПТ, 14/10/2011 - 07:53
2Va-Bank
Ай, молодца! Думал, твоя статья не скоро увидит свет
А как выводить автора, если у него может даже и не быть аккаунта на нашем сайте? Тем более автор созданного материала на сайте почти всегда не является автором самой статьи. =)
Дата: СБ, 15/10/2011 - 18:24
Дата: ПТ, 21/10/2011 - 19:04
Спасибо автору статьи! Очень хорошо написано!!!
Но возникает проблемка:
- при подключении флешки в USB порт, если ВМ не запущена,
то Дебиан ее автомонтирует, но если запущена ВМ, то
в Дебиан она размонтируется, а в ВМ автомонтируется
- если отключить флешку (в безопасном режиме) в ВМ, то она
и в Дебиан отключается и при повторном подключении
автомонтируется в ВМ, а в Дебиан нет.
Как сделать так чтобы флешка монтировалась в обоих случаях
и размонтировалась в зависимости какая ось ее размонтирует?