Установка Redmine на Debian с СУБД Postgres. Работа по HTTPS.

Стала задача установить хорошую современную систему управления задачами и багтрекинга. Выбор пал на Redmine. Фактически, Remine — это улучшенный Trac. Написан Redmine на Ruby. Основное отличие от Trac по функционалу — работа с несколькими разными проектами в связке. Кроме того, у Redmine намного шире функционал, и сделан он добротней.

Как обычно, для установки некоего нового программного обеспечения в Линуксе сразу идем в Гугл и ищем подходящие HOWTO. По Редмайну я нашел несколько разных HOWTO, из которых каждый понемногу мне помог (см. ссылки внизу).

Установка

Сначала ставим нужные пакеты.

# apt-get install ruby rake ruby1.8-dev rubygems libmysql-ruby librmagick-ruby ruby-pkg-tools build-essential libdbd-pg-perl libapache-dbi-perl libapache2-mod-perl2 libdigest-sha1-perl postgresql-common postgresql-contrib-8.3 libpgsql-ruby1.8 libpgsql-ruby postgresql-server-dev-8.3 libopenssl-ruby

Вроде ничего не упустил :)

Далее устанавливаем ruby gems.

# gem install rails mongrel mongrel_cluster

Добавляем путь к gems в переменную PATH. Для этого редактируем файл /etc/profile. Добавляем путь в конец  переменной (два раза в файле, перед путем двоеточие). У меня получилось так:

# head -n 8 /etc/profile
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), …).if [ «`id -u`» -eq 0 ]; then
PATH=»/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/var/lib/gems/1.8/bin»
else
PATH=»/usr/local/bin:/usr/bin:/bin:/usr/games:/var/lib/gems/1.8/bin»
fi

Подготавливаем базу

Я решил использовать Postgres. С у меня была как минимум одна проблема: с кодировкой. Неправильно работали длины полей для русских текстов в UTF-8.

Из-под рута:

# su postgres

#createuser redmine —no-superuser —no-createdb —no-createrole —login —pwprompt –encrypted

#createdb —owner=redmine —encoding=utf-8 redmine

#exit

Пароль для пользователя введен redmine.

Скачиваем Redmine

На момент написания записи самый свежий стабильный релиз был 0.8.

# mkdir /var/www/rails_apps

# cd /var/www/rails_apps

# svn co ://redmine.rubyforge.org/svn/branches/0.8-stable redmine-0.8

Все команды далее выполняются из каталога  /var/www/rails_apps/redmine-0.8.

# cd /var/www/rails_apps/redmine-0.8

Конфигурируем доступ к базе

Создаем файл config/database.yml со следующим содержимым:

production:
adapter: postgresql
database: redmine
host: localhost
username: redmine
password: redmine

Конфигурируем SMTP

# cp config/email.yml.example config/email.yml

# vim config/email.yml

Внесите изменения в соответствии с настройками вашего SMTP-сервера.

Заполняем базу данных

# rake db:migrate RAILS_ENV=»production»

# rake redmine:load_default_data RAILS_ENV=»production»

Проверим, что все поставилось хорошо:

# mongrel_rails start —environment=production

Redmine должен работать по адресу http://localhost:3000. Для авторизации используйте логин и пароль admin. Не забудьте его позже своевременно изменить.

Настройка Redmine на работу через apache and mongrel_cluster по HTTPS

Создайте файл config/mongrel_cluster.yml следующего содержания:

group: www-data
log_file: log/mongrel.log
port: «9000»
cwd: /var/www/rails_apps/redmine-0.8
environment: production
user: www-data
pid_file: log/mongrel.pid
servers: 2

Проверьте, что все ОК:

# mongrel_rails cluster::start

Теперь вы должны получить доступ к Redmine на портах 9000 и 9001.

Для того, чтобы кластер поднимался после ребута, выполняем:

# mkdir /etc/mongrel_cluster

# ln -s /var/www/rails_apps/redmine-0.8/config/mongrel_cluster.yml /etc/mongrel_cluster/redmine.yml

