среда, 30 сентября 2009 г.

nginx + phusion passenger

Как поднять сабжевую связку на примере redmine.

Поставить rails и rubygem.
Собрать nginx с поддержкой модуля passenger:
# passenger-install-nginx-module
в конфиге nginx'а в блоке http{} допишется:
passenger_root /usr/lib/ruby/gems/1.8/gems/passenger-2.2.5;
passenger_ruby /usr/bin/ruby;
Вписать виртуальный сервер, указав путь до папки public продукта,
в моём случае это выглядит так:
server {
        listen 80;
        server_name ec2-67-202-41-17.compute-1.amazonaws.com;
        root /usr/lib/ruby/gems/1.8/gems/redmine/public;
        passenger_enabled on;
    }
Собственно, если приложение уже было подготовлено, то всё должно заработать.
Памятка себе, как я готовил Redmine:

Стянул свежий redmine:
# svn co http://redmine.rubyforge.org/svn/trunk redmine
 
Закинул его в папку /usr/lib/ruby/gems/1.8/gems/
Обновил джем и поставил свежие рельсы:
# gem update --system
# gem install -v=2.3.4 rails

Завёл в mysql базу redmine в utf8 кодировке и сделал юзера под неё:
CREATE DATABASE redmine CHARACTER SET utf8;
GRANT ALL PRIVILEGES ON redmine.* TO redmine@localhost IDENTIFIED BY 'pass';

Скопировал config/database.yml.default в config/database.yml

В этом файлике прописал базу, юзера и пасс.

Произнёс заклинание:

# rake config/initializers/session_store.rb
# rake db:migrate RAILS_ENV="production"
# rake redmine:load_default_data RAILS_ENV="production"

Вторая строчка создаёт таблы, третья - забивает их данными.
Если не указать переменную RAILS_ENV, то rake попытается использовать рута без пасса для входа в базу и потерпит неудачу.

Комментариев нет: