Как установить и настроить Redmine на CentOS 7

Установка и настройка Redmine на CentOS

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 libtool sudo yum install readline-devel sqlite-devel zlib-devel openssl-develh readline glibc-headers glibc-devel sudo 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 pygpgme sudo 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 nginx sudo 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 7D2BAF1CF37B13E2069D6956105BD0E739499BDB curl -sSL https://get.rvm.io | bash -s stable

Чтобы начать использовать исходный файл RVM, выполните rvm действия.

 source /opt/redmine/.rvm/scripts/rvm

Теперь мы можем установить Ruby, выполнив:

 rvm install 2.5 rvm --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.1 gem install bundler --no-rdoc --no-ri bundle install --without development test postgresql sqlite

4. Сгенерируйте ключи и перенесите базу данных

Выполните следующую команду для генерации ключей и миграции базы данных:

 bundle exec rake generate_secret_token RAILS_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:

  • Имя пользователя: администратор
  • Пароль: администратор

При первом входе в систему вам будет предложено сменить пароль, как показано ниже:

redmine сменить пароль

После смены пароля вы будете перенаправлены на страницу учетной записи пользователя.

Заключение

Вы успешно установили Redmine на свою систему CentOS. Теперь вам следует ознакомиться с документацией Redmine и узнать больше о настройке и использовании Redmine.

Если у вас возникла проблема или вы хотите оставить отзыв, оставьте комментарий ниже.

centos redmine ruby mysql mariadb nginx Не используете CentOS 7?
Выберите другую ОС:
центос 8 дебиан 9 убунту 18.04

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *