Skip to content

Redmine на CentOS 6.5

В данном посте рассказывается как поставить систему управления проектами Redmine на CentOS с сохранением БД в PostgreSQL. В качестве фронденда будет использоваться nginx в связке с Phusion Passenger. Поскольку установка тестовая, все будет располагаться на одной машине. Версии ПО по возможности используются последние на момент написания, поэтому применяется сборка из исходных кодов.

Последовательность установки:

  1. Ruby - интерпретируемый язык
  2. Node.js - JavaScript сервер
  3. Ruby on Rails - веб-фрэймворк на базе Ruby
  4. ImageMagick - библиотека для экспорта диаграмм Ганта в PNG
  5. Phusion Passenger - сервер приложений для Ruby on Rails
  6. nginx - веб-сервер
  7. PostgreSQL - сервер баз данных
  8. Redmine - система управления проектами

Процесс установки на CentOS:

Ruby

Устанавливаем репозиторий EPEL для дополнительных пакетов RPM

rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

Устанавливаем необходимые для сборки Ruby пакеты

yum groupinstall ‘Development Tools’
yum --enablerepo=epel -y install libyaml libyaml-devel readline-devel ncurses-devel
gdbm-devel tcl-devel openssl-devel db4-devel libffi-devel

Подготавливаем исходный код для сборки

mkdir -p rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
wget http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.1.tar.gz -P rpmbuild/SOURCES
wget https://raw.githubusercontent.com/hansode/ruby-2.1.x-rpm/master/ruby21x.spec -P rpmbuild/SPECS

Изменяем в файле спецификации версию Ruby на 2.1.1

nano rpmbuild/SPECS/ruby21x.spec
rubyver 2.1.1

Собираем RPM-пакет Ruby

rpmbuild -bb rpmbuild/SPECS/ruby21x.spec

Устанавливаем RPM-пакет

rpm -Uvh rpmbuild/RPMS/x86\_64/ruby-2.1.1-2.el6.x86_64.rpm

Проверяем установку Ruby и включенный в него менеджер пакетов Gem

ruby -v
gem -v

Node.js

Устанавливаем Node.js, т.к. он требуется для работы Ruby on Rails

yum --enablerepo=epel -y install nodejs

Ruby on Rails

Устанавливаем Ruby on Rails с использованием стандартного менеджера пакетов Gem

gem install bundler
gem install rails

Проверяем установку Ruby on Rails

rails -v

ImageMagick

Устаналиваем ImageMagick

yum -y install ImageMagick ImageMagick-devel libcurl-devel

Phusion Passenger

Устанавливаем сервер приложений через стандартный менеджер пакетов Gem

gem install passenger

Запускаем установщик, который скачает и скомпилирует nginx с модулем Phusion Passenger

passenger-install-nginx-module

Проверяем установку Phusion Passenger

passenger-memory-stats

nginx

Веб-сервер nginx был установлен с включенным модулем Phusion Passenger, по умолчанию его файл конфигурации лежит в /opt/nginx/conf/nginx.conf. Публикуем Redmine

nano /opt/nginx/conf/nginx.conf
server {
        listen 80;
        server_name www.redmine-fqdn.com;
        root /var/www/public;
        passenger_enabled on;
       }

закомментируем секцию с location

Скачиваем с сайта http://wiki.nginx.org/RedHatNginxInitScript скрипт загрузки nginx и помещаем его в папку /etc/init.d/ (не забываем указать права на исполнение chmod a+x /etc/init.d/nginx). Редактируем файл для указания правильного места расположения файлов nginx

nano /etc/init.d/nginx
nginx="/opt/nginx/sbin/nginx"
NGINX_CONF_FILE="/opt/nginx/conf/nginx.conf"

Включаем автозагрузку nginx

chkconfig nginx on

PostgreSQL

Устанавливаем репозиторий PostgreSQL

rpm -Uhv http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-centos93-9.3-1.noarch.rpm

Исключаем из основго репозитория CentOS поиск пакетов PostgreSQL

nano /etc/yum.repos.d/CentOS-Base.repo
[base]
exclude=postgresql*
[updates]
exclude=postgresql*

Устанавливаем PostgreSQL

yum install postgresql93-server postgresql93-devel

Инициализируем PostgreSQL и добавляем в автозагрузку

service postgresql-9.3 initdb
chkconfig postgresql-9.3 on
service postgresql-9.3 start

Переключаем на пользователя PostgreSQL и запускаем коммандную строку

su - postgres
psql postgres postgres

В коммандной строке PostgreSQL изменяем пароль стандартного пользователя postgre, создаем пользователя redmine и БД для redmine

ALTER USER postgres WITH PASSWORD 'password';
CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD 'password' NOINHERIT VALID UNTIL 'infinity';
CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine;

Разрешаем подключение с этой машины к PostgreSQL

nano /var/lib/pgsql/data/pg_hba.conf
local   all      all                            md5
host    all      all    127.0.0.1/32            md5

Применяем изменения к PostgreSQL

service postgresql-9.3 restart

Redmine

Создаем папку для Redmine

mkdir -p /var/www

Скачиваем с сайта http://www.redmine.org/releases/redmine-2.5.0.tar.gz архив с Redmine и копируем в эту папку. Создаем файл настроек БД Redmine из файла примера и правим его

cp /var/www/config/database.yml.example /var/www/config/database.yml
nano /var/www/config/database.yml
закомментируем все и оставляем только
production:
        adapter: postgresql
        database: redmine
        host: localhost
        username: redmine
        password: <password>

Устанавливаем требуемые для Redmine пакеты с использованием Bundle

cd /var/www/
bundle install --without development test

Генерируем рандомные ключи для шифрования куков Rails

rake generate_secret_token\

Подготавливаем БД для Redmine

RAILS_ENV=production rake db:migrate
RAILS_ENV=production rake redmine:load_default_data

Назначаем права для nginx для работы с Redmine

mkdir -p public/plugin_assets
chown -R nobody:nobody files log tmp public/plugin_assets
chmod -R 755 files log tmp public/plugin_assets

Запускаем nginx

service nginx start

Открываем в браузере FQDN или IP адрес машины, на которой установили Redmine и заходим под аккаунтом

login: admin
password: admin

Источник 1

Источник 2

Источник 3