Установка Redmine 4 на Debian 9

Задача была обновить redmine с версии 3.4.4 на 4.0.1. Одновременно с этим нужно было переехать на новый виртуальный сервер из-за смены тарифного плана на хостинге.

Данная инструкция писалась параллельно с проводимой установкой Redmine 4.0.1 на Debian 9 Stretch (чистый, нулячий сервер). В качестве сервера выступал VDS от хостинга «1vds». Кстати, рекомендую. (Если будете регистрироваться — введите промокод 648520249, который даст скидку 25%). При заказе услуги я не стал выбирать предустановку LAMP (аббревиатура от Linux Apache MySQL PHP). Все поставим сами. Крайне желательно, чтобы на сервере было не менее 2 гигабайт оперативной памяти! С меньшими ресурсами у меня не захотел ставиться passenger.

Для тех, кто не любит долго разбираться в тонкостях настройки и работы приложений, не имеет своего системного администратора и серьезно относится к отказоустойчивости системы бизнес-процессов, рекомендую использовать облачный Redmine. Например, от компании RedmineUP. В облаке уже развернут базовый Redmine, дополнительно установлены популярные плагины Agile, CRM, Helpdesk и ребята помогают с конфигурацией и настройкой пользователей. Одним словом — все готово к работе. Пробуйте бесплатно.

На момент написания статьи версии ПО:

Debian 9.8
Redmine 4.0.1
Ruby 2.6.1
Rails 5.2.2
Apache 2.4.25
Passenger 6.0.1
MariaDB 10.3


Обновляем пакеты, настраиваем локализацию консоли и выставляем правильное время

apt-get update
apt-get upgrade

На новом сервере не русифицирована консоль — сделаем это:

apt-get install locales
dpkg-reconfigure locales

Выбрать кодировку «ru_RU.UTF-8».

dpkg-reconfigure tzdata

Дополнительный софт

apt-get install mc
apt-get install sudo

Устанавливаем Ruby

Установку проводим при помощи RVM (Ruby Version Manager):

apt-get install curl
apt-get install dirmngr
gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
curl -sSL https://get.rvm.io | bash -s stable

Добавляем пользователя root в группу rvm, как этого требует установщик:

usermod -G rvm root

После установки RVM была дана инструкция по запуску RVM:

To start using RVM you need to run `source /etc/profile.d/rvm.sh` in all your open shell windows, in rare cases you need to reopen all shell windows.

Сделаем это в текущей сессии:

source /etc/profile.d/rvm.sh

Устанавливаем Ruby ruby-2.6.1:

rvm install ruby-2.6.1

Утилита обновит систему и установит необходимые пакеты.

Далее определяем версию Ruby по умолчанию:

rvm use ruby 2.6.1 --default
rvm gemset create redmine
rvm use 2.6.1@redmine --default

Установка базы данных

apt-get install software-properties-common dirmngr
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8
add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mirror.mephi.ru/mariadb/repo/10.3/debian stretch main'
apt-get update
apt-get install mariadb-server
apt-get install libmysqlclient-dev

Создаем базу данных для CRM

Входим в консоль управления СУБД:

mysql -uroot -p

Создаем базу для redmine. Пароль должен быть такой же, как на старом сервере. (Посмотреть можно в конфиге по адресу config/database.yml):

create database redmine character set utf8;
create user 'redmine'@'localhost' identified by 'HARDPASSWORD';
grant all privileges on redmine.* to 'redmine'@'localhost';
exit;

HARDPASSWORD замените на свое. По идее пароль должен быть такой же, как на старом сервере, но при желании можно и сменить.

Устанавливаем Redmine

apt-get install git
cd /opt
git clone https://github.com/redmine/redmine.git
chmod 775 -R /opt/redmine
chown -R www-data:www-data /opt/redmine

Устанавливаем RMagic

apt-get install graphicsmagick-libmagick-dev-compat
apt-get install libmagickwand-dev

