вторник, 31 июля 2012 г.

Настройка связки Redmine + ISPManager на CentOS 6.3

Когда я решил написать статью по установке Redmine на CentOS, как я уже и говорил, я даже представить себе не мог, сколько мне придется потратить на это времени. Единственное, на что была надежда, так это на то, что труд этот не пропадет за зря и пригодится возможно не только мне. Однако, опубликовав статью из 3 частей у себя на блоге, я не думал, что данная тема обретет такую популярность! Дабы не останавливаться на достигнутом, тему по установке решил продолжить Руслан Евчев, который предоставил свою версию на ваш суд. По сравнению с моей версией, в данной статье пойдет речь об установке все того же Redmine 2.* (на текущий момент версия 2.0.3) под CentOS 6.3 64 бит, но в данном случае с использованием ISPManager.
Она является более простой по сравнению с той, что описывал я. Поэтому, думаю что данный мануал будет для вас более интересным, в особенности тем, кто экономит собственное время.
Статья предоставлена в формате "as is", то есть без моего вмешательства в содержание статьи, за исключением отображения стилей.

Зайду из далека и пролью свет на некоторые моменты, с которыми вы можете столкнуться при настройке данной связки.
Первое и самое важное – установка Gem's, которые последнее время ругаются на все сборки CentOS от 6.2 и выше. Проблема скорее изначально в том, что часть репозитория rubygems.org переехало на новые хосты и потому в течении пары дней все приходилось искать в ручную и заниматься бесконечным чтением логов ошибок Ruby на соответствующие Gem's.
Второе – заморозка версии Ruby на той, что есть у нас, одни говорят что это необходимо, другие наоборот – заморозка обновления может привести к конфликту версий.
Перелопатив порядка двух сотен мануалов по инсталляции Redmine в общем и привязки его через ModPassenger Nginx + ISPManeger, я выделил основные и самые важные пункты, которые избавят вас от нужды "гугления".
Если вам что-то неясно, стоит вернуться к предыдущему посту и прочесть его еще раз.

1. Ruby

На машине, что я настраивал уже до меня подняли Apache, nginx, MySQL, ISPManager Lite, FastCGI. Все это связано и работает стабильно, и вот, дабы не нарушить эту связку и не снести все что там уже поднято, пойдем обходными путями. Сперва установим Ruby и конечно же Rails. Так как сборка CentOS х64, проверим наличие пакетов на стандартных репозитариях.
[root@redmine root]# yum search ruby
Система выдаст нам достаточно обширный список пакетов. То что нам понадобится смотри ниже.
[root@redmine root]# yum install ruby-devel ruby-docs ruby-libs ruby-mysql ruby-rdoc
После этого можно качать пакет с исходниками Ruby и собирать. Все в точности как по инструкции в статье "Установка Redmine на CentOS 6.2 (Часть 1)" раздел "3. Установка Ruby". Проверяем установку Ruby:
[root@redmine root]# ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]

2. RubyGem's и Rails

Теперь установим RubyGem’s и Rails. С данного пункта могут пойти «Проектирования велосипеда», так что внимательно. Подключаем сторонний репозиторий и ставим с него RubyGem's:
[root@redmine root]# cd /tmp
[root@redmine tmp]# wget packages.endpoint.com/endpoint-rpmsign.pub
[root@redmine tmp]# rpm --import endpoint-rpmsign.pub
[root@redmine tmp]# wget packages.endpoint.com/rhel/5/os/x86_64/endpoint-repo-1.0-1.x86_64.rpm
[root@redmine tmp]# yum localinstall endpoint-repo-1.0-1.x86_64.rpm
[root@redmine tmp]# yum install ruby-enterprise-rubygems
Установим Rails.
[root@redmine tmp]# gem install -v=2.3.5 rails

3. RubyOnRalis + ISPManager

