Стала задача установить хорошую современную систему управления задачами и багтрекинга. Выбор пал на 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 postgresql 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. С MySQL у меня была как минимум одна проблема: с кодировкой. Неправильно работали длины полей для русских текстов в 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 http://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
Спасибо, очень полезная статья
У меня проблема — возникает такая ошибка:
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 уже стоит.
Не подскажете, в чём дело?
Спасибо за статью, думаю она многим поможет. Хочу поделиться RMClient для тех, кто планирует проекты с помощью Redmine. Мы разработали таймер для учета времени в системе Redmine, он доступен для скачивания после короткой регистрации. Будем очень признательны за его использование и помощь в тестировании.