Делюсь опытом в описанных технологиях. Блог в первую очередь выполняет роль памяток для меня самого.

Настройка Redmine на Debian 7

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

Установка и настройка Redmine в Debian 7 (nginx + postgresql + thin)

В данной статье рассматривается установка и настройка Redmine версии 1.x в Debian 7 с помощью apt. Если вам нужна инструкция по настройке Redmine версии 2.x, то эта статья не для вас.

Краткое содержание:

  • Введение
  • Список используемых пакетов.
  • Порядок установки и настройки пакетов.
    • Предварительная настройка PostgreSQL
    • Установка пакетов
    • Создание базы данных
  • Увязка Redmine с nginx через thin.

Введение

Redmine - система для управления проектами. Если говорить простым языком, эта система служит для того, чтобы можно было вести учёт обращений, заявок, багрепортов и известных проблем о каждом продукте компании. Помимо этого в системе есть встроенная Wiki, база знаний, диаграммы Ганта, разделение по проектам и ролям и т.д. Если вы работаете в фирме, которая занимается разработкой ПО, то этот или аналогичный продукт вам жизненно необходим. С помощью Redmine можно оперативно отслеживать ход работы, исправления обнаруженных ошибок и т.д. В общем, на выходе получается целый комбайн.

Список используемых пакетов

Для работы Redmine требуется установка Ruby On Rails. К нашему удовольствию разработчики Debian'а включили все необходимые пакеты в список зависимостей, значительно упростив установку. Исключение сделано лишь для двух пакетов - сервер, который будет запускать Redmine, и пакет для соединения с БД.

Ниже приведён минимальный список пакетов, которые нам потребуются:

  • thin - сервер для запуска продуктов, написанных на Ruby
  • redmine - сама система
  • ruby-pg - драйвер для подключения программ, написанных на Ruby On Rails, к СУБД PostgreSQL.

Установка Ruby будет выполнена автоматически

Предварительная настройка базы в PostgreSQL

Запустим интерпретатор psql от имени суперпользователя postgres:

sudo su -c psql postgres

Создадим нового пользователя и базу данных, к которой он будет иметь полный доступ, после чего закроем интерпретатор:

CREATE ROLE redmine WITH PASSWORD 'redmine' LOGIN;
CREATE DATABASE redmine WITH OWNER redmine;
\q

Естественно, вы можете дать пользователю и базе любое нужное имя. Кроме того, на одном сервере можно развернуть несколько экземпляров Redmine - для этого нужно будет создать несколько баз (и, возможно, пользователей) и настроить несколько конфигураций для thin, но я сейчас этого делать не буду.

Установка пакетов и настройка параметров Redmine

Установка пакетов

Для установки всех необходимых пакетов нужно от имени root выполнить команду:

apt-get install redmine ruby-pg thin -y

Во время установки менеджер пакетов предложит настроить базу данных. Отвечаем отрицательно. Базу данных лучше настраивать через правку конфигурационных файлов, т.к. установщик Redmine предлагает дать ему административный доступ к PostgreSQL.

Настройка доступа к БД

Перейдём в каталог /etc/redmine/default

cd /etc/redmine/default

Здесь находится всего два файла - database.yml и session.yml. Нам нужен только первый, отвечающий за настройки доступа к БД.

Содержимое database.yml:

production:
  adapter: postgresql
  database: redmine
  host: localhost
  port:
  username: redmine
  password: redmine
  encoding: utf8

Все настройки, полагаю, понятны без комментариев. Отмечу только, что первая строка, production:, указывает на то, что данная конфигурация должна использоваться при запуске сервера в рабочем режиме. Также доступны режимы development и test.

Настройка сервера thin

Теперь нужно настроить thin. В Debian 7 при установке thin ставятся сразу две его версии, 1.8 и 1.9.1, мы будем использовать последнюю. Переходим в каталог настроек и создаём файл для запуска Redmine:

cd /etc/thin1.9.1/
touch redmine.yml
chmod 644 redmine.yml

Открываем созданный файл в любимом текстовом редакторе и вносим туда следующие данные:

---
chdir: /usr/share/redmine
environment: production
timeout: 30
log: /var/log/thin/redmine.log
pid: /var/run/redmine/redmine.pid
max_conns: 1024
max_persistent_conns: 512
require: []

wait: 30
socket: /var/run/redmine/redmine.sock
daemonize: true
user: www-data
group: www-data
servers: 1
prefix: /redmine

socket указывает путь и имя сокетов, создаваемых thin при запуске Redmine.

