Поиск по сайту:

Как установить Redmine 3 с Nginx на CentOS 7


Redmine — это веб-приложение с открытым исходным кодом для управления проектами и отслеживания проблем. Redmine основан на Ruby on Rails Framework, имеет кросс-платформенную поддержку и поддержку кросс-баз данных и поставляется с переводами на 42 языка. Программное обеспечение позволяет отслеживать несколько проектов, оно объединяет новости, управление документами и файлами, а также поддержку вики для каждого проекта. Учетные записи пользователей могут быть аутентифицированы в каталоге LDAP, а стороннее программное обеспечение может быть подключено через REST API.

В этом руководстве мы установим Redmine 3.2 с Nginx в качестве веб-сервера и MySQL в качестве сервера базы данных в операционной системе CentOS 7 (64-разрядная версия).

Необходимое условие

  • CentOS 7 — 64-разрядная версия.
  • Привилегии root.

Шаг 1 — Установите зависимости Redmine

Redmine имеет множество зависимостей, которые мы установим в первую очередь. Войдите на свой сервер CentOS 7 как пользователь root:

ssh 

Установите все зависимости, которые требуются Redmine, и пакеты, необходимые для ruby и rvm, с помощью команды yum ниже:

yum install zlib-devel curl-devel openssl-devel httpd-devel apr-devel apr-util-devel mysql-devel ftp wget ImageMagick-devel gcc-c++ patch readline readline-devel zlib libyaml-devel libffi-devel make bzip2 autoconf automake libtool bison iconv-devel subversion

Программа установки запросит пароль MySQL. Введите новый пароль root для MySQL по запросу.

Шаг 2 — Установите Ruby и RVM

На этом этапе мы установим rvm (последнюю версию) и ruby 2.2. Redmine 3.2 поддерживает рубиновую версию 2.2. RVM (Ruby Version Manager) — это инструмент командной строки, который позволяет вам устанавливать, управлять и работать с несколькими средами ruby на одном сервере.

gpg2 --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
curl -L https://get.rvm.io | bash -s stable --ruby=2.2.5

Когда установка завершится, нам нужно перезагрузить RVM и добавить его в файл .bashrc для автоматической перезагрузки:

source /usr/local/rvm/scripts/rvm
echo '[[ -s "/usr/local/rvm/scripts/rvm" ]] && source "/usr/local/rvm/scripts/rvm"' >> ~/.bashrc

Перезагрузите файл .bashrc и проверьте версию Ruby и RVM.

source ~/.bashrc
ruby -v
rvm -v

Шаг 3 — Настройте базу данных для Redmine

На этом этапе мы установим пакет mysql-server из официального репозитория MySQL.

Добавьте репозиторий Oracle MySQL и проверьте список репозиториев.

rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
yum repolist

чтобы убедиться, что репозиторий сервера MySQL успешно добавлен.

Установите сервер MySQL с помощью этой команды yum.

yum install mysql-server

Когда установка завершится, запустите службу mysqld и настройте корневой пароль MySQL.

systemctl start mysqld

Сервер Mysql запущен. Теперь получите временный пароль root для сервера mysql с помощью команды grep ниже:

grep 'temporary password' /var/log/mysqld.log

Вы увидите результат, подобный этому:

2016-10-31T23:06:50.974555Z 1 [Note] A temporary password is generated for : />y.)uWui8j*

Итак, мы знаем, что корневой пароль для сервера MySQL: />y.)uWui8j*

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

mysql -u root -p
GENERATED PASSWORD: />y.)uWui8j*

Установите новый пароль пользователя root с помощью запроса mysql ниже:

ALTER USER 'root'@'localhost' IDENTIFIED BY '!';

Затем создайте новую базу данных с именем \redmine\ и создайте нового пользователя redmine с паролем redmine (здесь используйте безопасный пароль на своем сервере!). Затем предоставьте пользователю все привилегии в базе данных redmine.

create database redmine;
create user !';
flush privileges;
exit

База данных и пользователь созданы.

Шаг 4 — Установите Phusion Passenger и Nginx

Phusion Passenger — это сервер веб-приложений, который можно использовать вместе с apache и nginx. Он поддерживает несколько языков: Ruby, Python и Nodejs. Это легко для нас, быстро, может обрабатывать больше трафика и обеспечивает повышение безопасности.

