Инструменты пользователя

Инструменты сайта


redmine

Установка Redmine на CentOS 7 Posted on 24.01.2015 by mr.exz Redmine — открытое серверное веб-приложение для управления проектами и задачами (в том числе для отслеживания ошибок). На сайте проекта все подробно описано об установке. Мы же разберем некоторые особенности при установки на CentOS 7.

Подготовка

1) Добавим сторонние репозиторий nginx и epel

# yum install epel-release # vim /etc/yum.repos.d/nginx.repo

[nginx] name=nginx repo baseurl=http://nginx.org/packages/rhel/7/$basearch/ gpgcheck=0 enabled=1

2) Установим необходимые пакеты.

# yum update # yum install ruby.x86_64 mariadb mariadb-server wget freetds-devel.x86_64 ImageMagick-c++-devel.x86_64 mariadb-devel.x86_64 gcc ruby-devel rubygem-json.x86_64 rubygem-psych.x86_64 libyaml nginx.x86_64

Замечу что в CentOS 7 в репозитории вместо пакета mysql-server находиться mariadb-server. Предполагаю что такое изменение произошло из за неопределенной политике лицензирования Oracle.

3) Настроим сервис базы данных и создадим отдельную базы для redmine

Добавим в автозагрузку сервис базы данных. # systemctl enable mariadb.service # systemctl start mariadb

Подключимся к сервису базы данных и создадим базу # mysql -u root MariaDB [(none)]> CREATE DATABASE redmine CHARACTER SET utf8; CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'redmine'; GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';

Установка Redmine

1) Скачаем с сайта архив с исходными кодами.

# cd /srv/ # wget http://www.redmine.org/releases/redmine-2.6.1.tar.gz # tar -xf redmine-2.6.1.tar.gz # mv redmine-2.6.1 redmine

2) Отредактируем фаил настроек базы данных

# cd /srv/redmine/config # cp database.yml.example database.yml # vim database.yml

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

3) Установим bundler и необходимые gem’ы

# cd /srv/redmine # gem install bundler #export PATH='/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/user/.local/bin:/home/user/bin' # bundle install –without development test

4) Сгенерировать секретный ключ и инициализируем базу

# rake generate_secret_token # RAILS_ENV=production rake db:migrate # RAILS_ENV=production rake redmine:load_default_data # mkdir -p tmp tmp/pdf public/plugin_assets

5) Запустим Redmine # ruby script/rails server webrick -e production

6) Настрока Redmine + nginx + god + unicorn

Настройка Redmine nginx unicorn god Posted on 01.02.2015 by mr.exz В предыдущей статье мы установили Redmine и проверили его работу через встроенный http сервер webric. Webric не самый лучший выбор для http сервера.

По этому мы рассмотрим другой http сервер Unicorn, который является более быстрым и может поддерживать большое количество соединений.

А так же для подстраховки будем использовать god — Фрэймвор на Ruby для мониторинга работы процессов. God будет «воскрешать» наши unicorn процессы если они вдруг внезапно «умрут».

Настройка unicorn

# cd /srv/redmine # vim Gemfile #добавим строку gem 'unicorn' #установим модуль # bundle install –without development test #создадим фаил настроек unicorn.rb # vim config/unicorn.rb

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 worker_processes 1 #Количество процессов master + 1 потомок working_directory «/srv/redmine/» #Домашний каталог redmine

preload_app true

timeout 30

listen «/srv/redmine/tmp/sockets/unicorn.sock», :backlog ⇒ 64 #путь до unix сокета к нему будет обращаться nginx

pid «/srv/redmine/tmp/pids/unicorn.pid»

stderr_path «/srv/redmine/log/unicorn.stderr.log» stdout_path «/srv/redmine/log/unicorn.stdout.log»

before_fork do |server, worker|

  defined?(ActiveRecord::Base) and
      ActiveRecord::Base.connection.disconnect!

end

after_fork do |server, worker|

  defined?(ActiveRecord::Base) and
      ActiveRecord::Base.establish_connection

end Проверим что все правильно настроено

# bundle exec unicorn_rails -E production -c config/unicorn.rb -D # ps ax | grep corn 2752 ? Sl 0:03 unicorn_rails master -E production -c config/unicorn.rb -D 2757 ? Sl 0:00 unicorn_rails worker[0] -E production -c config/unicorn.rb -D 2761 pts/0 S+ 0:00 grep –color=auto corn

Настройка god

# gem install god # vim /etc/redmine.god

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 RAILS_ROOT = '/srv/redmine/'

God.watch do |w|

  w.name = 'redmine'
  w.interval = 30.seconds   #Интервал проверки
  w.log = '/var/log/god.log' #фаил журнала
  w.uid = 'redmine' #от какого пользователя будет запущен процесс
  w.gid = 'redmine' #аналогично группа

w.pid_file = File.join(RAILS_ROOT, «tmp/pids/unicorn.pid») #мониторинг PID

  w.behavior(:clean_pid_file)

w.dir = RAILS_ROOT

  w.env = { 'PATH' => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin' }

w.start = «bundle exec unicorn_rails -E production -c config/unicorn.rb -D» #команда запуска unicron

  w.stop_signal = 'QUIT'
  w.restart = "kill -USR2 `cat #{w.pid_file}`"
  w.start_grace = w.restart_grace = 30

w.start_if do |start|

      start.condition(:process_running) do |c|
          c.running = false
      end
  end

end

#Добавим пользователя # adduser redmine -d /srv/redmine -s /sbin/nologin #Создадим фаил журнала # touch /var/log/god.log #Назначим владельца redmine на фаил журнала # chown redmine:redmine /var/log/god.log #Проверим запуск god # god -c /etc/redmine.god # ps ax | grep god 2817 pts/0 Sl 0:00 /usr/bin/ruby /usr/local/bin/god -c /etc/redmine.god 2857 pts/0 S+ 0:00 grep –color=auto god # ps ax | grep corn 2846 ? Sl 0:03 unicorn_rails master -E production -c config/unicorn.rb -D 2851 ? Sl 0:00 unicorn_rails worker[0] -E production -c config/unicorn.rb -D 2864 pts/0 S+ 0:00 grep –color=auto corn

Как видим все прошло успешно, настроим nginx для обработки http запросов от клиентов.

Настрйока nginx

# vim /etc/nginx/conf.d/redmine.conf

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 upstream redmine {

  server unix:/srv/redmine/tmp/sockets/unicorn.sock;  #путь до unix сокет файла unicorn

}

server {

  client_max_body_size 200m;
      root /srv/redmine/;

location / {

              try_files $uri @ruby;
      }

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
      }

} Не забудьте закомментировать default сервер в /etc/nginx/nginx.conf

#Запустим nginx # systemctl start nginx #Добавим в автозапуск nginx # systemctl enable nginx #Добавим в автозапуск god # echo «god -c /etc/redmine.god» » /etc/rc.local

/var/www/source/data/pages/redmine.txt · Последнее изменение: 2024/02/05 12:40 (внешнее изменение)