Установка Redmine 4.0 на Ubuntu 18.04

В данной статье рассматривается мой первый опыт установки Redmine. Используемое в статье программное обеспечение:

  • Предустановленная операционная система Ubuntu 18.04 x64
  • Предустановлен OpenSSH
  • СУБД PostgreSQL
  • Веб-сервер Nginx
  • Фреймворк Ruby on rails
  • Redmine 4.0

Итак, мы уже сделали все приготовления, установили и настроили операционную систему, подключились в терминале к серверу по SSH.

Затем сразу устанавливаем postgresql. Для установки свежей версии нужно выполнить последовательно следующие команды:
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'

wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | sudo apt-key add -

sudo apt-get update

sudo apt-get install postgresql postgresql-contrib -y

Теперь переключаемся на пользователя postgres:
sudo su - postgres

Под пользователем postgres запускаем консоль управления СУБД:
psql

Здесь создаем базу данных и пользователя для этой базы данных (ниже redmine_user можете заменить на придуманное вами имя пользователя, а redmine_db на придуманную вами базу данных:
CREATE ROLE redmine_user LOGIN ENCRYPTED PASSWORD 'redmine_user_пароль';

CREATE DATABASE redmine_db WITH ENCODING='UTF8' OWNER=redmine_user;

\q

logout

Теперь установим SVN. Для этого выполним последовательно команды:
sudo apt-get update

sudo apt-get install subversion

Далее, вы должны решить, в каком каталоге у вас будет находиться Redmine. Например, определяемся, что путь будет «/home/redmine». Переходим в нужный каталог и скачиваем Redmine с репозитория SVN:
cd /home

svn co https://svn.redmine.org/redmine/branches/4.0-stable redmine
Во время скачивания принимаем сертификат сервера, выбирая ответ на вопрос «(p)ermanently».

Теперь нам нужно настроить подключение Redmine к СУБД postgresql:
cd /home/redmine

sudo cp config/database.yml.example config/database.yml

sudo nano config/database.yml

Содержимое файла config/database.yml должно быть следующим (остальное удаляем):
production:
adapter: postgresql
database: redmine_db
host: localhost
username: redmine_user
password: redmine_user_пароль

Ставим дополнительные библиотеки:
sudo apt-get install build-essential imagemagick libcurl4-openssl-dev liblzma-dev libmagick++-dev libssl-dev passenger patch python-dev python-pip ruby ruby-dev zlib1g-dev -y

Теперь ставим дополнительные инструменты для Ruby:
sudo gem install bundler

sudo gem install nokogiri --no-ri --no-rdoc

sudo gem install rmagick --no-ri --no-rdoc

sudo bundle install

sudo gem install rake

sudo gem install passenger

sudo bundle install

sudo bundle exec rake generate_secret_token

Готовим базу данных для Redmine:
RAILS_ENV=production bundle exec rake db:migrate

RAILS_ENV=production REDMINE_LANG=ru bundle exec rake redmine:load_default_data

Теперь устанавливаем веб-сервер Nginx:
sudo passenger-install-nginx-module

В процессе установки Nginx выбираем следующие варианты и жмем Enter:

  1. Ruby
  2. 1
  3. Указываем директорию установки (по умолчанию «/opt/nginx»)

Редактируем файл конфигурации Nginx:
sudo nano /opt/nginx/conf/nginx.conf

В блок http добавляем следующий текст:
include vhost/*.conf

Далее настраиваем доступ к хосту Redmine:
sudo mkdir /opt/nginx/conf/vhost

sudo nano /opt/nginx/conf/vhost/redmine.conf

На момент настройки у меня не был заведен домен для Redmine, поэтому мой файл настроек хоста Redmine выглядел следующим образом:
server {
listen 80;
root /home/redmine/public;
passenger_enabled on;
passenger_document_root /home/redmine/public;
client_max_body_size 100m;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

Теперь создаем файл службы веб-сервера Nginx:
sudo nano /lib/systemd/system/nginx.service

Содержимое файла:
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/opt/nginx/logs/nginx.pid
ExecStartPre=/opt/nginx/sbin/nginx -t
ExecStart=/opt/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

Проверяем запуск службы:
sudo systemctl daemon-reload

sudo systemctl start nginx

sudo systemctl enable nginx.service

Готово! Теперь можно запустить веб-браузер и начать настройку и использование Redmine.

  1. Антон

    У автора предустановлена куча зависимостей. В моем случае понадобились дополнительно: linuxbrew-wrapper brew pacman pkg-config ruby-dev
    И таки да, gem под sudo не очень хорошо, о чем gem и сообщает, а так же не может найти некоторые пакете. Спасибо stackoverflow.

  2. Андрей

    Может кому пригодится, установка Passenger на уже установленный Nginx

    sudo apt-get install -y dirmngr gnupg
    sudo apt-key adv —keyserver hkp://keyserver.ubuntu.com:80 —recv-keys 561F9B9CAC40B2F7
    sudo apt-get install -y apt-transport-https ca-certificates

    sudo sh -c ‘echo deb https://oss-binaries.phusionpassenger.com/apt/passenger bionic main > /etc/apt/sources.list.d/passenger.list’
    sudo apt-get update

    sudo apt-get install -y libnginx-mod-http-passenger
    if [ ! -f /etc/nginx/modules-enabled/50-mod-http-passenger.conf ]; then sudo ln -s /usr/share/nginx/modules-available/mod-http-passenger.load /etc/nginx/modules-enabled/50-mod-http-passenger.conf ; fi
    sudo ls /etc/nginx/conf.d/mod-http-passenger.conf

    sudo service nginx restart
    sudo /usr/bin/passenger-config validate-install
    sudo /usr/sbin/passenger-memory-stats

  3. АйВан

    Welcome back to your blog! 😀

Оставить комментарий