Установка redmine на CentOS 7

Written by on . Posted in Linux, Redmine

На только что установленный centos7 с диска CentOS-7-x86_64-Minimal-1503-01.iso будем устанавливать redmine 3.1.2. От предыдущей статьи redmine на ubuntu установка не будет сильно отличаться, здесь опишем только отличия.

  1. redmine-3.1.2.zip (качаем с официального сайта redmine.org)
  2. Ставим дополнительные пакеты к CentOS 7
  3. mariadb в место mysql
  4. ruby
  5. Установка redmine
  6. passenger для nginx
  7. обновим БД redmine с версии 2.5.3 на 3.1.2

PS: Если Вам помогла эта статья не забудьте сказать «спасибо» для благодарности используется вертикальная и горизонтальная кнопка на сайте.

Установку будем делать от пользователя redmine.

root@red-test:/root# useradd -m redmine -s /bin/bash
root@red-test:/root# gpasswd -a redmine wheel
#распакуем redmine-3.1.2.zip в /opt/redmine-3.1.2 и сделаем #влдельцем redmine
root@red-test:/root# chown redmine:redmine -R /opt/redmine-3.1.2

Устанавливаем дополнительные пакеты

yum install -y ImageMagick ImageMagick-devel patch libyaml-devel glibc-headers autoconf gcc-c++ glibc-devel patch readline-devel libffi-devel openssl-devel bzip2 automake libtool bison sqlite-devel mariadb-server mariadb mariadb-devel libcurl-devel

Настройка БД

Для управлением mariadb:

root@red-test:/root# systemctl start mariadb #запустить сервер БД
root@red-test:/root# systemctl stop mariadb  #остановить сервер БД

root@red-test:/root# systemctl enable mariadb #Включить в автозагрузку
root@red-test:/root# systemctl status mariadb #Проверить статус

подключаемя к серверу БД

mysql -p -u root

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> CREATE DATABASE redmine CHARACTER SET utf8;
mysql> CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'my_password';
mysql> GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';

Редактируем файл конфигурации database.yml

redmine@red-test:/opt/redmine-2.5.3$ cp config/database.yml.example config/database.yml
redmine@red-test:/opt/redmine-2.5.3$ nano config/database.yml
production:
   adapter: mysql2
   database: redmine
   host: localhost
   username: redmine
   password: "my_password"
   encoding: utf8

Устанавливаем ruby при помощи rvm

Установка ruby на centos7 ни чем не отличается от ubuntu-server 14.04. Статья как установить ruby при помощи rvm. На момент написания статьи по умолчанию установилась версия ruby-2.2.1 для redmine-3.1.2 годится, менять ни чего не будем.
Установка закончится примерно следующими строками

...
30 gems installed

  * To start using RVM you need to run `source /home/redmine/.rvm/scripts/rvm`
    in all your open shell windows, in rare cases you need to reopen all shell windows.

  * To start using rails you need to run `rails new `.

Выполним скрипт как написано:

source /home/redmine/.rvm/scripts/rvm

После установки посмотреть можно командой rvm list

Установка redmine 3.1.2

Перед установкой вы должны находиться в папке redmine у меня — это /opt/redmine-3.1.2 и уже в ней делать оставшуюся установку gem.

[redmine@red-test redmine-3.1.2]$ gem install bundler
[redmine@red-test redmine-3.1.2]$ bundle install --without development test

#Установка закончилась примерно 
…
Installing request_store 1.0.5
Installing rmagick 2.15.4 with native extensions
Bundle complete! 28 Gemfile dependencies, 47 gems now installed.
Gems in the groups development and test were not installed.
Use `bundle show [gemname]` to see where a bundled gem is installed.

Дальше все по инструкции:

[redmine@localhost redmine-3.1.2]$ bundle exec rake generate_secret_token
[redmine@localhost redmine-3.1.2]$ RAILS_ENV=production bundle exec rake db:migrate

[redmine@localhost redmine-3.1.2]$ RAILS_ENV=production bundle exec rake redmine:load_default_data
/home/redmine/.rvm/gems/ruby-2.2.1/gems/htmlentities-4.3.1/lib/htmlentities/mappings/expanded.rb:465: warning: duplicated key at line 466 ignored: "inodot"

Select language: ar, az, bg, bs, ca, cs, da, de, el, en, en-GB, es, es-PA, et, eu, fa, fi, fr, gl, he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sq, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en] ru
====================================
Default configuration data loaded.

passenger + nginx

[redmine@red-test redmine-3.1.2]$ gem install passenger
[redmine@localhost redmine-3.1.2]$ rvmsudo passenger-install-nginx-module

Welcome to the Phusion Passenger Nginx module installer, v5.0.21.

This installer will guide you through the entire installation process. It
shouldn't take more than 5 minutes in total.

Here's what you can expect from the installation process:

 1. This installer will compile and install Nginx with Passenger support.
 2. You'll learn how to configure Passenger in Nginx.
 3. You'll learn how to deploy a Ruby on Rails application.

Don't worry if anything goes wrong. This installer will advise you on how to
solve any problems.

Press Enter to continue, or Ctrl-C to abort.
--------------------------------------------
Which languages are you interested in?

Use  to select.
If the menu doesn't display correctly, press '!'

 ‣ ⬢  Ruby
   ⬢  Python
   ⬡  Node.js
   ⬡  Meteor
Checking for required software...

 * Checking for C compiler...
      Found: yes
      Location: /usr/bin/cc
...
Automatically download and install Nginx?

Nginx doesn't support loadable modules such as some other web servers do,
so in order to install Nginx with Passenger support, it must be recompiled.