В этой главе мы установим Phusion Passenger и интегрируем его с нашим веб-сервером nginx. Установите пассажира с помощью приведенной ниже команды gem, затем запустите командуpassenger-nginx-module.

gem install passenger --no-ri --no-rdoc
passenger-install-nginx-module

Команда спросит вас, какой язык программирования следует использовать, выберите Ruby и Python.

Вас спросят об установке nginx; выберите \Да: загрузить, скомпилировать и установить Nginx для меня. (рекомендуется)\.

Вам будет предложено указать каталог установки nginx, используйте по умолчанию /opt/nginx/, просто нажмите \Enter\.

Шаг 5 — Настройте Nginx

После завершения установки nginx перейдите в каталог установки и отредактируйте файл nginx.conf с помощью редактора.

cd /opt/nginx/
cd conf/
vim nginx.conf

Вставьте приведенную ниже конфигурацию в строку 24:

include vhost/*.conf;

Сохраните файл и выйдите из редактора.

Создайте новый каталог vhost для конфигурации виртуального хоста.

mkdir -p /opt/nginx/conf/vhost

Перейдите в каталог vhost и создайте конфигурацию виртуального хоста redmine с помощью vim:

cd /opt/nginx/conf/vhost/
vim redmine.conf

Вставьте конфигурацию виртуального хоста ниже:

    server {
        listen       80;
        server_name  www.redmine.me;

        root /var/www/redmine/public;
        passenger_enabled on;
        client_max_body_size      10m; # Max attachemnt size

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

Сохраните файл.

Ubuntu 16.04 использует systemd в качестве системы инициализации. Далее настраиваем nginx для systemd. Перейдите в каталог systemd и создайте новый файл службы с именем nginx.service.

cd /lib/systemd/system/
vim nginx.service

Вставьте скрипт nginx для systemd ниже:

[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

Сохранить и выйти.

Перезагрузите службу systemd и попробуйте запустить nginx командой systemctl:

systemctl daemon-reload
systemctl start nginx

Если вы хотите проверить nginx, проверьте открытый порт 80:

netstat -plntu | grep nginx

Результат должен быть таким:

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      4871/nginx

Шаг 6 — Установите Redmine

Создайте новый каталог для установки Redmine. Здесь я буду использовать каталог /var/www/.

mkdir -p /var/www/

Перейдите в каталог /var/www/ и загрузите Redmine с помощью команды svn:

cd /var/www/
svn co https://svn.redmine.org/redmine/branches/3.2-stable redmine

Перейдите в каталог Redmine и скопируйте файл конфигурации и файл конфигурации базы данных:

cd redmine
cp config/configuration.yml.example config/configuration.yml
cp config/database.yml.example config/database.yml

Отредактируйте файл database.yml с помощью vim:

vim config/database.yml

В строке производственного раздела введите имя пользователя и пароль базы данных:

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

Сохраните файл.

В каталоге redmine создайте несколько новых каталогов и измените владельца на пользователя и группу none:

mkdir -p tmp tmp/pdf public/plugin_assets
sudo chown -R nobody:nobody files log tmp public/plugin_assets
sudo chmod -R 775 files log tmp public/plugin_assets

Установите зависимости бандлера и гема для redmine:

gem install bundler
bundle install --without development test

Создайте секретный токен, затем создайте базу данных:

bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake redmine:load_default_data

Перезапустите nginx и зайдите на доменное имя redmine с помощью веб-браузера:

systemctl restart nginx

Посетите установку redmine, моя: www.redmine.co

Войдите на страницу администратора: www.redmine.co/login

Пользователь и пароль по умолчанию — admin.

Создайте новый образец проекта.

Пример страницы проекта.

Установка Redmine с Nginx и MySQL на CentOS 7 прошла успешно.

Заключение

Redmine – это веб-приложение для управления проектами и отслеживания проблем. Redmine является кроссплатформенным, поэтому мы можем запускать его на Windows, Linux или Mac OS. Redmine поддерживает многие базы данных, такие как MySQL, PostgreSQL, Microsoft SQL Server и SQLite. Redmine прост в установке и настройке, мы можем использовать Apache или Nginx в качестве веб-сервера. Redmine очень мощный и имеет множество функций, таких как многоязычная поддержка, управление файлами, вики и REST API. Redmine — одно из лучших бесплатных решений, если вы хотите создать собственное управление проектами с отслеживанием проблем.