четверг, 3 июня 2010 г.

RoR: связь Ruby On Rails и PostgreSQL

В продолжение предыдущих статей по Ruby On Rails опишу, как настроить этот замечательный фреймворк на взаимодействие с СУБД PostrgreSQL.

среда, 2 июня 2010 г.

RoR: связываем Ruby on Rails и Apache2

Про то, как установить Ruby On Rails, я писал в этой статье. Теперь же постараюсь описать, как запускать ROR-приложения под Apache2.
Итак, приступим.

вторник, 1 июня 2010 г.

Установка Ruby On Rails на Linux Debian (Ubuntu)

Расскажу о том, как ставить  фреймворк Ruby On Rails на Linux Debian (В случае с Ubuntu действия аналогичны).
Установка Ruby
а) Из репозитория:
sudo apt-get install ruby-full build-essential
б) Из исходников
Во-первых, надо установить пакеты, которые потребуются при компиляции:
sudo apt-get install build-essential libssl-dev libreadline5-dev zlib1g-dev
Затем скачиваем исходники в тарболе:
wget ftp://ftp.ruby-lang.org/pub/ruby/stable-snapshot.tar.gz
Распаковываем тарбол:
tar xzf stable-snapshot.tar.gz
Компилируем и устанавливаем:
$ cd ruby/
./configure
make
sudo make install
Проверяем работоспособность Ruby:
ruby -v
Должно появиться сообщение, подобное этому:
ruby 1.8.7p5000 (2009-02-22) [i686-linux]
Проверяем работоспособность библиотек:
ruby -ropenssl -rzlib -rreadline -e "puts :Hello"
В результате на экране должно появится следующее:
Hello
Установка RubyGems 
Установка через репозиторий:
Для этого необходимо выполнить следующую команду:
sudo apt-get install rubygems
Разработчки Rails не рекомендуют так делать. По их мнению, лучше устанавливать из исходников.
Установка RubyGems из исходников:
Для этого надо выполнить следующие действия:
$ cd ~
wget http://rubyforge.org/frs/download.php/45905/rubygems-1.3.2.tgz
tar xzvf rubygems-1.3.2.tgz
cd rubygems-1.3.2
sudo ruby setup.rb
sudo ln -s /usr/bin/gem1.8 /usr/bin/gem
Установка Rails
Установка с помощью RubyGems:
Это самый простой способ установить Rails. Для этого надо выполнить команду:
sudo gem install rails
В Ubuntu Karmic RubyGems устанавливает Rails не корректно, в этом случае можно воспользоваться установкой из репозитория через apt-get или aptitude
Установка из репозитория:
sudo apt-get install rails

понедельник, 31 мая 2010 г.

Ruby On Rails: Что это?

Итак, начнем знакомиться с Ruby On Rails.
Во-первых, открываем getting started и читаем:
Что такое Rails?
Rails - это фреймворк для разработки веб-приложений, написанный на языке Ruby. Он предназначен для облегчения программирования за счет допущений относительно того, что нужно каждому разработчику. Это приводит к тому, что программировать требуется намного меньше по сравнению с другими языками и фреймворками.
Rails делает предположение, что существует некий "лучший" путь разработки, и спроектирован таким образом, чтобы следовать этому пути. Как обещают разработчики, если мы выучим "путь Rails", то невероятно увеличим свою производительность. Если же попытаться применять какие-то другие пути к Rails, то ничего хорошего из этого не выйдет.
Философия Rails включает в себя несколько главных приципов:
1) DRY – “Don’t Repeat Yourself” - "Не повторяйтесь" - подразумевает, что писать один и тот же код снова и снова - плохо.
2) Convention Over Configuration - Соглашения превыше конфигурации - Rails делает предположения о том, что вы хотите сделать, и как, вместо того, чтобы заставлять вас править бесконечные файлы конфигурации.
3) REST - лучший подход для разработки веб-приложений. Организация приложения на стандартных возможностях http - лучший способ сделать дело.

суббота, 29 мая 2010 г.

Ruby ч1: Hello World, или знакомство с Ruby.

