Redmine на CentOS 6.5
В данном посте рассказывается как поставить систему управления проектами Redmine на CentOS с сохранением БД в PostgreSQL. В качестве фронденда будет использоваться nginx в связке с Phusion Passenger. Поскольку установка тестовая, все будет располагаться на одной машине. Версии ПО по возможности используются последние на момент написания, поэтому применяется сборка из исходных кодов.
Последовательность установки:
Ruby
- интерпретируемый языкNode.js
- JavaScript серверRuby on Rails
- веб-фрэймворк на базе RubyImageMagick
- библиотека для экспорта диаграмм Ганта в PNGPhusion Passenger
- сервер приложений для Ruby on Railsnginx
- веб-серверPostgreSQL
- сервер баз данных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