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

Как установить Redmine 3.2 с Nginx на Ubuntu 16.04


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

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

Предпосылки

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

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

У Redmine много зависимостей, но мы можем легко установить их с помощью apt. Первый шаг — стать пользователем root, а затем обновить репозиторий Ubuntu. Все дальнейшие шаги в этом руководстве выполняются от имени пользователя root, поэтому я использую \sudo su\ вместо добавления sudo к каждой команде.

sudo su
apt-get update

Установите зависимости Redmine с помощью команды apt ниже:

apt-get install mysql-server mysql-client libmysqlclient-dev imagemagick libmagickwand-dev libcurl4-openssl-dev git-core subversion

Установщик запросит новый корневой пароль MySQl, введите там новый и безопасный пароль MySQL.

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

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

gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
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

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

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

mysql -u root -p
TYPE YOUR PASSWORD

Затем создайте новую базу данных с именем \redmine\ и нового пользователя с именем redmine и паролем redmine (используйте лучший пароль при установке, это всего лишь пример), а затем предоставьте привилегии пользователю redmine для База Редмайн.

create database redmine;
create user identified by 'redmine';
flush privileges;
q\

База данных и пользователь созданы. Пожалуйста, используйте безопасный пароль на вашем сервере!

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

Phusion Passenger — это веб-сервер и сервер приложений, который можно интегрировать с веб-серверами Apache и Nginx. Он поддерживает несколько языков, таких как Ruby, Python и Nodejs. Он прост в использовании, быстр и повышает безопасность установки.

В этой части мы установим Phusion Passenger и интегрируем его с Nginx. Redmine будет работать под управлением веб-сервера Nginx. Установите Passenger с помощью команды 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.conf с помощью редактора, здесь я воспользуюсь редактором vim.

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

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

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;
        }
    }

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

Далее мы настроим 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:

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

В производственной строке введите сведения о базе данных, пользователе базы данных и пароле. Используйте детали базы данных, которые вы создали в главе 3.

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

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

В каталоге redmine создайте новый каталог и измените владельца на www-data:

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

Затем установите сборщик и зависимости gem для 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.me

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

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

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

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

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

Заключение

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