Параметр servers указывает, сколько серверов следует запустить. Другими словами, он определяет количество сокетов, которые будут созданы в указанном каталоге. К имени сокета, указанному выше, будет добавлен порядковый номер.

Servers: 1

ls /var/run/redmine
redmine.sock.0

Servers: 2

ls /var/run/redmine
redmine.sock.0
redmine.sock.1

prefix указывает на то, по какому адресу на сервере будут обрабатываться запросы к Redmine. Поясню на примере. Допустим, адрес нашего сайта - http://sharkon.ru/ . При переходе к этому адресу человек будет получать главную страницу нашего сайта. Пусть при переходе по ссылке http://sharkon.ru/redmine/ открывается Redmine. Именно за часть адреса, идующую после указания доменного имени, отвечает этот параметр. Если сайт используется для внутренних нужд и не торчит наружу, можно дать ему, например, такое доменное имя: http://redmine.lo/ , прописав в настройках сервера DNS, к какой машине в локальной сети нужно подключаться для работы с этим сайтом. В этом случае строку с параметром prefix следует удалить из файла конфигурации полностью!

Настройка nginx.

В каталоге /etc/nginx/ следует создать файл proxy_params.conf. На моих серверах он выглядит примерно так:

proxy_redirect                          off;
proxy_set_header Host                   $http_host;
proxy_set_header X-Real-IP              $remote_addr;
proxy_set_header X-Url-Scheme           $scheme;
proxy_set_header X-Forwarded-For        $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto      $scheme;
client_max_body_size                    20m;
client_body_buffer_size                 1m;
proxy_buffering                         off;
proxy_send_timeout                      180;
proxy_read_timeout                      180;
proxy_connect_timeout                   180;
proxy_buffer_size                       4k;
proxy_buffers                           32 32k;
proxy_busy_buffers_size                 64k;
proxy_temp_file_write_size              1m;
add_header X-Frame-Options "SAMEORIGIN";

При необходимости измените настройки, исходя из параметров вашего сервера. Указанные в примере данные хорошо себя показали на не очень мощной машине с 2 GB RAM.

В каталоге /etc/nginx/conf.d/ создадим файл redmine.conf со следующим содержимым:

upstream redmine {
        server unix:/var/run/redmine/redmine.0.sock;
}

server {
    listen 80;
    server_name sharkon.ru;
    access_log off;
    error_log /var/log/redmine/nginx_error.log;
    include /etc/nginx/proxy_params.conf;
    proxy_redirect off;

    location / {
        root /var/www/sharkon.ru;
    }
    
    location /redmine {
        root /usr/share/redmine/public;
        error_page 404 404.html;
        error_page 500 502 503 504 500.html;
        try_files $uri/index.html $uri.html $uri @redmine_server;
    }

    location @redmine_server {
        proxy_pass http://redmine;
    }
}

Здесь указано, что следует использовать для соединения с Redmine сокет, расположенный по пути /var/run/redmine/. Имя сокета формируется из строки, указанной ранее в параметрах thin плюс порядковый номер созданного сокета, начиная с нуля. Далее идёт указание имени нашего сервера и пути, по которому расположен Redmine. Все запросы к нему автоматически будут переадресовываться к созданному ранее сокету.

Миграции

Т.к. мы настраивали доступ к БД вручную, создание её структуры мы будем производить вручную. Это не сложно:

cd /usr/share/redmine
rake db:migrate RAILS_ENV=production

Права на сокет

Так как сокет для redmine будет создаваться пользователем www-data, следует сделать так, чтобы после перезагрузки системы Redmine мог создать его заново. Для этого мы сменим владельца папки с сокетами и pid-файлом.

cd /var/run
mkdir redmine
chown www-data:www-data redmine/

Кодировка CSV-файлов

По-умолчанию Redmine генерирует все отчёты в кодировке UTF-8. Пакет Microsoft Office использует кодировку Win1251, поэтому CVS-отчёт, открытый с помощью Excel, будет показывать кракозябры. Следует всего лишь в одном месте изменить настройки:

cd /usr/share/redmine/config/locale
nano ru.yml

Здесь следует найти строку:

general_csv_encoding: UTF-8

и заменить её на

general_csv_encoding: CP1251

При необходимости здесь же можно изменить и другие параметры локализации Redmine, например, перевод некоторых слов и кодировку файлов pdf.

Запуск

Все подготовительные операции выполнены, можно запустить сам Redmine и перезапустить nginx.

service thin start
service nginx restart

Redmine будет доступен по адресу http://sharkon.ru/redmine/

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

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