Установка Redmine на CentOS 6.5 с PostgreSQL 9.3

В данном посте рассказывается как поставить систему управления проектами 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:

  1. 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
  2. Node.js
    Устанавливаем Node.js, т.к. он требуется для работы Ruby on Rails

    yum --enablerepo=epel -y install nodejs
  3. Ruby on Rails
    Устанавливаем Ruby on Rails с использованием стандартного менеджера пакетов Gem

    gem install bundler
    gem install rails

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

    rails -v
  4. ImageMagick
    Устаналиваем ImageMagick

    yum -y install ImageMagick ImageMagick-devel libcurl-devel
  5. Phusion Passenger
    Устанавливаем сервер приложений через стандартный менеджер пакетов Gem

    gem install passenger

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

    passenger-install-nginx-module

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

    passenger-memory-stats
  6. 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
  7. 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
  8. 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

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s