Do you want this installer to download, compile and install Nginx for you?

 1. Yes: download, compile and install Nginx for me. (recommended)
    The easiest way to get started. A stock Nginx 1.8.0 with Passenger
    support, but with no other additional third party modules, will be
    installed for you to a directory of your choice.

 2. No: I want to customize my Nginx installation. (for advanced users)
    Choose this if you want to compile Nginx with more third party modules
    besides Passenger, or if you need to pass additional options to Nginx's
    'configure' script. This installer will  1) ask you for the location of
    the Nginx source code,  2) run the 'configure' script according to your
    instructions, and  3) run 'make install'.

Whichever you choose, if you already have an existing Nginx configuration file,
then it will be preserved.

Enter your choice (1 or 2) or press Ctrl-C to abort: 1

Некоторое отличие от модуля passenger для nginx от apache2. Nginx не подгружает внешние модули, по этому nginx необходимо пересобрать. Для выполнение компиляции в автоматическом режиме необходимо выбрать 1, если есть необходимость добавить другие опции для сборки тогда скачивайте nginx самостоятельно. Выбирайте 2, далее по инструкции.

В моем случае установка/сборка nginx была выполнена автоматически в папку /opt/nginx
ниже приведены рекомендации для изменения конфигурационного файла. И добавим директиву server для нашей конфигурации.

Nginx with Passenger support was successfully installed.

The Nginx configuration file (/opt/nginx/conf/nginx.conf)
must contain the correct configuration options in order for Phusion Passenger
to function correctly.

This installer has already modified the configuration file for you! The
following configuration snippet was inserted:
#...
  http {
      #...
      passenger_root /home/redmine/.rvm/gems/ruby-2.2.1/gems/passenger-5.0.21;
      passenger_ruby /home/redmine/.rvm/gems/ruby-2.2.1/wrappers/ruby;
      #...

    server {
	listen		80;
	server_name	redmine;
	passenger_enabled on;
	root /opt/redmine-3.1.2/public;
    }
   #...
}

Управлять nginx
старт сервера

[redmine@red-test /opt]$ sudo /opt/nginx/sbin/nginx

стоп, выход …
nginx -s [ stop | quit | reopen | reload ]

Для мониторинга за системой можно использовать:

[redmine@red-test /opt]$ sudo passenger-status
[redmine@red-test /opt]$ sudo passenger-memory-stats

Миграция базы с redmine 2.5.3 на redmine 3.1.2

Обязательно сделать backup БД

далее по инструкции /opt/redmine-3.1.2/doc/UPGRADING

[redmine@localhost redmine-3.1.2]$ bundle exec rake generate_secret_token
#Migrate your database
[redmine@localhost redmine-3.1.2]$ bundle exec rake db:migrate RAILS_ENV="production"
[redmine@localhost redmine-3.1.2]$ bundle exec rake db:migrate_plugins RAILS_ENV="production"
[redmine@localhost redmine-3.1.2]$ bundle exec rake tmp:cache:clear tmp:sessions:clear
#Restart the application server
[redmine@localhost redmine-3.1.2]$ /opt/nginx/sbin/nginx -s reload

Comments (7)

  • Sergei Romanov

    |

    Thank you very much!
    It work’s fine except nginx config. I had to modifed it.

    server {
    listen 80;
    server_name finance.modulew.local;
    passenger_enabled on;
    root /redmine/public;

    location @ruby {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_read_timeout 300;
    proxy_pass http://redmine; #upstream redmine
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    root html;
    }

    But i have another issue, may be you can help me. How to add nginx to autostart?
    /etc/rc.local doesn’t work in CentOS 7 and i didn’t find scripts for systemD.
    }

    Reply

    • Administrator

      |

      By default /etc/rc.local and /etc/rc.d/rc.local are no longer executable in CentOS7 with the new systemd-changes. Follow the below steps to make the script /root/g.sh run at boot time:

      chmod +x /etc/rc.d/rc.local

      Restart and check

      Reply

  • andragen

    |

    Забыл добавить
    sudo yum install mariadb-devel
    иначе при bundle install —without development test получиться ошибка

    An error occurred while installing mysql2 (0.3.21), and Bundler cannot continue.
    Make sure that `gem install mysql2 -v ‘0.3.21’` succeeds before bundling.

    которая не будет решаться командой `gem install mysql2 -v ‘0.3.21’

    Reply

  • Анна

    |

    Спасибо, инструкция рабочая!!! Я немного подправила установку ruby, получилось всего несколько строк:
    passwd redmine
    su redmine
    command curl -sSL https://rvm.io/mpapis.asc | gpg2 —import —
    \curl -sSL https://get.rvm.io | bash -s stable —rails
    source /home/redmine/.rvm/scripts/rvm
    echo «source /home/redmine/.rvm/scripts/rvm» >> ~/.bashrc
    rvm list

    При установке nginx не хватило памяти, пришлось ее расширять. Для виртуалки зафиксировала следующие данные:
    Диск — не менее 4ГБ
    Память — не менее 1ГБ. Вот такой nginx требовательный

    И с автозагрузкой nginx:
    chmod +x /etc/rc.d/rc.local
    nano /etc/rc.d/rc.local
    Вниз файла добавила строку:
    /opt/nginx/sbin/nginx

    Спасибо!

    Reply

  • Dmitry

    |

    Добрый день!
    Скажите, в первой и второй строке различие redmain и redmine — это просто опечатка?
    root@red-test:/root# useradd -m redmain -s /bin/bash
    root@red-test:/root# gpasswd -a redmine wheel

    Reply

    • Administrator

      |

      Конечно опечатка. Исправил.
      Спасибо что заметили.

      Reply

Leave a comment