Захотелось мне узнать, что же за зверь такой фреймворк ROR. Но для того, чтобы это узнать, надо разобраться сначала с самим Ruby, как он хоть выглядит в принципе и как на нем писать:)
Итак, поехали.
У меня имеется тестовая виртуальная машина с Linux Debian.
Необходимо установить на нее Ruby. Для этого выполняем следующую команду:
aptitude install ruby libzlib-ruby rdoc irb
Что же мы ставим? Ruby - это сам язык ruby, libzlib-ruby - библиотека zlib для ruby, rdoc - инструмент для генерации документации на основе документов ruby, irb - коммандная строка ruby.
Когда все это установится, можно проверить работу ruby так, как написано здесь. Например, можно использовать Ruby как калькулятор:
irb(main):007:0> a = 3 ** 2
=> 9
irb(main):008:0> b = 4 ** 2
=> 16
irb(main):009:0> Math.sqrt(a+b) => 5.0
Или взглянем на то, как в Ruby определяются методы:
irb(main):010:0> def h
irb(main):011:1> puts "Hello World!"
irb(main):012:1> end
=> nil
Здесь мы определили метод h, который при своем вызове будет выводить на экран фразу "Hello World!",
Чтобы вызвать этот метод, достаточно всего лишь ввести h:
irb(main):013:0> h
Hello World!
=> nil
irb(main):014:0> h()
Hello World!
=> nil
На этом совсем предварительное знакомство с Ruby закончим. Если понадобится (а я уверен, что понадобится), то вернемся к этому в следующих статьях:)

пятница, 21 мая 2010 г.

Установка бесплатная панели управления сервером Webmin на Linux Debian

Из своего любопытства решил я посмотреть, какие бывают панели управления и конфигурации, как ими пользоваться. Причем хотелось найти именно бесплатную панель. Поэтому мой выбор остановился на Webmin. Как пишут ее создатели, webmin - это веб-интерфейс для системного администрирования unix-систем. Используя любой современный браузер, можно управлять аккаунтами пользователей, веб-сервером Apache, DNS и многим другим.
Тестировать webmin я решил на виртуальной машине с Linux Debian на борту.
О том, как надо устанавливать панель Webmin на Debian, можно почитать здесь - совсем ничего сложного.
Я выбрал установку через репозиторий, так как это дает возможность обновлять webmin намного проще, нежели скачивая каждый раз свежий deb-пакет. Кроме того, при установке из репозитория aptitude или apt-get сам разрешит все зависимости, не придется в ручную ставить пакеты типа perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl libmd5-perl.
Итак, добавляем репозиторий webmin в список репозиториев. Для этого надо добавить строчку "deb http://download.webmin.com/download/repository sarge contrib" в файл /etc/apt/sources.list.
После этого желательно установить gpg-key для этого репозитория. Выполняем для этого 2 команды:
wget http://www.webmin.com/jcameron-key.asc
sudo apt-key add jcameron-key.asc
Далее, обновляем список репозиториев и устанавливаем webmin:
sudo apt-get update
sudo apt-get install webmin
.
После того, как webmin установится на нашу систему, надо перебросить порт управления webmin'ом на виртуальную машину. Обычно это порт 10000. Как это сделать, я описал в предыдущей статье. Разумеется, если вы ставите webmin на реальную машину, ничего пробрасывать никуда не надо:)
И все, переходим на страницу https://localhost:10000, и видим приветствие webmin'a:

.

VirtualBox in Debian - проброс портов (port forwarding) на гостевую машину

Предыстория: решил я потестить панель управления хостингом Webmin. Установку самой панели я опишу в другой статье. В этой же постараюсь рассказать о том, как прокинуть порт, чтобы снаружи можно было зайти на веб-интерфейс этой панели.
При пробросе порта я руководстовался этим постом.
Решение:
Для порт форвардинга можно воспользоваться утилитой VBoxManage. Надо выполнить следующие команды:
$ VBoxManage setextradata "VBoxInternal/Devices/pcnet/0/LUN#0/Config/webmin/HostPort" 10000
$ VBoxManage setextradata <guestname> "VBoxInternal/Devices/pcnet/0/LUN#0/Config/webmin/GuestPort" 10000
$ VBoxManage setextradata &ly;guestname> "VBoxInternal/Devices/pcnet/0/LUN#0/Config/webmin/Protocol" TCP
Итак, здесь означает имя виртуальной машины, в нашем случае "debian-test". Напротив HostPort и GuestPort - порты, которые слушаются на главной и виртуальной машине. Т.е. те самые, который мы будем перебрасывать.
После этого остается только перезапустить VirtualBox.
Чтобы удостовериться, что все работает, можно выполнить следующую команду:
sudo netstat -nlt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:29209 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN
Мы видим, что порт 10000 находится в состоянии LISTEN, т.е. прослушивается. Зайдя через бразуер host-машины на адрес https://localhost:10000, мы попадаем на страничку Webmin-интерфейса.

В дополнении осталось так же заметить, что конфиги виртуальных машин лежат обычно здесь - ~/.Virtualbox/Machines/<virtualmachinename>/<virtualmachinename>.xml.