Thank you for reading this post, don't forget to subscribe!
Redmine - один из самых популярных программных инструментов для управления проектами с открытым исходным кодом. Redmine написан на Ruby и представляет собой приложение на основе широко известного веб-фреймворка Ruby on Rails.
Redmine включает в себя поддержку нескольких проектов, вики, системы отслеживания проблем, форумов, календарей, уведомлений по электронной почте и многое другое.
Убедитесь, что вы выполнили следующие предварительные условия
- Доменное имя, указывающее на публичный IP вашего сервера. В этом уроке мы будем использовать
example.com
. - Вы вошли как пользователь с привилегиями sudo .
Установите пакеты, необходимые для сборки Redmine и Ruby из исходного кода:
1 |
yum install curl gpg gcc gcc-c++ make patch autoconf automake bison libffi-devel libtool </code><code class="terminal-line">sudo yum install readline-devel sqlite-devel zlib-devel openssl-develh readline glibc-headers glibc-devel</code><code class="terminal-line">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 в качестве базы данных.
Войдите в оболочку MySQL, введя следующую команду:
1 |
sudo mysql |
В оболочке MySQL выполните следующую инструкцию SQL, чтобы создать новую базу данных :
1 |
CREATE DATABASE redmine CHARACTER SET utf8; |
Затем создайте учетную запись пользователя MySQL и предоставьте доступ к базе данных :
1 |
GRANT ALL ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'change-with-strong-password'; |
change-with-strong-password
с надежным паролем.После завершения выйдите из оболочки mysql, набрав:
1 |
EXIT; |
УСТАНОВКА PASSENGER И NGINX
Passenger - это быстрый и легкий сервер веб-приложений для Ruby, Node.js и Python, который можно интегрировать с Apache и Nginx. Мы установим Passenger как модуль Nginx.
Установите репозиторий EPEL и необходимые пакеты:
1 |
yum install epel-release yum-utils pygpgme</code><code class="terminal-line">sudo yum-config-manager --enable epel |
Включите репозиторий Phusionpassenger :
1 |
yum-config-manager --add-repo https://oss-binaries.phusionpassenger.com/yum/definitions/el-passenger.repo |
После того, как хранилище будет включено, обновите список пакетов и установите Nginx и Passenger с помощью:
1 |
yum install nginx passenger passenger-devel |
СОЗДАНИЕ НОВОГО ПОЛЬЗОВАТЕЛЯ СИСТЕМЫ
Создайте нового пользователя и группу, которая будет запускать экземпляр Redmine, для простоты мы назовем пользователя redmine
:
1 |
useradd -m -U -r -d /opt/redmine redmine |
Добавьте nginx
пользователя в новую группу пользователей и измените /opt/redmine
права доступа к каталогу, чтобы Nginx мог получить к нему доступ:
1 |
usermod -a -G redmine nginx</code><code class="terminal-line">sudo chmod 750 /opt/redmine |
УСТАНОВКА RUBY
Версия Ruby в репозиториях CentOS довольно устарела и не поддерживается Redmine. Мы установим Ruby с помощью RVM.
Переключитесь на пользователя redmine
, набрав:
1 |
sudo su - redmine |
Импортируйте ключи GPG и установите RVM:
1 |
gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB</code><code class="terminal-line">curl -sSL https://get.rvm.io | bash -s stable |
Используем в RVM source rvm
файл:
1 |
source /opt/redmine/.rvm/scripts/rvm |
Теперь мы можем установить Ruby, запустив:
1 |
rvm install 2.5</code><code class="terminal-line">rvm --default use 2.5 |
УСТАНОВКА REDMINE НА CENTOS
На момент написания этой статьи последняя стабильная версия Redmine - это версия 4.0.1.
Прежде чем перейти к следующим шагам, вам следует проверить страницу загрузки Redmine, чтобы узнать, доступна ли более новая версия.
Убедитесь, что вы выполняете следующие шаги как redmine
пользователь.
1. ЗАГРУЗКА REDMINE
Загрузите архив Redmine с помощью следующей команды curl :
1 |
curl -L http://www.redmine.org/releases/redmine-4.0.1.tar.gz -o redmine.tar.gz |
После завершения загрузки распакуйте архив:
1 |
tar -xvf redmine.tar.gz |
2. НАСТРОЙКА БАЗЫ ДАННЫХ REDMINE
Скопируйте пример файла конфигурации базы данных Redmine:
1 |
cp /opt/redmine/redmine-4.0.1/config/database.yml.example /opt/redmine/redmine-4.0.1/config/database.yml |
Откройте файл в текстовом редакторе:
1 |
nano /opt/redmine/redmine-4.0.1/config/database.yml |
Найдите production
раздел и введите базу данных MySQL и информацию о пользователе, которую мы создали ранее:
[codesyntax lang="php"]
1 2 3 4 5 6 7 |
production: adapter: mysql2 database: redmine host: localhost username: redmine password: "change-with-strong-password" encoding: utf8 |
[/codesyntax]
После этого сохраните файл и выйдите из редактора.
3. УСТАНОВКА ЗАВИСИМОСТЕЙ RUBY
Перейдите в redmine-4.0.1
каталог и установите упаковщик и другие зависимости Ruby:
1 |
cd ~/redmine-4.0.1</code><code class="terminal-line">gem install bundler --no-rdoc --no-ri</code><code class="terminal-line">bundle install --without development test postgresql sqlite |
4. ГЕНЕРАЦИЯ КЛЮЧЕЙ И МИГРАЦИЯ БАЗЫ ДАННЫХ
Выполните следующую команду, чтобы сгенерировать ключи и перенести базу данных:
1 |
bundle exec rake generate_secret_token</code><code class="terminal-line">RAILS_ENV=production bundle exec rake db:migrate |
НАСТРОЙКА NGINX
Вернитесь к своему пользователю sudo:
1 |
exit |
Откройте текстовый редактор и создайте следующий файл блока сервера Nginx :
1 |
sudo nano /etc/nginx/conf.d/example.com.conf |
[codesyntax lang="php"]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
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; } |
[/codesyntax]
Перед перезапуском службы Nginx выполните тест, чтобы убедиться в отсутствии синтаксических ошибок:
1 |
sudo nginx -t |
Если ошибок нет, результат должен выглядеть следующим образом:
1 2 3 |
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful |
Наконец, перезапустите сервис Nginx , набрав:
1 |
sudo systemctl restart nginx |
НАСТРОЙТЕ NGINX С SSL
Если у вас нет доверенного SSL-сертификата для вашего домена, вы можете создать бесплатный SSL-сертификат Let's Encrypt, следуя этим инструкциям .
После создания сертификата отредактируйте конфигурацию домена Nginx следующим образом:
1 |
sudo nano /etc/nginx/conf.d/example.com.conf |
[codesyntax lang="php"]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
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; } |
[/codesyntax]
ДОСТУП К REDMINE
Откройте браузер , введите домен и, если установка прошла успешно, появится экран
Учетные данные по умолчанию для Redmine:
- Имя пользователя: admin
- Пароль: admin
При первом входе в систему вам будет предложено изменить пароль
После изменения пароля вы будете перенаправлены на страницу учетной записи пользователя.