5 дек. 2012 г.

RedMine on Oracle Linux

В связи с сильной путаницей между сотрудниками в обязанностях, потребовался в компании менеджер проектов. На Microsoft Team Foundation денег естественно жалко. Но замена есть и она очень даже хороша - Redmine
Redmine — открытое серверное веб-приложение для управления проектами и задачами (в том числе для отслеживания ошибок). Redmine написан на Ruby и представляет собой приложение на основе широко известного веб-фреймворка Ruby on Rails. Распространяется согласно GNU General Public License.
Так нам его описывает википедия. Как оказалось установить Redmine не так то и просто, также усложняется если ставить на Oracle Linux. Помучившись пару дней я все же наладил работу системы. Решил сделать заметку на память.


Проверим установлен ли мускул и апач.
[root@test]# yum list installed | grep mysql[root@test]# yum list installed | grep httpd

Если нет то установите и на стройте, далее установим необходимые пакеты.
[root@test]# yum install mysql-server ruby rubygems ruby-devel mysql-devel gcc-c++ curl-devel httpd-devel apr-devel apr-util-devel

Включим автозагрузку мускула и апача.
[root@test]# chkconfig httpd on[root@test]# chkconfig mysqld on

Сделаем правило для фаервола.
[root@test]# nano /etc/sysconfig/iptables
-A INPUT -m state –state NEW -m tcp -p tcp –dport 3000 -j ACCEPT

Создадим группу и пользователя (это надо делать если хотите запустить систему на встроенном веб-сервере webrick).

[root@test]# groupadd redmine[root@test]# useradd -g redmine redmine[root@test]# passwd redmine

Скачаем redmine, ссылку с официального сайта можете посмотреть сами.
[root@test]# wget http://rubyforge.org/frs/download.php/76589/redmine-2.1.4.tar.gz

Распакуем
[root@test]# tar -xzvf redmine-2.1.4.tar.gz

Сделаем каталог где хотите и скопируем в него файлы
[root@test]# mkdir /var/www/redmine[root@test]# cp -R redmine-2.1.4/* /var/www/redmine/

Настроим мускул, зададим пароль для рута.
[root@test]# /usr/bin/mysql_secure_installation

Запустим его и подключимся.
[root@test]# service mysqld start[root@test]# mysql -u root -p

Теперь нужно подготовить БД для работы redmine и пользователя
[root@test]# create database redmine character set utf8; 
[root@test]# create user 'redmine'@'localhost' identified by 'my_password'; 
[root@test]# grant all privileges on redmine.* to 'redmine'@'localhost';[root@test]# grant all privileges on redmine.* to 'redmine'@'localhost' identified by 'my_password';[root@test]# exit

Займемся установкой и настройкой.

[root@test]# cd /var/www/redmine/

Укажем настройки для подключения к БД
[root@test]# cp config/database.yml.example config/database.yml
[root@test]# nano config/database.yml

production:
adapter: mysql
database: redmine
host: localhost
username: redmine
password: my_password


Для оптимизации работы redmine можно использовать на выбор несколько cgi протоколов взаимодействия апача и приложения, я решил использоваться FastCGI. Поэтому перед тем как устанавливать гемы для руби, скачаем и установим FastCGI.


Подключим репозиторий EPEL, так как в репах OL нет этих пакетов.
[root@test]# rpm -Uvh http://mirror.yandex.ru/epel/6/x86_64/epel-release-6-7.noarch.rpm
[root@test]# yum install fcgi-devel libtool


Скачаем и установим сам протокол.
[root@test]# wget http://www.fastcgi.com/dist/fcgi-2.4.0.tar.gz tar 
[root@test]# tar -zxvf fcgi-2.4.0.tar.gz 
[root@test]# cd fcgi-2.4.0 
[root@test]# ./configure 
[root@test]# make 
[root@test]# make install

Теперь надо поставить модуль для апача.
[root@test]# cd /usr/local/src/ 
[root@test]# wget http://www.fastcgi.com/dist/mod_fastcgi-current.tar.gz [root@test]# tar -zxvf mod_fastcgi-current.tar.gz [root@test]# cd mod_fastcgi-2.4.6/ [root@test]# cp Makefile.AP2 Makefile [root@test]# make top_dir=/usr/lib/httpd [root@test]# make install top_dir=/usr/lib/httpd

Создадим конфиг апача.
[root@test]# nano /etc/httpd/conf.d/mod_fastcgi.conf
LoadModule fastcgi_module modules/mod_fastcgi.so 
<IfModule mod_fastcgi.c> 
FastCgiIpcDir /tmp/fcgi_ipc/ 
</IfModule>


Нужно сделать каталог и дать на него права
[root@test]# mkdir /tmp/fcgi_ipc/
[root@test]# chown -R apache.apache /tmp/fcgi_ipc/ 
[root@test]# chmod -R 755 /tmp/fcgi_ipc/cp 

Теперь надо установить необходимые гемы, с этим возникает много проблем, так как разные гемы друг с другом не совместимы, если здесь что-то не так, то значит ошибся и вам придется поэкспериментировать с версиями. На сайте redmine есть табличка совместимостей.
[root@test]# gem install rails -v=3.2.8
[root@test]# gem install rack -v=1.1.3
[root@test]# gem install mysql
[root@test]# gem install -v=0.6.1 i18n
[root@test]# gem install passenger
[root@test]# gem install fcgi -v=0.8.8
[root@test]# gem install bundler


Теперь надо установить пассенджер для совместной работы апача и redmine.
[root@test]# passenger-install-apache2-module

Теперь можно начать собирать redmine
[root@test]# cd /var/www/redmine/

Прочитаем Gemfile, его я не менял.
[root@test]# bundle install --without development test postgresql sqlite rmagick

Сгенерируем сессию
[root@test]# rake generate_secret_token

Подключим нашу БД
[root@test]# RAILS_ENV=production rake db:migrate

Создадим дефолтные данные
[root@test]# RAILS_ENV=production REDMINE_LANG=ru rake redmine:load_default_data

Обязательно нужно добавить строчку
[root@test]# nano config/environment.rb
ENV['RAILS_ENV'] ||= 'production'

Так как мы решили использоваться апач вместо встроеного вебрика, нужно создать виртуальный сервер на апаче.

[root@test]# nano /etc/httpd/conf/httpd.conf
Listen *:3000
<VirtualHost *:3000>
ServerName redmine
DocumentRoot /var/www/redmine/public/
ErrorLog /var/logs/httpd/redmine_error.log
<Directory "/var/www/redmine/public/">
Options Indexes ExecCGI FollowSymLinks 
Order allow,deny 
Allow from all 
AllowOverride all 
</Directory> 
</VirtualHost>


Теперь нужно настроить пару конфигурационных фалов redmine. Все файлы там есть, надо их переименовать.

[root@test]# cp /var/www/redmine/public/dispatch.fcgi.example /var/www/redmine/public/dispatch.fcgi
[root@test]# cp /var/www/redmine/public/htaccess.fcgi.example /var/www/redmine/public/.htaccess

Теперь надо раздать права на каталоги, пользователю апач. Можете создать другого пользователя и включить его в группу, но я не стал над этим заморачиваться.

[root@test]# mkdir tmp tmp/pdf public/plugin_assets 
[root@test]# chown -R apache:apache files log tmp public/* files vendor
[root@test]# chmod -R 755 files log tmp public/plugin_assets files vendor


Запускаем апач.
[root@test]# /etc/init.d/httpd start

Все ошибки пишутся в /var/log/httpd/error.log. Надеюсь все правильно расписал на память)))

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

Отправить комментарий