Установка Redmine · 3 min read · Jan 23, 2026
Запуск управления проектами Redmine на nginx (Debian Wheezy)
Запуск управления проектами Redmine на nginx (Debian Wheezy)
Redmine — это инструмент управления проектами, написанный на Ruby. Этот учебник объясняет, как обслуживать Redmine с помощью thin (быстрого веб-сервера на Ruby) через веб-сервер nginx на Debian Wheezy.
Я не даю никаких гарантий, что это сработает для вас!
1 Предварительная заметка
Я подготовил веб-сайт www.example.com с корневым каталогом /var/www/example.com/web (Redmine будет установлен там), который принадлежит пользователю web1 и группе client0.
Я также подготовил базу данных MySQL для Redmine с именем c0db1. Имя пользователя также c0db1, пароль FyZ5z4QGfhTf8.
2 Установка Redmine
Сначала установим некоторые предварительные зависимости:
apt-get install thin ruby rake rubygems libopenssl-ruby libmysql-ruby librmagick-ruby ruby-dev libmysqlclient-dev libmagick-dev curlgem install sass
gem install compassСкачайте последнюю версию Redmine и скопируйте ее в наш корневой каталог /var/www/example.com/web:
cd /tmp
wget http://www.redmine.org/releases/redmine-2.4.2.tar.gz
tar xvfz redmine-2.4.2.tar.gz
mv redmine-2.4.2/* /var/www/example.com/web
cd /var/www/example.com/web
chown -R web1:client0 *Заполните данные для входа в нашу базу данных MySQL:
cp config/database.yml.example config/database.yml
vi config/database.yml[...]
production:
adapter: mysql2
database: c0db1
host: localhost
username: c0db1
password: "FyZ5z4QGfhTf8"
encoding: utf8
[...] Установите некоторые другие необходимые пакеты и заполните базу данных:
apt-get install libmagickwand-devgem install rmagickgem install bundlerbundle install --without development test postgresql sqliterake generate_secret_tokenrake db:migrate RAILS_ENV="production"rake redmine:load_default_data RAILS_ENV="production"3 Настройка thin
Далее мы настраиваем thin, наш Ruby веб-сервер, к которому nginx будет проксировать запросы.
ln -s /etc/thin1.9.1 /etc/thinmkdir /var/log/thin
chmod 755 /var/log/thin
cd /etc/thinСоздайте файл конфигурации thin, который называется так же, как владелец корневого каталога (web1):
vi web1.ymlУбедитесь, что вы используете правильного пользователя (web1) в строках логов, pid, сокета и пользователя, а также правильную группу (client0) в строке группы. Используйте правильный корневой каталог в строке chdir:
---
chdir: /var/www/example.com/web
environment: production
timeout: 30
log: /var/log/thin/web1.log
pid: /var/run/thin/web1.pid
max_conns: 1024
max_persistent_conns: 512
require: []
wait: 30
socket: /var/run/thin/web1.sock
daemonize: true
user: web1
group: client0
servers: 1
prefix: /Создайте каталог /var/run/thin (где thin создаст свой сокет):
mkdir /var/run/thin
chown -R web1:client0 /var/run/thinЧтобы убедиться, что каталог существует, когда thin запускается, мы добавляем строку test -e /var/run/thin || install -m 755 -o web1 -g client0 -d /var/run/thin в инициализационный скрипт /etc/init.d/thin (сразу после строки SCRIPT_NAME):
vi /etc/init.d/thin[...]
DAEMON=/usr/bin/thin
SCRIPT_NAME=/etc/init.d/thin
test -e /var/run/thin || install -m 755 -o web1 -g client0 -d /var/run/thin
[...] Теперь запустите thin…
/etc/init.d/thin start… и обратите внимание на сокет, который он создает (/var/run/thin/web1.0.sock в этом случае) - он нам понадобится в конфигурации nginx:
root@server1:/etc/thin# /etc/init.d/thin start
[start] /etc/thin1.9.1/web1.yml ...
Starting server on /var/run/thin/web1.0.sock ...
root@server1:/etc/thin#Если вы используете Monit, вы можете добавить следующие строки в /etc/monit/monitrc, чтобы убедиться, что thin всегда работает:
vi /etc/monit/monitrc[...]
check process thin with pidfile /var/run/thin/web1.0.pid
start program = "/etc/init.d/thin start"
stop program = "/etc/init.d/thin stop"
[...] Перезапустите Monit после этого:
/etc/init.d/monit restart4 Настройка nginx
Далее мы должны настроить наш виртуальный хост nginx, через который мы хотим получить доступ к Redmine. Вы должны вставить следующую конфигурацию в ваш контейнер server {} (или в поле Директивы nginx, если вы используете ISPConfig) - убедитесь, что вы используете правильный сокет thin:
client_max_body_size 100M;
location / {
proxy_set_header X-Reak-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
if (-f $request_filename/index.html) {
rewrite (.*) $1/index.html break;
}
if (-f $request_filename.html) {
rewrite (.*) $1.html break;
}
if (!-f $request_filename) {
proxy_pass http://unix:/var/run/thin/web1.0.sock;
break;
}
}
Вот и все! Теперь посетите ваш веб-сайт, и вы сможете использовать Redmine. Имя пользователя по умолчанию — admin, пароль также admin.


4 Ссылки
- Redmine: http://www.redmine.org/
- nginx: http://nginx.org/
- Debian: http://www.debian.org/
Get new posts in your inbox
No spam. Unsubscribe anytime.