вторник, 8 января 2013 г.

redmine в centos5

Вообще есть офдока, в в которую можно подсматривать, но напрямую использовать будет только ламер, ибо там установка руби через make install clean.
Также есть более вменяемая дока CentOS 5 + ISPManager + Redmine, на которую и будем опираться.

Для начала, надо подготовить систему, поскольку штатная версия руби аж 2006 года.
# ruby -v
ruby 1.8.5 (2006-08-25) [x86_64-linux]

Это никуда не годится. Нужный нам руби 1.8.7  будет зваться ruby-enterprise

# cd ~
# wget packages.endpoint.com/endpoint-rpmsign.pub
# rpm --import endpoint-rpmsign.pub
# wget packages.endpoint.com/rhel/5/os/x86_64/endpoint-repo-1.0-1.x86_64.rpm
# rpm -Uvh endpoint-repo-1.0-1.x86_64.rpm
# yum install -y ruby-enterprise ruby-enterprise-rubygems

Тут надо проверить, что руби вообще корректно встал, потому что это бывает не всегда.
Запускаем
# ruby -v
-bash: ruby: command not found

Значит, у нас проблема. Правда правится несложно.
[root@ah-node1 ~]# whereis ruby
ruby: /usr/local/bin/ruby /usr/local/lib/ruby
[root@ah-node1 ~]# which ruby
/usr/bin/which: no ruby in (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/bin:/bin:/root/bin)

Теперь сам фикс
# ln -s /usr/local/bin/ruby /usr/bin/ruby
# ruby -v
ruby 1.8.7 (2009-12-24 patchlevel 248) [x86_64-linux], MBARI 0x6770, Ruby Enterprise Edition 2010.01

Теерь нам нужен rails
# gem install -v=2.3.5 rails

И снова может быть
-bash: gem: command not found
Фикс тот же.
# whereis gem
gem: /usr/local/bin/gem
# ln -s /usr/local/bin/gem /usr/bin/gem
# gem install -v=2.3.5 rails
Successfully installed rake-10.0.3
......

Всё поставлено.

Теперь ставим gem i18n версии ниже 0.4.0.0, так как версии 0.4.0.0 и выше вызывают проблемы.
# gem install -v=0.3.7 i18n

В качестве пускалки лучше использовать passenger, почему - уже было.

Тут 2 варианта работы: через апач и через нгинкс.
nginx
#yum install nginx-passenger (поставится из репы passenger)

Также можно сначала поставить оф. репу nginx
# wget http://nginx.org/packages/rhel/5/noarch/RPMS/nginx-release-centos-5-0.el5.ngx.noarch.rpm
# rpm -ivh nginx*

Примеры конфига есть тут и тут

apache
И снова 2 варианта, собирать модуль с passenger или ставить уже готовый

Уже готовый
# rpm -Uvh http://passenger.stealthymonkeys.com/rhel/5/passenger-release.noarch.rpm
# yum install mod_passenger

инсталлер сам подтянет всякие rubygem-passenger, rubygem-rack плюс автоматом сгенерится конфиг /etc/httpd/conf.d/passenger.conf, который при ручной сборке нужно создавать самим.

Сборка на месте
требуется поставить gcc
# gem install passenger
# yum install gcc-c++ httpd-devel
# passenger-install-apache2-module
плюс создать конфиг.

Делаем рестарт апачу, должно перезапуститься без проблем.

Если нам теперь нужна интеграция с ISPManager, открываем /usr/local/ispmgr/etc/ispmgr.conf и вписываем туда
path rails /usr/local/bin/rails 

перезапускаем панель
# killall ispmgr 

В возможностях будет ruby on rails показан как установленный но выключенный, включим.
Теперь у пользователей после активации cgi-bin должен появиться ruby on rails (при необходимости сначала разрешаем это пользователю) и создаём домен, куда будем ставить проект. Только учитываем, что путь будет .../site/public

Теперь ставим redmine
Переходим в каталог
качаем последнюю версию (с офсайта или свн)
из свн:

svn checkout http://redmine.rubyforge.org/svn/
или
svn checkout svn://rubyforge.org/var/svn/redmine

правим config/database.yml

Должно работать.
Если что, секцию про установку самого редмайна ещё подправлю.

QA
Нужен ли системный ruby?

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

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

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