В данной статье рассматривается мой первый опыт установки 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:
- Ruby
- 1
- Указываем директорию установки (по умолчанию «/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.
У автора предустановлена куча зависимостей. В моем случае понадобились дополнительно: linuxbrew-wrapper brew pacman pkg-config ruby-dev
И таки да, gem под sudo не очень хорошо, о чем gem и сообщает, а так же не может найти некоторые пакете. Спасибо stackoverflow.
Может кому пригодится, установка 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
Welcome back to your blog! 😀