В этом руководстве мы настроили приложение Redmine на VPS сервере с операционной системой Centos 7. Задача получить готовый сервер с рабочим приложением и понятной настройкой в случае необходимости. Нам понадобится установить базу данных, дополнительные пакеты, Ruby и настроить веб сервер Nginx. В данном руководстве мы выполняем установку от пользователя root, если у Вас обычный, используйте команду sudo.
Конфигурация преднастроенного сервера доступна на форме заказа.
|
|
1. Установка базы данных MariaDB
yum update
yum install epel-release
vi /etc/yum.repos.d/MariaDB.repo
Скопируем конфигурацию ниже:
# MariaDB 10.9 CentOS repository list
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.9/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
Установим службу:
yum install MariaDB-client MariaDB-server
systemctl enable mariadb.service
systemctl restart mariadb.service
Создадим новую базу данных и пользователя
mysql
mysql> CREATE DATABASE redmine CHARACTER SET utf8;
mysql> GRANT ALL ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'You_pasw0Rd-967';
mysql> EXIT;
2. Установка необходимых пакетов
yum install curl gpg gcc gcc-c++ make patch autoconf automake bison libffi-devel libtool
yum install readline-devel sqlite-devel zlib-devel openssl-devel readline glibc-headers glibc-devel
yum install mariadb-devel zlib libyaml-devel bzip2 ImageMagick ImageMagick-devel
yum install yum-utils pygpgme
yum-config-manager --add-repo https://oss-binaries.phusionpassenger.com/yum/definitions/el-passenger.repo
yum install nginx passenger passenger-devel nginx-mod-http-passenger
Добавим пользователя:
useradd -m -U -r -d /opt/redmine redmine
usermod -a -G redmine nginx
chmod 750 /opt/redmine
3. Установка Redmine
su - redmine
$gpg --keyserver keyserver.ubuntu.com --recv-key 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
$curl -sSL https://get.rvm.io | bash -s stable
$source /opt/redmine/.rvm/scripts/rvm
$rvm install 2.7
$rvm --default use 2.7
$wget http://www.redmine.org/releases/redmine-4.2.8.tar.gz
$tar -xvf redmine-4.2.8.tar.gz
$cp /opt/redmine/redmine-4.2.8/config/database.yml.example /opt/redmine/redmine-4.2.8/config/database.yml
Отредактируем файл согласно созданному в базе данных пользователю:
$vi /opt/redmine/redmine-4.2.8/config/database.yml
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "You_pasw0Rd-967"
encoding: utf8
Сохраним файл и установим необходимые пакеты:
$cd ~/redmine-4.2.8
$gem install bundler
$bundle install --without development test postgresql sqlite
$bundle exec rake generate_secret_token
$RAILS_ENV=production bundle exec rake db:migrate
$exit
5. Настройка Nginx
Откроем файл и вставим туда конфигурацию:
#vi /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.2.8/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;
}
Сохраним файл и закомментируем дубли строк в файле модуля nginx по умолчанию:
vi /etc/nginx/conf.d/passenger.conf
#passenger_root /usr/share/ruby/vendor_ruby/phusion_passenger/locations.ini;
#passenger_ruby /usr/bin/ruby;
#passenger_instance_registry_dir /var/run/passenger-instreg;
Проверим конфигурацию командой
nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
systemctl restart nginx
systemctl enable nginx
Готово, ниже мы привели конфигурацию nginx для работы с SSL сертификатом, при наличие используйте ее и укажите в файле свой домен. В нашем случае мы использовали IP адрес.
5.1 Настройка Nginx с SSL сертификатом
/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;
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/ssl/example.com/fullchain.pem;
ssl_certificate_key /etc/ssl/example.com/privkey.pem;
ssl_trusted_certificate /etc/ssl/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.2.8/public;
SSL parameters
ssl_certificate /etc/ssl/example.com/fullchain.pem;
ssl_certificate_key /etc/ssl/example.com/privkey.pem;
ssl_trusted_certificate /etc/ssl/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;
}
Перезапустим службу для применения настроек:
systemctl restart nginx
Установка Redmine успешно завершена.