Установка и настройка Redmine в Debian Squeeze с Ruby-on-Rails и Apache2-Passenger

Потребовалось поставить на одном сервере redmine для управления проектами. Сказано — сделано 😉

Сначала ставим необходимые пакеты:

warehouse:~# apt-get install mysql-server ruby rubygems rails libcurl4-openssl-dev libssl-dev zlib1g-dev apache2-prefork-dev libapr1-dev libaprutil1-dev apache2 libapache2-mod-fastcgi libfcgi-ruby1.8 libmysql-ruby libopenssl-ruby1.8 ruby-dev ruby libzlib-ruby rdoc irb libmysql-ruby libopenssl-ruby1.8

Создадим каталог, в котором будет лежать redmine:

warehouse:~# mkdir /var/redmine

Качаем исходники:

warehouse:~# wget http://rubyforge.org/frs/download.php/74128/redmine-1.1.1.tar.gz

распаковываем архив:

warehouse:~# tar zxf redmine-1.1.1.tar.gz

копируем файлы в папку

warehouse:~# cp -r redmine-1.1.1/* /var/redmine/

Поставим недостающие компоненты:

warehouse:~# gem install rails -v=2.3.5
warehouse:~# gem install rails —include-dependencies
warehouse:~# gem install rack -v=1.0.1
warehouse:~# gem install -v=0.4.2 i18n
warehouse:~# gem install passenger
warehouse:~# gem install mysql
warehouse:~# cd /var/redmine
warehouse:/var/redmine# rake generate_session_store

Скопируем пример конфигурационного файла:

warehouse:/var/redmine# cp config/database.yml.example config/database.yml

Создадим базу данных и пользователя redmine в mysql:

warehouse:/var/redmine# mysql -u root -p
mysql> create database redmine character set utf8;
mysql> create user ‘redmine’@’localhost’ identified by ‘my_password’;
mysql> grant all privileges on redmine.* to ‘redmine’@’localhost’;

Сконфигурируем доступ redmine к mysql в секции production:

warehouse:/var/redmine# mcedit config/database.yml

и укажем там логин-пароль mysql

production:
adapter: mysql
database: redmine
host: localhost
username: root
password: my_password
encoding: utf8

Теперь выполняем следующее:

warehouse:/var/redmine# RAILS_ENV=production rake db:migrate
warehouse:/var/redmine# RAILS_ENV=production rake redmine:load_default_data

На вопрос о выборе языка я указал английский:

Select language: bg, bs, ca, cs, da, de, el, en, en-GB, es, eu, fi, fr, gl, he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en] en
====================================
Default configuration data loaded.

И наконец запустим тестовый сервер

warehouse:/var/redmine# ruby script/server webrick -e production
=> Booting WEBrick
=> Rails 2.3.5 application starting on http://0.0.0.0:3000
/var/redmine/config/../vendor/rails/railties/lib/rails/gem_dependency.rb:119:Warning: Gem::Dependency#version_requirements is deprecated and will be removed on or after August 2010. Use #requirement
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2011-03-11 22:09:12] INFO WEBrick 1.3.1
[2011-03-11 22:09:12] INFO ruby 1.8.7 (2010-08-16) [i486-linux]
[2011-03-11 22:09:18] INFO WEBrick::HTTPServer#start: pid=16467 port=3000

Как видно, всё прошло успешно и запустилось 🙂

Теперь вторая часть — прикрутим redmine к вебсерверу Apache.

Установим passenger:

warehouse:~# /var/lib/gems/1.8/bin/passenger-install-apache2-module

Установщик у него умный, если чего-то не будет хватать, он подскажет. В моём случае всё необходимое было установлено, поэтому он принялся за сборку модуля passenger для Apache.

После отработки установщика получится модуль апача, который предстоит прописать в конфигурационных файлах:

The Apache 2 module was successfully installed.

Please edit your Apache configuration file, and add these lines:
LoadModule passenger_module /var/lib/gems/1.8/gems/passenger-3.0.5/ext/apache2/mod_passenger.so
PassengerRoot /var/lib/gems/1.8/gems/passenger-3.0.5
PassengerRuby /usr/bin/ruby1.8

After you restart Apache, you are ready to deploy any number of Ruby on Rails
applications on Apache, without any further Ruby on Rails-specific configuration!

Press ENTER to continue.

Сделаем то, что просит установщик 🙂

warehouse:~# mcedit /etc/apache2/mods-available/passenger.load

и добавим туда строчку:

LoadModule passenger_module /var/lib/gems/1.8/gems/passenger-3.0.5/ext/apache2/mod_passenger.so

warehouse:~# mcedit /etc/apache2/mods-available/passenger.conf

и добавим туда строчки:

PassengerRoot /var/lib/gems/1.8/gems/passenger-3.0.5
PassengerRuby /usr/bin/ruby1.8

После этого активируем модуль passenger:

warehouse:~# a2enmod passenger

Теперь добавим ещё один виртуальный хост:

warehouse:~# mcedit /etc/apache2/sites-available/redmine.local

и поместим в файл следующие строчки:

<VirtualHost *:80>
ServerName redmine.local
DocumentRoot /var/redmine/public
<Directory /var/redmine/public>
AllowOverride all
Options -MultiViews
</Directory>
</VirtualHost>

Только не забываем указать ваш хост и путь до redmine.

Создаём символическую ссылку:

warehouse:~# ln /etc/apache2/sites-available/redmine.local /etc/apache2/sites-enabled/redmine.local

Разрешим загрузку модуля rewrite:

warehouse:~# ln /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load

Последние штрихи:

warehouse:~# cp /var/redmine/public/htaccess.fcgi.example /var/redmine/public/.htaccess
warehouse:~# cp /var/redmine/public/dispatch.fcgi.example /var/redmine/public/dispatch.fcgi

Рестартуем апач:

warehouse:~# /etc/init.d/apache2 restart

И открываем redmine по указанному адресу. В моём случае это redmine.local. Теперь можно зайти в систему под администратором: логин — admin, пароль — admin. Пароль рекомендуется сменить 😉

На этом всё. Если у вас что-то не получилось в процессе установки — добро пожаловать в комментарии.

Автоматизация делопроизводства — задача не самая простая, но без этого в наше время никак. Приходится выкручиваться.

2 Comments

  1. А чем плохо так радикально вариант с apt-get install redmine ?

    Ну если за совсем свежим не гонишься ?

  2. Да, смысл именно в «свежести». Радикальный вариант также вполне рабочий 🙂

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *