Всем пламенный привет после небольшого моего отсутствия :)
Сразу с места в карьер: я все свои разработки пишу в основном в windows. Это, конечно имеет как ряд преимуществ (лично для меня), так и ряд неудобств.
Недавно мне пришла в голову идея - почему бы не сделать сервер разработки приложений при помощи виртуальной машины. А что - это удобно. Мы получим нативную среду для приложений и избавимся от многих неудобств.
И тогда я установил Kubuntu в виртуальной машине VirtualBox и установил там LAMP и Rails. Сейчас по-порядку расскажу, как все это сделать.
Итак - первое, что нужно сделать - это установить саму виртуальную машину. Я воспользовался VirtualBox, так как она легкая, удобная и к тому же бесплатная. Я не буду рассказывать как установить Kubuntu под VirtualBox - это легко и достаточно материалов по этой теме есть в интернете.
Теперь, когда мы имеем установленную Kubuntu под виртуалкой, нам нужно сделать форвардинг портов из гостевой ОС Kubuntu в хост-ОС Windows, чтобы мы могли из windows соединяться с Kubuntu например по ssh или по http. Делается это так: создаем forwarding.bat файл в директории С:\Program Files\Sun\xVM VirtualBox\ и пишем в него следующие строки (kubuntu - это название вашей виртуальной машины):
Форвардинг апача с 80 на 8888 порт:
VBoxManage setextradata kubuntu "VBoxInternal/Devices/pcnet/0/LUN#0/Config/apache/HostPort" 8888
VBoxManage setextradata kubuntu "VBoxInternal/Devices/pcnet/0/LUN#0/Config/apache/GuestPort" 80
VBoxManage setextradata kubuntu "VBoxInternal/Devices/pcnet/0/LUN#0/Config/apache/Protocol" TCP
Форвардинг монгрела с 3000 на 3000 порт:
VBoxManage setextradata kubuntu "VBoxInternal/Devices/pcnet/0/LUN#0/Config/mongrel/HostPort" 3000
VBoxManage setextradata kubuntu "VBoxInternal/Devices/pcnet/0/LUN#0/Config/mongrel/GuestPort" 3000
VBoxManage setextradata kubuntu "VBoxInternal/Devices/pcnet/0/LUN#0/Config/mongrel/Protocol" TCP
Форвардинг ssh с 22 на 2222 порт:
VBoxManage setextradata kubuntu "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 2222
VBoxManage setextradata kubuntu "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" 22
VBoxManage setextradata kubuntu "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" TCP
Все. Теперь останавливаем виртуальную машину, если она запущена, затем сохраняем forwarding.bat и запускаем его. После этого снова запускаем виртуальную машину. Кстати, в настройках виртуальной машины соединение по сети должно быть установлено через NAT.
Сейчас нам нужно установить ssh сервер, чтобы мы смоги соединяться в гостевой ос из хост-ос по ssh. В консоли пишем:
$ sudo apt-get install openssh-server
Ssh будет установлен и запущен. Давайте соединимся с гостевой ОС. Для этого используем клиент Putty:

Отлично - соединились. Если все же не получилось соединиться - попробуйте перезагрузить компьютер.

Итак, соединение с гостевой ОС Kubuntu по ssh теперь работает. Приступим к установке Ruby и Rails.
Установка Ruby и Rails в Kubuntu
Установим Ruby:
$ sudo apt-get install ruby ruby1.8-dev libopenssl-ruby1.8 rdoc ri irb build-essential wget ssl-cert
Потом установим дополнительные пакеты gem’ы для Ruby:
$ cd /tmp
$ wget http://rubyforge.org/frs/download.php/57643/rubygems-1.3.4.tgz
$ tar zxf rubygems-1.3.4.tgz
$ cd rubygems-1.3.4
$ sudo ruby setup.rb
$ sudo ln -sfv /usr/bin/gem1.8 /usr/bin/gem
Далее, установим Mongrel. Он работает быстрее, чем дефолтный веб-сервер WEBrick. И к томуже - у меня так и не получилось сделать форвардинг 3000 порта, когда был WEBrick - я не стал разбираться отчего это происходит - просто установил Mongrel. Итак - устанавливаем:
$ sudo gem install mongrel
Теперь по команде script/server будет запускаться именно Mongrel. Давайте создадим пустое rails-приложение, чтобы проверить что все работает.
Переходим в домашнюю директорию:
$ cd $HOME
И создаем Rails-приложение:
$ rails mycoolapp
Потом запускаем Mongrel
$ cd mycoolapp
$ script/server
Открываем браузер в Kubuntu и набираем http://localhost:3000/. Если все работает - то вы увидите дефолтную страничку Rails-приложения. Все, можно работать :).
Но - можно установить еще кое что.
Установка LAMP в Kubuntu
Давайте установим еще и LAMP - не помешает. Кому помешает - ставьте только Mysql и не читайте дальше :)
$ sudo tasksel install lamp-server
И PHPMyAdmin - пригодится:
$ sudo apt-get install phpmyadmin
После установки о будет находиться по адресу http://localhost/phpmyadmin на гостевой ОС, или по адресу http://localhost:8888/phpmyadmin на хост-ОС.
Спасибо Константину Тумалевичу за помощь в подготовке статьи
Also interesting
Tags: kubuntu, lamp, rails, ruby, virtualbox, виртуализация
Спасибо за статью. Было интересно :)
как раз то, что мне надо =) огромное спасибо, все просто и доходчиво =)
Интересно.
Есть проект Virtual Rails, что-то подобное http://www.virtualrails.org/
Лично для себя выбрал cygwin под windows, гораздо удобнее.
А linux еще удобнее будет. Я выбрал Ubuntu для себя)
Конечно удобнее :)
Просто на моей домашней машинке проблема с драйверами на видеокарту, вот там и удобно cygwin + gvim, а так да, только Linux!