Как установить 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 — одно из лучших бесплатных решений, если вы хотите создать собственное управление проектами с отслеживанием проблем.