
Redmine — один из самых популярных программных инструментов с открытым исходным кодом для управления проектами и отслеживания проблем. Он кроссплатформенный и кросс-базовый, построенный на фреймворке Ruby on Rails.
Redmine включает поддержку нескольких проектов, вики, систему отслеживания проблем, форумы, календари, уведомления по электронной почте и многое другое.
В этом руководстве мы рассмотрим шаги, необходимые для установки и настройки последней версии Redmine на сервере CentOS 7, используя MariaDB в качестве серверной части базы данных и Passenger + Nginx в качестве сервера приложений Ruby.
Предпосылки
Прежде чем продолжить изучение этого руководства, убедитесь, что выполнены следующие предварительные условия:
- Доменное имя, указывающее на публичный IP-адрес вашего сервера. В этом руководстве мы будем использовать
example.com. - Выполнен вход как пользователь с привилегиями sudo .
Установите пакеты, необходимые для сборки Redmine и Ruby из исходного кода:
sudo yum install curl gpg gcc gcc-c++ make patch autoconf automake bison libffi-devel libtoolsudo yum install readline-devel sqlite-devel zlib-devel openssl-develh readline glibc-headers glibc-develsudo yum install mariadb-devel zlib libyaml-devel bzip2 iconv-devel ImageMagick ImageMagick-devel
Создание базы данных MySQL
Redmine поддерживает MySQL/MariaDB, Microsoft SQL Server, SQLite 3 и PostgreSQL . В этом руководстве мы будем использовать MariaDB в качестве серверной базы данных.
Если на вашем сервере CentOS не установлены MariaDB или MySQL, вы можете установить их, следуя этим инструкциям .
Войдите в оболочку MySQL, введя следующую команду:
sudo mysql
В оболочке MySQL выполните следующий оператор SQL, чтобы создать новую базу данных :
CREATE DATABASE redmine CHARACTER SET utf8;
Затем создайте учетную запись пользователя MySQL и предоставьте доступ к базе данных :
GRANT ALL ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'change-with-strong-password';
Обязательно измените change-with-strong-password на надежный пароль.
После завершения выйдите из оболочки MySQL, введя:
EXIT;
Установка Passenger и Nginx
Passenger — это быстрый и лёгкий сервер веб-приложений для Ruby, Node.js и Python, интегрируемый с Apache и Nginx. Мы установим Passenger как модуль Nginx.
Установите репозиторий EPEL и необходимые пакеты:
sudo yum install epel-release yum-utils pygpgmesudo yum-config-manager --enable epel
Включите репозиторий Phusionpassenger :
sudo yum-config-manager --add-repo https://oss-binaries.phusionpassenger.com/yum/definitions/el-passenger.repo
После включения репозитория обновите список пакетов и установите Nginx и Passenger с помощью:
sudo yum install nginx passenger passenger-devel
Создание нового системного пользователя
Создайте нового пользователя и группу, которые будут запускать экземпляр Redmine, для простоты назовем пользователя redmine :
sudo useradd -m -U -r -d /opt/redmine redmine
Добавьте пользователя nginx в новую группу пользователей и измените права доступа к каталогу /opt/redmine чтобы Nginx мог получить к нему доступ:
sudo usermod -a -G redmine nginxsudo chmod 750 /opt/redmine
Установка Ruby
Версия Ruby в репозиториях CentOS довольно устарела и не поддерживается Redmine. Мы установим Ruby с помощью RVM.
Переключитесь на пользователя redmine , введя:
sudo su - redmine
Импортируйте ключи GPG и установите RVM:
gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDBcurl -sSL https://get.rvm.io | bash -s stable
Чтобы начать использовать исходный файл RVM, выполните rvm действия.
source /opt/redmine/.rvm/scripts/rvm
Теперь мы можем установить Ruby, выполнив:
rvm install 2.5rvm --default use 2.5
Если вы хотите установить Ruby через Rbenv, проверьте это руководство .
Установка Redmine на CentOS
На момент написания статьи последней стабильной версией Redmine является версия 4.0.1.
Прежде чем продолжить, проверьте страницу загрузки Redmine, чтобы узнать, доступна ли более новая версия.
Убедитесь, что вы выполняете следующие шаги как пользователь redmine .
1. Загрузка Redmine
Загрузите архив Redmine с помощью следующей команды curl :
curl -L http://www.redmine.org/releases/redmine-4.0.1.tar.gz -o redmine.tar.gz
После завершения загрузки распакуйте архив:
tar -xvf redmine.tar.gz
2. Настройка базы данных Redmine
Скопируйте файл конфигурации примера базы данных Redmine:
cp /opt/redmine/redmine-4.0.1/config/database.yml.example /opt/redmine/redmine-4.0.1/config/database.yml
Откройте файл с помощью текстового редактора:
nano /opt/redmine/redmine-4.0.1/config/database.yml
Найдите раздел production и введите базу данных MySQL и информацию о пользователе, которую мы создали ранее:
/opt/redmine/redmine-4.0.1/config/database.yml
production: adapter: mysql2 database: redmine host: localhost username: redmine password: "change-with-strong-password" encoding: utf8
После этого сохраните файл и выйдите из редактора.
3. Установка зависимостей Ruby
Перейдите в каталог redmine-4.0.1 и установите bundler и другие зависимости Ruby:
cd ~/redmine-4.0.1gem install bundler --no-rdoc --no-ribundle install --without development test postgresql sqlite
4. Сгенерируйте ключи и перенесите базу данных
Выполните следующую команду для генерации ключей и миграции базы данных:
bundle exec rake generate_secret_tokenRAILS_ENV=production bundle exec rake db:migrate
Настройка Nginx
Вернитесь к своему пользователю sudo:
exit
Откройте текстовый редактор и создайте следующий файл блока сервера Nginx :
sudo nano /etc/nginx/conf.d/example.com.conf
/etc/nginx/conf.d/example.com.conf
passenger_root /usr/share/ruby/vendor_ruby/phusion_passenger/locations.ini ; passenger_ruby /opt/redmine/.rvm/gems/default/wrappers/ruby ; passenger_instance_registry_dir /var/run/passenger-instreg ; server { listen 80 ; server_name example.com www.example.com ; root /opt/redmine/redmine-4.0.1/public ; # log files access_log /var/log/nginx/example.com.access.log ; error_log /var/log/nginx/example.com.error.log ; passenger_enabled on ; passenger_min_instances 1 ; client_max_body_size 10m ; }
Не забудьте заменить example.com на ваш домен Redmine.
Перед перезапуском службы Nginx выполните проверку, чтобы убедиться в отсутствии синтаксических ошибок:
sudo nginx -t
Если ошибок нет, вывод должен выглядеть так:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Наконец, перезапустите службу Nginx , введя:
sudo systemctl restart nginx
Настройте Nginx с SSL
Если у вас нет доверенного SSL-сертификата для вашего домена, вы можете создать бесплатный SSL-сертификат Let's Encrypt, следуя этим инструкциям .
После генерации сертификата отредактируйте конфигурацию домена Nginx следующим образом:
sudo nano /etc/nginx/conf.d/example.com.conf
/etc/nginx/conf.d/example.com
passenger_root /usr/share/ruby/vendor_ruby/phusion_passenger/locations.ini ; passenger_ruby /opt/redmine/.rvm/gems/default/wrappers/ruby ; passenger_instance_registry_dir /var/run/passenger-instreg ; # Redirect HTTP -> HTTPS server { listen 80 ; server_name www.example.com example.com ; include snippets/letsencrypt.conf ; return 301 https://example.com $request_uri ; } # Redirect WWW -> NON WWW server { listen 443 ssl http2 ; server_name www.example.com ; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem ; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem ; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem ; include snippets/ssl.conf ; return 301 https://example.com $request_uri ; } server { listen 443 ssl http2 ; server_name example.com ; root /opt/redmine/redmine-4.0.1/public ; # SSL parameters ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem ; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem ; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem ; include snippets/ssl.conf ; include snippets/letsencrypt.conf ; # log files access_log /var/log/nginx/example.com.access.log ; error_log /var/log/nginx/example.com.error.log ; passenger_enabled on ; passenger_min_instances 1 ; client_max_body_size 10m ; }
Не забудьте заменить example.com на ваш домен Redmine и указать правильный путь к файлам SSL-сертификата. Все HTTP-запросы будут перенаправляться на HTTPS .
Доступ к Redmine
Откройте браузер , введите свой домен и, если установка прошла успешно, появится экран, подобный следующему:

Учетные данные по умолчанию для входа в Redmine:
- Имя пользователя: администратор
- Пароль: администратор
При первом входе в систему вам будет предложено сменить пароль, как показано ниже:

После смены пароля вы будете перенаправлены на страницу учетной записи пользователя.
Заключение
Вы успешно установили Redmine на свою систему CentOS. Теперь вам следует ознакомиться с документацией Redmine и узнать больше о настройке и использовании Redmine.
Если у вас возникла проблема или вы хотите оставить отзыв, оставьте комментарий ниже.
centos redmine ruby mysql mariadb nginx Не используете CentOS 7?
Выберите другую ОС: центос 8 дебиан 9 убунту 18.04
Связанные руководства
- Как установить и настроить Redmine на CentOS 8
- Как установить и настроить Redmine в Debian 9
- Как установить Drupal на CentOS 7
- Как установить и настроить Redmine в Ubuntu 18.04
- Как установить WordPress с Nginx на CentOS 7
- Как установить phpMyAdmin с Nginx на CentOS 7
- Как установить MariaDB на CentOS 8