# cp /var/lib/ruby/gems/1.8/gems/mongrel_cluster-1.0.5/resources/mongrel_cluster /etc/init.d

# chmod +x /etc/init.d/mongrel_cluster

# /usr/sbin/update-rc.d -f mongrel_cluster defaults

Настраиваем apache2

# a2enmod proxy

# a2enmod proxy_http

# a2enmod proxy_balancer

# a2enmod rewrite

# a2enmod headers

Создайте файл /etc/apache2/sites-available/redmine со следующим содержимым:

NameVirtualHost *:443
<VirtualHost *:443>
ServerAdmin xxx@xxx.xx
ServerName redmine # Измените имя сервера, чтобы виртуальный хост подхватился!
DocumentRoot /var/www/rails_apps/redmine-0.8/public/
RequestHeader set X_FORWARDED_PROTO ‘https’

<Directory /var/www/rails_apps/redmine-0.8/public/>
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>

SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA;+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /var/www/conf/mobicon.crt
SSLCertificateKeyFile /var/www/conf/mobicon.key
<Location />
AuthType Basic
AuthName «Mobicon-Media»
AuthBasicProvider ldap
AuthLDAPUrl ldap://localhost/ou=people,dc=mobicon-media,dc=com?cn
Require ldap-group cn=mobicon,ou=groups,dc=mobicon-media,dc=com
SSLRequireSSL
</Location>

ProxyPass /images !
ProxyPass /stylesheets !
ProxyPass /javascripts !
ProxyPass /favicon.ico !
ProxyPass /static !
ProxyPass /holding !
ProxyPass /templates !
ProxyPass / balancer://redmine_cluster
ProxyPreserveHost On

<Proxy balancer://redmine_cluster>
BalancerMember http://127.0.0.1:9000
BalancerMember http://127.0.0.1:9001
Order allow,deny
Allow from all
</Proxy>

RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ balancer://redmine2_cluster%{REQUEST_URI} [P,QSA,L]

ErrorLog /var/log/apache2/redmine.error.log
LogLevel warn
CustomLog /var/log/apache2/redmine.access.log combined
ServerSignature On
AddDefaultCharset Off
</VirtualHost>

Затем выполните:

# ln -s /etc/apache2/sites-available/redmine /etc/apache2/sites-enabled/redmine

# /etc/init.d/apache2 restart

Все настроено и готово к использованию!

Ссылки

http://blog.josefsson.org/2008/10/17/redmine-on-debian-lenny-using-lighttpd/

http://www.drinkingbird.net/blog/articles/2008/02/27/setting-up-a-redmine-site-on-ubuntu

http://www.redmine.org/wiki/redmine/RedmineInstall

http://ubuntuforums.org/showthread.php?t=674598&highlight=redmine

http://www.drinkingbird.net/blog/articles/tag/redmine

Установка Redmine на Debian с СУБД Postgres. Работа по HTTPS.: 3 комментария

  1. У меня проблема — возникает такая ошибка:
    ws-0186:~/redmine-0.8# rake db:migrate RAILS_ENV=”production”
    (in /root/redmine-0.8)
    Missing the Rails 2.1.2 gem. Please `gem install -v=2.1.2 rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.

    Запускаю с переменной окружения:
    ws-0186:~/redmine-0.8# RAILS_GEM_VERSION=2.3.3 rake db:migrate RAILS_ENV=”production”
    (in /root/redmine-0.8)
    Missing the Rails 2.3.3 gem. Please `gem install -v=2.3.3 rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.
    хотя 2.3.3 уже стоит.
    Не подскажете, в чём дело?

  2. Спасибо за статью, думаю она многим поможет. Хочу поделиться RMClient для тех, кто планирует проекты с помощью Redmine. Мы разработали таймер для учета времени в системе Redmine, он доступен для скачивания после короткой регистрации. Будем очень признательны за его использование и помощь в тестировании.

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