Теперь подключим RubyOnRalis к ISPManager. Как оказалось ISPManager поддерживает RoR из стандартной коробочной версии и здесь выдумывать очередной экологический транспорт не пришлось. По началу ставим Phusion Passenger™
[root@redmine tmp]# gem install passenger
[root@redmine tmp]# yum install gcc-c++ httpd-devel
[root@redmine tmp]# passenger-install-apache2-module
Если все пройдет как должно в конце процеса сборки модуля для apache Вы увидите:
The Apache 2 module was successfully installed.

Please edit your Apache configuration file, and add these lines:

   LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.15/ext/apache2/mod_passenger.so
   PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.15
   PassengerRuby /usr/local/bin/ruby

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.
Скопируйте в /etc/httpd/conf.d/passenger.conf следующее:
   LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.15/ext/apache2/mod_passenger.so
   PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.15
   PassengerRuby /usr/local/bin/ruby
Перезагрузим апач.
[root@redmine tmp]# service httpd restart
Также необходимо установить поддержку mysql для ruby
[root@redmine tmp]# yum install mysql-devel.x86_64
[root@redmine tmp]# gem install mysql
Подключим модуль RoR к ISP простым добавление строки к конфиг ISPM Lite.
[root@redmine tmp]# vi /usr/local/ispmgr/etc/ispmgr.conf
в конец файла добавляем
path rails /usr/local/bin/rails
Теперь при создании нового домена в админке ISPM у нас появится пунктик Ruby on Rails. Создаем нового юзверя в ISP и добавляем домен для него, например, redmine.it.org (ваш может называться как ни будь иначе).

4. Установка самого Redmine

[root@redmine tmp]# cd /var/www/redmine.it.org
Удаляем все содержимое каталога. Будьте внимательны!!! Пропустите точку и будет очень весело, только не знаю кому...
[root@redmine redmine.it.org]# rm -rf ./*
Качаем Redmine последней версии. Для этого переходим по ссылке
[root@redmine redmine.it.org]# wget http://rubyforge.org/frs/download.php/76259/redmine-2.0.3.tar.gz
[root@redmine redmine.it.org]# tar xvzf redmine-2.0.3.tar.gz
[root@redmine redmine.it.org]# mv redmine-2.0.3/* .
[root@redmine redmine.it.org]# rm -rf redmine-2.0.3*
В качестве БД я использовал mysql, на сколько я знаю есть какие-то траблы с русским языком при использовании mysql как БД для Redmine, но мне это было не важно (пользоваться им будут не русскоговорящие). Ничто Вам не помешает в качестве бд использовать PostgreSQL. Подразумевается что БД уже создана и у вас на руках есть все необходимые данные.
Ок, теперь возвращаемся в консоль в директорию redmine, и копируем пример конфига БД.
[root@redmine redmine.it.org]# cd /var/lib/redmine
[root@redmine redmine]# cp config/database.yml.example config/database.yml
Редактируем config/database.yml
[root@redmine redmine]# vi config/database.yml
Там все достаточно просто, вбиваете нужные данные для подключения к БД, а также тип БД. Будет что-то на подобии такого:
production:
  adapter: mysql
  database: redmine_test
  host: localhost
  username: redmine_test
  password: redmine_test
  encoding: utf8
development:
  adapter: mysql
  database: redmine_test
  host: localhost
  username: redmine_test
  password: redmine_test
  encoding: utf8
И непосредственно устанавливаем Redmine
[root@redmine redmine]# rake generate_session_store
[root@redmine redmine]# RAILS_ENV=production rake db:migrate
[root@redmine redmine]# RAILS_ENV=production rake redmine:load_default_data

Если есть проблемы с установкой данной связки, о них можно спросить, связавшись со мной в скайпе himik-odessa. В коментариях к добавлению писать капсом "REDMINE". Так же вы можете оставлять свои комментарии ниже данной статьи.

Спасибо Егору Бабенко за его труд и ман, из которого я подчерпнул львиную долю информации.

Автор статьи: Руслан Евчев.

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