Гид по технологиям

Установка Redmine 3.2 на CentOS 7 с Nginx и MySQL

• 6 min read • DevOps • Обновлено 19 Nov 2025
Установка Redmine 3.2 на CentOS 7
Установка Redmine 3.2 на CentOS 7

Введение

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
  • Доступ в интернет для загрузки пакетов

Быстрое содержание шагов

  1. Установить зависимости системы
  2. Установить RVM и Ruby 2.2
  3. Установить MySQL и настроить базу данных
  4. Установить Phusion Passenger и Nginx
  5. Настроить Nginx для Redmine
  6. Скачать, собрать и запустить 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 для Redmine

Совет безопасности: ограничьте доступ к 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.

Phusion Passenger

Установка Nginx с Phusion Passenger

Шаг 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. Сразу смените пароль администратора.

Вход в Redmine

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

Панель управления Redmine

Страница проекта в Redmine

Установка завершена успешно.

Безопасность и жёсткая настройка

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 для повторного развертывания

  1. Подготовить сервер, установить базовые пакеты.
  2. Установить RVM и Ruby, проверить версии.
  3. Установить и настроить MySQL, создать базу и пользователя.
  4. Установить passenger, скомпилировать Nginx.
  5. Склонировать Redmine и настроить config/database.yml.
  6. bundle install, rake db:migrate, rake redmine:load_default_data.
  7. Настроить systemd сервисы и включить HTTPS.
  8. Провести тесты доступа и функциональные проверки.

Тесты и приёмочные критерии

  • Проверка логина администратора и смена пароля.
  • Создание проекта, добавление задачи, загрузка файла.
  • Включение и проверка вики-страницы.
  • Проверка API REST на базовые операции.

Резюме

Вы успешно установили Redmine 3.2 на CentOS 7 с Nginx и MySQL. Дальше рекомендуем автоматизировать процесс деплоя, настроить HTTPS, обеспечить резервное копирование и мониторинг. Redmine остаётся гибким решением для внутреннего управления проектами и трекинга задач.

Экспорт ключевых шагов: установите зависимости, разверните RVM и Ruby, настройте MySQL, соберите Nginx с Passenger, загрузите Redmine, выполните миграции и настройте права доступа.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро