Один из старых клиентов, для которых я разрабатывал движок, решили переехать к новому хостеру. Путем недолгих изысканий был выбран VPS хостинг от Agava, план VPS Basic. В этой заметке я вкратце опишу процесс развертывания Rails-приложения на сервере Агавы с использованием Passenger (он же mod_rails). Для развертывания мы выбрали сервер под управлением операционной системы CentOS 5.2, контрольная панель ISPManager Lite.
Установка GCC
Сразу после регистрации сервера ва потребуется установить GNU C++ Compiler. Когда я первый раз настраивал аккаунт на Агаве он был уже установлен, однако на новом аккаунте он почему-то отсутствовал. Поэтому его потребовалось установить:
yum install gcc-c++
При установке может возникнуть ошибка Error: Missing Dependency: kernel-headers >= 2.2.1 is needed by package. В этом случае необходимо обновить пакет kernel-headers. Я его ставил отсюда:
wget ftp://ftp.pbone.net/mirror/ftp.centos.org/5.2/os/i386/CentOS/kernel-headers-2.6.18-92.el5.i386.rpm
rpm -i kernel-headers-2.6.18-92.el5.i386.rpm
После этого все должно ставиться нормально.
Установка Ruby
Изначально на сервер не установлен интерпретатор Ruby, поэтому нам необходимо его установить. Чтобы сделать эксперимент максимально интересным, будем ставить не стандартный MRI, а Ruby Enterprise Edition оптимизированный для работы с Passenger.
Качаем архив с официального сайта, распаковываем и запускаем инсталлятор:
./installer
Следуем инструкциям в инсталляторе, там все прозрачно.
Установка MySQL
Следующий этап - установка gem’а для работы с MySQL. Сам сервер MySQL уже установлен, нужно только поставить дополнительные библиотеки:
yum install mysql-devel
Затем ставим сам gem:
gem install mysql
Идем дальше
Установка RMagick
Следующий этап - установка ImageMagick и RMagick. Я при установке следовал инструкциям, предложенным в этой статье, копипастить не буду :)
Установка Passenger (mod_rails)
Затем приступаем к установке Passenger. Для начала нам надо поставить дополнительные библиотеки для Apache:
yum install httpd-devel
Затем, чтобы Passenger нашел все исполняемые файлы, которые идут в составе Ruby, нам надо добавить путь до бинарников в наш .bash_profile:
PATH=$PATH:$HOME/bin:/opt/ruby-enterprise-1.8.6-20080810/bin
Вам необходимо поставить тот путь, куда вы установили Ruby.
Затем ставим gem и модуль для Apache:
gem install passenger
passenger-install-apache2-module
Подключаем модуль в нашем файле httpd.conf (у меня он находится по адресу /etc/httpd/conf/httpd.conf):
LoadModule passenger_module /opt/ruby-enterprise-1.8.6-20080810/lib/ruby/gems/1.8/gems/passenger-2.0.3/ext/apache2/mod_passenger.so
PassengerRoot /opt/ruby-enterprise-1.8.6-20080810/lib/ruby/gems/1.8/gems/passenger-2.0.3
PassengerRuby /opt/ruby-enterprise-1.8.6-20080810/bin/ruby
Через панель управления создаем нового пользователя и под его именем создаем новый WWW-домен. В httpd.conf автоматически добавится VirtualHost. Чтобы по на этом хосте заработали рельсы, нам необходимо поменять DocumentRoot таким образом, чтобы он указывал на папку public в нашем проекте:
<VirtualHost 123.45.67.89:80>
ServerName mysite.ru
DocumentRoot /var/www/mysite/data/www/mysite.ru/public
SuexecUserGroup mysite mysite
CustomLog /var/www/httpd-logs/mysite.ru.access.log combined
ErrorLog /var/www/httpd-logs/mysite.ru.error.log
ServerAlias www.mysite.ru mysite.ru
ServerAdmin webmaster@mysite.ru
</VirtualHost>
Установка git
Для установки Git из исходников нам потребуются дополнительные библиотеки:
yum install gettext-devel expat-devel curl-devel zlib-devel openssl-devel
Поставив библиотеки, качаем и ставим сам git:
wget http://kernel.org/pub/software/scm/git/git-1.6.0.tar.gz
tar zxvf git-1.6.0.tar.gz
cd git-1.6.0
make all
make install
Как видите, все просто, с настройкой справится даже человек, не искушенный в настройке серверов (типа меня).
No comments:
Post a Comment