Настройка 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
- сервер для запуска продуктов, написанных на Rubyredmine
- сама система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. Поясню на примере. Допустим, адрес нашего сайта - 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 будет доступен по адресу
Комментариев нет :
Отправить комментарий