Создаем конфиг для базы данных

cp /opt/redmine/config/database.yml.example /opt/redmine/config/database.yml
mcedit /opt/redmine/config/database.yml

Делаем чтобы было так:

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "HARDPASSWORD"
  encoding: utf8

Устанавливаем bundler и все необходимые на данный момент gem’ы

cd /opt/redmine
source /etc/profile.d/rvm.sh
gem install bundler -v 1.17.1
bundle install --without development test
bundle exec rake generate_secret_token

Переносим данные со старого сервера

Бэкапим информацию на старом сервере:

mysqldump -uroot -p redmine > ./redmine.sql
tar -czf /opt/redmine.tar.gz /opt/redmine

Копируем оба новых получившихся файла на новый сервер. Разворачиваем их:

  • Распаковываем архив redmine.tar.gz командой tar -xzf redmine.tar.gz.
  • Заходим в распакованную директорию и переносим из нее все, что находится в каталоге /files/ в такую же папку нового редмайна.
  • Также копируем старый конфиг из каталога /config/ (файл configuration.yml).
  • Заливаем дамп базы данных:
mysql -uroot -p redmine < ./redmine.sql

Еще раз скинем права:

chmod 775 -R /opt/redmine
chown -R www-data:www-data /opt/redmine

Делаем миграцию и грузим старые данные в новую базу:

cd /opt/redmine
source /etc/profile.d/rvm.sh
rake db:migrate RAILS_ENV=production

Настраиваем веб-сервер

apt-get install apache2
apt-get install libcurl4-openssl-dev
apt-get install apache2-dev
cd /opt/redmine/
source /etc/profile.d/rvm.sh
gem install passenger
passenger-install-apache2-module

Следуем инструкциям установщика. В самом конце скрипт попросит внести правки в конфиги apache. Открываем новую консольку и выполняем (ВНИМАНИЕ! обязательно проверьте так ли у вас, потому как версия passenger’а скорее всего поменялась, и будут уже другие цифры; ниже только ПРИМЕР):

touch /etc/apache2/mods-available/passenger.conf
touch /etc/apache2/mods-available/passenger.load
echo "LoadModule passenger_module /usr/local/rvm/gems/ruby-2.6.1@redmine/gems/passenger-6.0.1/buildout/apache2/mod_passenger.so" > /etc/apache2/mods-available/passenger.load
mcedit /etc/apache2/mods-available/passenger.conf

И добавляем в него (АНАЛОГИЧНО ПРОВЕРЯЕМ ВЕРСИЮ):

<IfModule mod_passenger.c>
    PassengerRoot /usr/local/rvm/gems/ruby-2.6.1@redmine/gems/passenger-6.0.1
    PassengerDefaultRuby /usr/local/rvm/gems/ruby-2.6.1@redmine/wrappers/ruby
</IfModule>

Сохраняем, закрываем. Выполняем:

a2enmod passenger
systemctl restart apache2

Возвращаемся в консоль, где происходит установка и жмем Enter для завершения установки.

Настройка Apache и Passenger

touch /etc/apache2/sites-available/redmine.conf
mcedit /etc/apache2/sites-available/redmine.conf

Туда:

<VirtualHost *:80>
    ServerName new-redmine.ru
    ServerAdmin admin@new-redmine.ru
    DocumentRoot /opt/redmine/public
    RailsEnv production
    RailsBaseURI /

    <Directory /opt/redmine/public>
        Options Indexes ExecCGI FollowSymLinks
        Options -MultiViews
        AllowOverride all

        <RequireAll>
            Require all granted
        </RequireAll>
    </Directory>

</VirtualHost>

Сохраняем, выходим. Выполняем:

a2ensite redmine
systemctl reload apache2

ImageMagic

apt-get install imagemagick
systemctl reload apache2

Поздравляю! Установка завершена. Результат:

Скриншот страницы с информацией о версиях