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

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

How To Install and Configure Redmine on CentOS 7

3 Января 2020 | CentOS

В этом руководстве мы рассмотрим шаги, необходимые для установки и настройки последней версии Redmine на сервере CentOS 7, используя MariaDB в качестве базы данных и Passenger + Nginx в качестве сервера приложений Ruby.

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

Redmine - один из самых популярных программных инструментов для управления проектами с открытым исходным кодом. Redmine написан на Ruby и представляет собой приложение на основе широко известного веб-фреймворка Ruby on Rails.

Redmine включает в себя поддержку нескольких проектов, вики, системы отслеживания проблем, форумов, календарей, уведомлений по электронной почте и многое другое.


Убедитесь, что вы выполнили следующие предварительные условия, прежде чем продолжить этот урок:

Установите пакеты, необходимые для сборки 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-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 source rvm файл:


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


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


rvm install 2.5rvm --default use 2.5

Установка 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 каталог и установите упаковщик и другие зависимости 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:

  • Имя пользователя: admin
  • Пароль: admin

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


 

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


Вывод 

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


    Комментарии

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

Загрузка комментариев...