Установка Redmine 3 на Ubuntu 15.10 с Nginx и MySQL
О чём эта инструкция
Redmine — это веб‑приложение для управления проектами и трекинга задач на базе Ruby on Rails. Руководство показывает установку Redmine 3.2‑stable на Ubuntu 15.10 (64‑бит) с использованием MySQL и Nginx+Passenger. Оно подходит для администраторов Linux и инженеров DevOps, которые хотят запустить самостоятельный сервер Redmine.
Важно: в примерах используются демонстрационные пароли (например, “redmine”). Замените их на надёжные пароли в реальной среде.
Ключевые требования
- Ubuntu 15.10 — 64‑бит. Если у вас другая версия Ubuntu, обратите внимание на обновлённые пакеты и пути.
- Root‑привилегии.
Шаг 1 — Установка зависимостей
Redmine требует ряда системных библиотек. Выполните под root:
sudo su
apt-get updateУстановите нужные пакеты:
apt-get install mysql-server mysql-client libmysqlclient-dev imagemagick libmagickwand-dev libcurl4-openssl-dev git-core subversionВо время установки MySQL вам будет предложено задать пароль root. Выберите надёжный пароль и запомните его.
Шаг 2 — Установка RVM и Ruby
В этом руководстве используется RVM (Ruby Version Manager) и Ruby 2.0, совместимая с Redmine 3.2.
gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
curl -L https://get.rvm.io | bash -s stable --ruby=2.0.0Перезагрузите окружение RVM и добавьте автозагрузку в .bashrc:
source /usr/local/rvm/scripts/rvm
echo '[[ -s "/usr/local/rvm/scripts/rvm" ]] && source "/usr/local/rvm/scripts/rvm"' >> ~/.bashrcПримечание: при использовании других версий Redmine проверьте поддерживаемые версии Ruby в документации проекта.
Шаг 3 — Настройка базы данных MySQL для Redmine
Войдите в MySQL под root:
mysql -u root -p
TYPE YOUR PASSWORDСоздайте базу и пользователя (замените пароль на сложный в проде):
create database redmine;
create user redmine@localhost identified by 'redmine';
grant all privileges on redmine.* to redmine@localhost identified by 'redmine';
flush privileges;
q\Проверьте, что база и пользователь созданы.
Шаг 4 — Установка Phusion Passenger и Nginx
Phusion Passenger интегрируется с Nginx и позволяет запускать Ruby‑приложения. Установим passenger как gem и соберём модуль nginx с поддержкой Passenger:
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/.
Важно: компиляция nginx займёт время. Убедитесь, что на сервере есть доступ к интернету и достаточное место на диске.
Шаг 5 — Конфигурация Nginx
Отредактируйте конфигурацию Nginx:
cd /opt/nginx/conf/
vim nginx.confВ блоке server задайте имя хоста и корень сайта:
server {
.......
listen 80;
server_name www.redmine.me;
root /var/www/redmine/public;
passenger_enabled on;
client_max_body_size 10m; # Max attachment size
........
}Закомментируйте стандартный блок location, если он конфликтует:
#location / {
# root html;
# index index.html index.htm;
#}Создайте systemd‑сервис для Nginx:
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Проверка порта 80:
netstat -plntu | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4871/nginxЕсли Nginx не стартует — проверьте журналы /opt/nginx/logs/error.log и вывод проверок конфигурации.
Шаг 6 — Установка Redmine
Создайте директорию для сайта и скачайте исходники Redmine (через 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 данными вашей MySQL:
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "redmine"
encoding: utf8Создайте временные каталоги и выставьте владельца www-data:
mkdir -p tmp tmp/pdf public/plugin_assets
sudo chown -R www-data:www-data files log tmp public/plugin_assets
sudo chmod -R 775 files log tmp public/plugin_assetsУстановите bundler и зависимости гемов:
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 и проверьте доступность сайта:
systemctl restart nginxОткройте в браузере адрес, соответствующий server_name, например: http://www.redmine.me

Войдите в админку: http://www.redmine.me/login
Учётные данные по умолчанию: admin / admin (обязательно смените пароль).

Создайте тестовый проект для проверки.

Пример страницы проекта в Redmine.

Проверки после установки
- Войдите в систему и проверьте создание задач и загрузку файлов.
- Проверьте, что вложения не превышают client_max_body_size в nginx.conf.
- Убедитесь, что cron‑задачи для отправки почты и удаления сессий настроены при необходимости.
Безопасность и рекомендации
- Смените все учетные записи по умолчанию, включая пароль MySQL и admin Redmine.
- Закройте доступ к MySQL из сети, оставьте доступ только с localhost.
- Настройте бэкапы базы и каталога files (регулярно).
- Рассмотрите использование HTTPS (Let’s Encrypt) для защиты передачи паролей и данных.
Важно: Redmine хранит пользовательские данные и файлы. Если обрабатываются персональные данные, проверьте требования законодательства о защите данных и настройте соответствующие политики хранения и удаления.
Альтернативные подходы
- Apache + Passenger: альтернатива Nginx, если вам привычнее конфигурирование Apache.
- Docker: контейнеризация упрощает переносимость и изоляцию — идеальна для тестовых сред.
- Использовать PostgreSQL: Redmine полно поддерживает PostgreSQL; она часто предпочтительнее для продакшен‑инсталляций.
Когда этот подход не подходит
- У вас ограничена оперативная память или отсутствует компилятор — сборка Nginx с модулем займёт ресурсы.
- Требуется кластеризация и высокая доступность на уровне нескольких приложений — рассмотрите балансировщик и отдельные приложения/базы данных.
Быстрые шаблоны и чеклисты
Роль: Системный администратор — что сделать после установки:
- Сменить пароли (MySQL root, redmine, admin).
- Настроить HTTPS и HSTS.
- Запланировать бэкапы БД и файлов.
- Ограничить доступ к MySQL через bind‑address.
- Проверить логи Nginx и Rails на ошибки.
Роль: Менеджер проекта — быстрый чек:
- Зарегистрироваться и создать проект.
- Создать первую задачу и прикрепить файл.
- Настроить роли и права доступа.
Модель принятия решения (короткая)
Если вам нужна простая автономная инсталляция — использовать Ubuntu + Nginx + MySQL + Passenger.
Если приоритет — контейнеризация и масштабируемость — рассмотреть Docker/Kubernetes и отдельный сервис БД.
Факты и полезные числа
- Поддерживаемые языки: переводы для 42 языков.
- Основные базы: MySQL, PostgreSQL, MS SQL Server, SQLite.
- Рекомендуемая учётная запись веб‑сервера: www-data для доступа к файлам приложения.
Критерии приёмки
- Сайт загружается по HTTP(S) и страница входа отображается.
- Можно войти под admin и создать проект.
- Прикрепление файла работает и сохраняется в каталог files.
- Миграции БД выполнены без ошибок.
Короткая инструкция для анонса (100–200 слов)
Развёртывание Redmine 3 на Ubuntu 15.10 с Nginx и MySQL — подробная пошаговая инструкция для администраторов. Документ покрывает установку системных зависимостей, настройку RVM и Ruby 2.0, создание базы данных MySQL, сборку Nginx с Phusion Passenger, установку Redmine из SVN и финальную конфигурацию приложения. Включены рекомендации по безопасности, чек‑листы для ролей и альтернативные подходы (Apache, Docker, PostgreSQL). Инструкция поможет быстро запустить локальный или корпоративный инстанс Redmine с минимальными усилиями.
Короткий анонс для соцсетей
Запустили Redmine 3 на Ubuntu + Nginx + MySQL: подробный гайд с проверенными шагами, проверками и советами по безопасности. Идеально для быстрой инсталляции и тестирования рабочей среды.
Глоссарий — одно предложение на термин
- RVM: менеджер версий Ruby для установки и переключения между окружениями.
- Passenger: модуль для запуска Ruby‑приложений в Nginx/Apache.
- bundle: инструмент для управления зависимостями Ruby (gems).
Заключение
Эта инструкция покрывает все основные шаги для развёртывания Redmine 3 на Ubuntu 15.10 с использованием Nginx и MySQL. После установки убедитесь в безопасности инстанса: смените пароли, настроьте HTTPS и организуйте резервное копирование. Для продакшен‑среды рассмотрите миграцию на более новые версии ОС и компонентов, а также контейнеризацию для упрощения развертывания и масштабирования.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента