Установка Redmine 3.2 на CentOS 7 с Nginx и MySQL
Введение
Redmine — это открытое веб-приложение для управления проектами и трекинга задач. Оно написано на Ruby on Rails, кроссплатформенно и поддерживает несколько СУБД. Встроены управление документами и файлами, вики и API REST. В этом руководстве мы развернём Redmine 3.2 на CentOS 7 (64‑бит) с Nginx и MySQL.
Важно: в примерах используются демонстрационные пароли. На реальном сервере используйте надёжные пароли и храните их в менеджере секретов.
Основные варианты использования и похожие формулировки
- установка Redmine на CentOS 7
- развертывание Redmine с Nginx и Passenger
- Redmine с MySQL и RVM
- настройка Redmine 3.2 на Linux
Требования
- Сервер CentOS 7 (64‑бит)
- Привилегии root или sudo
- Доступ в интернет для загрузки пакетов
Быстрое содержание шагов
- Установить зависимости системы
- Установить RVM и Ruby 2.2
- Установить MySQL и настроить базу данных
- Установить Phusion Passenger и Nginx
- Настроить Nginx для Redmine
- Скачать, собрать и запустить Redmine
Шаг 1 — Установка зависимостей Redmine
Redmine требует множества системных библиотек и утилит. Войдите на сервер как root:
ssh [email protected]Установите пакеты зависимостей и инструменты для сборки Ruby/RVM:
yum install zlib-devel curl-devel openssl-devel httpd-devel apr-devel apr-util-devel mysql-devel ftp wget ImageMagick-devel gcc-c++ patch readline readline-devel zlib libyaml-devel libffi-devel make bzip2 autoconf automake libtool bison iconv-devel subversionПримечание: команда может запросить пароль или подтверждение. Подтвердите установку.
Шаг 2 — Установка RVM и Ruby
Redmine 3.2 поддерживает Ruby 2.2. RVM (Ruby Version Manager) позволяет управлять версиями Ruby.
Импортируйте GPG ключи и установите RVM с Ruby 2.2.5:
gpg2 --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
curl -L https://get.rvm.io | bash -s stable --ruby=2.2.5После установки загрузите RVM и добавьте автозагрузку в .bashrc:
source /usr/local/rvm/scripts/rvm
echo '[[ -s "/usr/local/rvm/scripts/rvm" ]] && source "/usr/local/rvm/scripts/rvm"' >> ~/.bashrcПерезагрузите профиль и проверьте версии:
source ~/.bashrc
ruby -v
rvm -vЕсли ruby показывает версию 2.2.x и rvm доступен, переходите дальше.
Шаг 3 — Настройка базы данных MySQL
Добавьте официальный репозиторий Oracle MySQL и установите mysql-server:
rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
yum repolistЗатем установите сервер MySQL:
yum install mysql-serverЗапустите службу и узнайте временный пароль из лога:
systemctl start mysqld
grep 'temporary password' /var/log/mysqld.logВ логах появится временный пароль root. Войдите в mysql с этим паролем и смените его на надёжный:
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Aqwe123@!';Создайте базу данных redmine и пользователя redmine с собственным паролем (в примере Redmine123@!). На реальном сервере используйте уникальный сложный пароль:
create database redmine;
create user redmine@localhost identified by 'Redmine123@!';
grant all privileges on redmine.* to redmine@localhost identified by 'Redmine123@!';
flush privileges;
exit
Совет безопасности: ограничьте доступ к MySQL только с localhost, используйте файрвол и создайте резервную стратегию резервного копирования.
Шаг 4 — Установка Phusion Passenger и Nginx
Phusion Passenger — приложение-сервер, который интегрируется с Nginx и Apache и поддерживает Ruby, Python и Node.js. Мы установим passenger и скомпилируем Nginx с модулем passenger.
Установите gem и запустите интерактивную сборку nginx-модуля:
gem install passenger --no-ri --no-rdoc
passenger-install-nginx-moduleВ интерактивном меню выберите Ruby и Python, затем подтвердите установку Nginx через опцию “Yes: download, compile and install Nginx for me (recommended)”. При запросе каталога установки можно использовать директорию по умолчанию /opt/nginx/ — нажмите Enter.


Шаг 5 — Конфигурация Nginx
Перейдите в директорию установки Nginx и откройте конфигурацию:
cd /opt/nginx/
cd conf/
vim nginx.confВставьте строку include vhost/*.conf; примерно в 24 строку, чтобы подключать виртуальные хосты:
include vhost/*.conf;Создайте директорию для виртуальных хостов и добавьте файл redmine.conf:
mkdir -p /opt/nginx/conf/vhost
cd /opt/nginx/conf/vhost/
vim redmine.confВставьте конфигурацию виртуального хоста (замените server_name на ваш домен):
server {
listen 80;
server_name www.redmine.me;
root /var/www/redmine/public;
passenger_enabled on;
client_max_body_size 10m; # Max attachemnt size
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}Сохраните файл. Для управления Nginx через systemd создайте юнит-файл /lib/systemd/system/nginx.service:
cd /lib/systemd/system/
vim nginx.serviceВставьте содержимое сервиса:
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/opt/nginx/logs/nginx.pid
ExecStartPre=/opt/nginx/sbin/nginx -t
ExecStart=/opt/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.targetПерезагрузите systemd и запустите nginx:
systemctl daemon-reload
systemctl start nginxПроверьте, что nginx слушает порт 80:
netstat -plntu | grep nginxОжидаемый вывод похож на:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4871/nginxШаг 6 — Установка Redmine
Создайте рабочую директорию и скачайте ветку 3.2 с SVN:
mkdir -p /var/www/
cd /var/www/
svn co https://svn.redmine.org/redmine/branches/3.2-stable redmineСкопируйте примеры конфигураций:
cd redmine
cp config/configuration.yml.example config/configuration.yml
cp config/database.yml.example config/database.ymlОтредактируйте config/database.yml и укажите ваши параметры соединения в разделе production:
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "Redmine123@!"
encoding: utf8Создайте необходимые директории и назначьте права:
mkdir -p tmp tmp/pdf public/plugin_assets
sudo chown -R nobody:nobody files log tmp public/plugin_assets
sudo chmod -R 775 files log tmp public/plugin_assetsУстановите bundler и зависимости gems:
gem install bundler
bundle install --without development testСгенерируйте секретный токен и выполните миграции базы данных, затем загрузите тестовые данные по желанию:
bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake redmine:load_default_dataПерезапустите nginx и откройте сайт в браузере по вашему домену, например www.redmine.co:
systemctl restart nginxВход в админ-панель: http://www.redmine.co/login — стандартный логин и пароль admin/admin. Сразу смените пароль администратора.

Создайте тестовый проект и проверьте функциональность.


Установка завершена успешно.
Безопасность и жёсткая настройка
Important: следуйте этим практикам перед выводом в продакшен:
- Используйте менеджер секретов для паролей и токенов.
- Запускайте MySQL и Nginx под ограниченными пользователями, ограничьте доступ по IP.
- Настройте SELinux или AppArmor, если планируете использовать их в продакшен.
- Включите автоматические обновления безопасности и мониторинг логов.
- Рассмотрите размещение базы данных на отдельном сервере для изоляции.
Рекомендации по HTTPS:
- Настройте обратный прокси с сертификатом (Let’s Encrypt). Перенаправляйте весь трафик на HTTPS.
- В Nginx включите заголовки безопасности (HSTS, X-Content-Type-Options, X-Frame-Options).
Трудности и устранение неполадок
Частые проблемы и решения:
- Nginx не запускается после сборки passenger: проверьте вывод /opt/nginx/logs/error.log и выполните /opt/nginx/sbin/nginx -t для синтаксической проверки.
- Ошибки bundle install: установите недостающие системные библиотеки (libffi-devel, zlib-devel, etc.).
- Ошибка подключения к MySQL: проверьте credentials в config/database.yml и статус mysqld.
- Проблемы с правами доступа к директориям files и tmp: убедитесь, что пользователь nginx или passenger имеет доступ.
Диагностические команды:
systemctl status nginx
systemctl status mysqld
tail -n 200 /var/log/messages
tail -n 200 /opt/nginx/logs/error.logКонтрольный список по ролям
- Администратор системы:
- Установить зависимости и RVM
- Настроить MySQL и бэкапы
- Настроить Nginx и SSL
- DevOps-инженер:
- Автоматизировать развёртывание (Ansible/Chef)
- Настроить мониторинг и алертинг
- Администратор приложения:
- Создать проекты и настроить роли в Redmine
- Настроить плагины и резервные копии файлов
Критерии приёмки
- Сайт Redmine доступен по указанному домену и порту 80/443.
- Вход с учётной записью admin возможен и пароль сменён.
- Приложение корректно подключено к базе redmine и выполнены миграции.
- Файловая загрузка работает и сохраняется в каталог files.
Миграция и совместимость
- Версия Ruby должна соответствовать требованиям Redmine 3.2 (рекомендуется 2.2.x).
- Проверяйте совместимость плагинов с версией Redmine.
- При переносе на другой сервер экспортируйте базу и копируйте каталог files и plugins.
Короткий глоссарий
- RVM — менеджер версий Ruby.
- Passenger — приложение-сервер для запуска Ruby-приложений в Nginx/Apache.
- bundle — менеджер зависимостей Ruby.
- rake — набор задач для Rails-приложений.
Шаблон простого SOP для повторного развертывания
- Подготовить сервер, установить базовые пакеты.
- Установить RVM и Ruby, проверить версии.
- Установить и настроить MySQL, создать базу и пользователя.
- Установить passenger, скомпилировать Nginx.
- Склонировать Redmine и настроить config/database.yml.
- bundle install, rake db:migrate, rake redmine:load_default_data.
- Настроить systemd сервисы и включить HTTPS.
- Провести тесты доступа и функциональные проверки.
Тесты и приёмочные критерии
- Проверка логина администратора и смена пароля.
- Создание проекта, добавление задачи, загрузка файла.
- Включение и проверка вики-страницы.
- Проверка API REST на базовые операции.
Резюме
Вы успешно установили Redmine 3.2 на CentOS 7 с Nginx и MySQL. Дальше рекомендуем автоматизировать процесс деплоя, настроить HTTPS, обеспечить резервное копирование и мониторинг. Redmine остаётся гибким решением для внутреннего управления проектами и трекинга задач.
Экспорт ключевых шагов: установите зависимости, разверните RVM и Ruby, настройте MySQL, соберите Nginx с Passenger, загрузите Redmine, выполните миграции и настройте права доступа.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента