Установка Redmine MySQL Nginx

Установка настройка и обновление связки REDMINE с GEM, RUBY, RAILS, MYSQL, PASSENGER, NGINX

Redmine — открытое серверное веб-приложение для управления проектами и задачами (в том числе для отслеживания ошибок). Redmine написан на Ruby и представляет собой приложение на основе широко известного веб-фреймворка Ruby on Rails.

Функциональные возможности

Данный продукт предоставляет следующие возможности:

* ведение нескольких проектов; * гибкая система доступа, основанная на ролях; * система отслеживания ошибок(багтрекер); * диаграмма Ганта и календарь; * ведение новостей проекта, документов и управление файлами; * оповещение об изменениях с помощью RSS-потоков и электронной почты; * вики для каждого проекта; * форумы для каждого проекта; * учёт временных затрат; * настраиваемые произвольные поля для инцидентов, временных затрат, проектов и пользователей; * лёгкая интеграция с системами управления версиями (SVN, CVS, Git, Mercurial, Bazaar и Darcs); * создание записей об ошибках на основе полученных писем; * поддержка множественной аутентификации LDAP; * возможность самостоятельной регистрации новых пользователей; * многоязыковой интерфейс (в том числе русский); * поддержка СУБД MySQL, PostgreSQL, SQLite, Oracle.

Базовая установка CentOS

Версия 6.9, х64, minimal

Перед началом необходимо добавить репозитории:

rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

А в CentOS-Base.repo включить centosplus

Далее, обновить.

yum update -y

Отключение сервисов

Необходимо отключить SELinux. Для этого в файле /etc/selinux/config заменить

SELINUX=enforced

на

SELINUX=disabled

Необходимо отключить IPTables:

chkconfig iptables off

и

chkconfig ip6tables off

После чего перезагрузить сервер.

Установка дополнительного ПО

Все последующие действия выполняем только под логином root. Многие свои шаги буду перечислять без пояснений именно в той последовательности, как я выполнял.

yum install libXft libpng libXrender libXinerama libXcursor libXcomposite libXdamage libXfixes pixman libXau
yum install autoconf automake bison byacc cscope ctags cvs diffstat doxygen elfutils flex gcc gcc-c++ gcc-gfortran gettext git indent intltool libtool patch patchutils rcs redhat-rpm-config rpm-build subversion swig systemtap

Далее,

yum install glibc-utils ncurses-devel gdbm-devel openssl-devel zlib-devel readline-devel libyaml-devel curl-devel expat-devel man man-pages jwhois bind-utils mc wget which tcpdump traceroute ntp vim telnet net-snmp net-snmp-utils mlocate htop sysstat texinfo
yum install libxml2-devel libxslt-devel libxml2 libxml2-python libxml2-static perl-XML-LibXML python-lxml

Установка YAML

yum install PyYAML perl-CPAN-Meta-YAML perl-Test-YAML-Valid perl-YAML perl-YAML-LibYAML perl-YAML-Syck perl-YAML-Tiny yaml-cpp yaml-cpp-devel

Установка RVM

curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
curl -sSL https://get.rvm.io | bash -s stable

Обновление среды shell

source ~/.bash_profile
echo 'PATH=$PATH:/usr/local/bin' >> /root/.bash_profile
echo 'export PATH' >> /root/.bash_profile
echo 'PATH=$PATH:/usr/local/bin' >> /etc/profile
echo 'export PATH' >> /etc/profile
 
echo 'PATH=$PATH:/usr/local/rvm/bin' >> /root/.bash_profile
echo 'export PATH' >> /root/.bash_profile
echo 'PATH=$PATH:/usr/local/rvm/bin' >> /etc/profile
echo 'export PATH' >> /etc/profile
 
echo 'PATH=$PATH:/usr/lib' >> /root/.bash_profile
echo 'export PATH' >> /root/.bash_profile
echo 'PATH=$PATH:/usr/lib' >> /etc/profile
echo 'export PATH' >> /etc/profile
 
echo 'PATH=$PATH:/usr/lib64' >> /root/.bash_profile
echo 'export PATH' >> /root/.bash_profile
echo 'PATH=$PATH:/usr/lib64' >> /etc/profile
echo 'export PATH' >> /etc/profile

В /etc/sudoers

Найти следующие строки:

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin

И заменить на:

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/lib:/usr/lib64:/usr/local/rvm/bin

После этого откройте новое окно терминала и проверьте пути командой

printenv PATH

Для применения всех изменений необходимо перезайти

Установка дополнительных пакетов для RVM

Необходимо найти требования:

rvm requirements

Тут установятся недостающие пакеты.

Идем дальше:

rvm cleanup all
rvm get head
rvm get master
rvm pkg remove
rvm requirements run
rvm pkg install autoconf --verify-downloads 1
rvm --skip-autoreconf pkg install iconv
export PATH=$rvm_path/bin:$PATH

Установка GEM 2.7.4 и RUBY 2.3.6

На версии ruby 2.4 у меня возникла ошибка при установке модуля mysql. Описание тут https://stackoverflow.com/questions/41520996/mysql-gem-install-error-on-ruby-2-4. Поэтому, решено было использовать ветку 2.3 Версию ruby уточняем тут http://ftp.ruby-lang.org/pub/ruby/

rvm list known
rvm install 2.3 --with-iconv-dir=/usr/local/rvm/usr

Вывод:

ruby-2.3.6 - #adjusting #shebangs for (gem irb erb ri rdoc testrb rake).
Install of ruby-2.3.6 - #complete
Ruby was built without documentation, to build it run: rvm docs generate-ri
gem update --system
gem -v

Вывод:

2.7.4
rvm use ruby 2.3.6 --default

Вывод:

Using /usr/local/rvm/gems/ruby-2.3.6
rvm list

Вывод:

=* ruby-2.3.6 [ x86_64 ]

# => - current
# =* - current && default
#  * - default
rvm list known

Вывод:

# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p330]
[ruby-]1.9.3[-p551]
[ruby-]2.0.0[-p648]
[ruby-]2.1[.10]
[ruby-]2.2[.9]
[ruby-]2.3[.6]
[ruby-]2.4[.3]
[ruby-]2.5[.0]
ruby-head

# for forks use: rvm install ruby-head-<name> --url https://github.com/github/ruby.git --branch 2.2

# JRuby
jruby-1.6[.8]
jruby-1.7[.27]
jruby[-9.1.15.0]
jruby-head

# Rubinius
rbx-1[.4.3]
rbx-2.3[.0]
rbx-2.4[.1]
rbx-2[.5.8]
rbx-3[.90]
rbx-head

# Opal
opal

# Minimalistic ruby implementation - ISO 30170:2012
mruby-1.0.0
mruby-1.1.0
mruby-1.2.0
mruby-1[.3.0]
mruby[-head]

# Ruby Enterprise Edition
ree-1.8.6
ree[-1.8.7][-2012.02]

# Topaz
topaz

# MagLev
maglev[-head]
maglev-1.0.0

# Mac OS X Snow Leopard Or Newer
macruby-0.10
macruby-0.11
macruby[-0.12]
macruby-nightly
macruby-head

# IronRuby
ironruby[-1.1.3]
ironruby-head
rvm gemset list

Вывод:

gemsets for ruby-2.3.6 (found in /usr/local/rvm/gems/ruby-2.3.6)
=> (default)
   global
rvm use 2.3.6@gemset2 --create

Вывод:

ruby-2.3.6 - #gemset created /usr/local/rvm/gems/ruby-2.3.6@gemset2
ruby-2.3.6 - #generating gemset2 wrappers.........
Using /usr/local/rvm/gems/ruby-2.3.6 with gemset gemset2
rvm use 2.3.6@gemset2 --default

Вывод:

Using /usr/local/rvm/gems/ruby-2.3.6 with gemset gemset2
printenv PATH

Вывод:

/usr/local/rvm/gems/ruby-2.3.6@gemset2/bin:/usr/local/rvm/gems/ruby-2.3.6@global/bin:/usr/local/rvm/rubies/ruby-2.3.6/bin:/usr/local/rvm/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/lib:/usr/lib64:/root/bin:/usr/local/bin:/usr/lib:/usr/lib64

Установка RAILS 4.2.10

gem install nokogiri -- --use-system-libraries
gem list rails --all --remote
gem install rails -v 4.2.10
rails -v

Вывод:

Rails 4.2.10

Установка и настройка MySQL

yum install mysql mysql-bench mysql-devel mysql-libs mysql-server mysql-utilities

Если все верно, приступаем к настройке. Редактируем /etc/my.cnf Результат:

[client]
port            = 3306
socket          = /var/lib/mysql/mysql.sock

# The MySQL server
[mysqld]

port            = 3306
socket          = /var/lib/mysql/mysql.sock

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0

back_log = 50
#skip-networking
max_connections = 100
max_connect_errors = 10
table_open_cache = 2048
#external-locking
max_allowed_packet = 16M
binlog_cache_size = 1M
max_heap_table_size = 64M
read_buffer_size = 2M
read_rnd_buffer_size = 16M
sort_buffer_size = 8M
join_buffer_size = 8M
thread_cache_size = 8
thread_concurrency = 8
query_cache_size = 64M
query_cache_limit = 2M
ft_min_word_len = 4
#memlock
default-storage-engine = MYISAM
thread_stack = 192K
transaction_isolation = REPEATABLE-READ
tmp_table_size = 64M
#log-bin=mysql-bin
#binlog_format=mixed
#log_slave_updates
#log
#log_warnings
slow_query_log
long_query_time = 2

#*** MyISAM Specific options

key_buffer_size = 32M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover

# *** INNODB Specific options ***

#skip-innodb
innodb_file_per_table = 1
innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 2G
innodb_data_file_path = ibdata1:10M:autoextend
#innodb_data_home_dir = <directory>
innodb_file_io_threads = 4
#innodb_force_recovery=1
innodb_thread_concurrency = 16
innodb_flush_log_at_trx_commit = 1
#innodb_fast_shutdown
innodb_log_buffer_size = 8M
innodb_log_file_size = 256M
innodb_log_files_in_group = 3
#innodb_log_group_home_dir
innodb_max_dirty_pages_pct = 90
#innodb_flush_method=O_DSYNC
innodb_lock_wait_timeout = 120

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 512M
sort_buffer_size = 512M
read_buffer = 8M
write_buffer = 8M

[mysqlhotcopy]
interactive-timeout

[mysqld_safe]
open-files-limit = 8192
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

Запускаем сервис

service mysqld start

Настраиваем:

/usr/bin/mysql_secure_installation

Включаем в автозагрузку

chkconfig mysqld on

Создание пользователя и БД

mysql -u root -p 
create database redmine_db;
GRANT ALL ON redmine_db.* TO redmine_user@localhost IDENTIFIED BY 'my_password';
flush privileges;
exit

Установка ImageMagick

yum install ImageMagick ImageMagick-c++ ImageMagick-devel ImageMagick-perl

Установка поддержки шрифтов TrueType

yum install ttmkfdir cabextract libmspack
wget https://www.mirrorservice.org/sites/dl.atrpms.net/el6.9-x86_64/atrpms/stable/atrpms-repo-6-7.el6.x86_64.rpm

P.S. ATRPMS как написано, умер. Зеркала и описание тут https://www.webfoobar.com/index.php/node/47

rpm -ihv atrpms-repo-6-7.el6.x86_64.rpm

Вывод

warning: atrpms-repo-6-7.el6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 66534c2b: NOKEY
Preparing...                ########################################### [100%]
1:atrpms-repo            ########################################### [100%]

Заменить зеркала в репозитории atrpms.repo:

[atrpms]
name=Red Hat Enterprise Linux $releasever - $basearch - ATrpms
failovermethod=priority
baseurl=https://www.mirrorservice.org/sites/dl.atrpms.net/el$releasever-$basearch/atrpms/stable
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-atrpms

[atrpms-debuginfo]
name=Red Hat Enterprise Linux $releasever - $basearch - ATrpms - Debug
failovermethod=priority
baseurl=https://www.mirrorservice.org/sites/dl.atrpms.net/debug/el$releasever-$basearch/atrpms/stable
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-atrpms

[atrpms-source]
name=Red Hat Enterprise Linux $releasever - $basearch - ATrpms - Source
failovermethod=priority
baseurl=https://www.mirrorservice.org/sites/dl.atrpms.net/src/el$releasever-$basearch/atrpms/stable
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-atrpms
yum install chkfontpath
wget http://corefonts.sourceforge.net/msttcorefonts-2.0-1.spec

Требуется изменить ссылку на целевые файлы в файле msttcorefonts-2.0-1.spec.

function set_mirror {
        local r m
        r=`expr $RANDOM % $mirror_count + 1`
        m=`echo $mirrors |cut -d+ -f$r`
        mirror="http://${m}.dl.sourceforge.net/sourceforge/corefonts/"
}

Ссылка должна выглядеть следующим образом:

        mirror="http://${m}.dl.sourceforge.net/project/corefonts/the%20fonts/final/"
rpmbuild -bb msttcorefonts-2.0-1.spec

Сборка RPM пакета у меня обрывалась пару раз из-за обрыва связи с сервером исходных файлов. Например, так

...
+ m=umn
+ mirror=http://umn.dl.sourceforge.net/project/corefonts/the%20fonts/final/
+ for f in '$download_files'
+ check_file andale32.exe
+ matches=
+ '[' '!' -r andale32.exe ']'
+ echo 'andale32.exe does not exist'
andale32.exe does not exist
+ return
+ '[' '!' ']'
+ download http://umn.dl.sourceforge.net/project/corefonts/the%20fonts/final/ andale32.exe
+ wget --timeout=5 -O andale32.exe http://umn.dl.sourceforge.net/project/corefonts/the%20fonts/final/andale32.exe
--2013-07-06 00:22:34--  http://umn.dl.sourceforge.net/project/corefonts/the%20fonts/final/andale32.exe
Resolving umn.dl.sourceforge.net... failed: Name or service not known.
wget: unable to resolve host address `umn.dl.sourceforge.net'
ошибка: Неверный код возврата из /var/tmp/rpm-tmp.Ep0ked (%prep)

Ошибки сборки пакетов:
    line 19: buildprereq is deprecated: BuildPrereq: /usr/bin/ttmkfdir
    line 20: buildprereq is deprecated: BuildPrereq: wget
    line 21: buildprereq is deprecated: BuildPrereq: cabextract
    line 22: prereq is deprecated: Prereq: /usr/sbin/chkfontpath
    Неверный код возврата из /var/tmp/rpm-tmp.Ep0ked (%prep)

Если у вас возникнет такая же ситуация, просто повторите операцию сборки до тех пор, пока пакет не будет собран. При успешном выполнении, в консоли будет показан путь, куда был записан пакет. В моём случае:

...
Записан: /root/rpmbuild/RPMS/noarch/msttcorefonts-2.0-1.noarch.rpm

Устанавливаем

rpm -ivh /root/rpmbuild/RPMS/noarch/msttcorefonts-2.0-1.noarch.rpm
cd /usr/share/fonts/msttcorefonts
mkfontscale
mkfontdir
mkdir -p /usr/share/fonts/default/TrueType
cd /usr/share/fonts/default/TrueType
find /usr/share/fonts/msttcorefonts/ -exec ln -s {} \;

Установка RMagick 2.16.0

cd
gem list rmagick --all --remote

Вывод:

*** REMOTE GEMS ***
...
rmagick (2.16.0, 2.15.4, 2.15.3, 2.15.2, 2.15.1, 2.15.0, 2.14.0, 2.13.4, 2.13.3, 2.13.2, 2.13.1, 2.12.2, 2.12.1, 2.12.0, 2.11.1, 2.11.0, 2.10.0, 2.9.2, 2.9.1, 2.9.0, 2.8.0, 2.7.2, 2.7.1, 2.7.0, 2.6.0, 2.5.2, 2.5.1, 2.5.0, 2.4.0, 2.3.0, 2.2.2, 2.2.0, 2.1.0, 2.0.0, 1.15.17, 1.15.16, 1.15.15, 1.15.14, 1.15.13, 1.15.12, 1.15.11, 1.15.10, 1.15.9, 1.15.8, 1.15.7, 1.15.6, 1.15.5, 1.15.4, 1.15.3, 1.15.2, 1.15.1, 1.15.0, 1.14.1, 1.14.0, 1.13.0, 1.12.0, 1.11.1, 1.11.0, 1.10.1, 1.10.0, 1.9.3, 1.9.2, 1.9.1, 1.9.0, 1.8.3, 1.8.2, 1.8.1, 1.8.0, 1.7.4, 1.7.3, 1.7.2, 1.7.1)
rmagick-image_colors (0.1.4, 0.1.3, 0.1.2, 0.1.1, 0.1.0, 0.0.2, 0.0.1)
rmagick-metadata (0.0.2, 0.0.1)
rmagick-screwdrivers (0.2.0, 0.1.2, 0.1.1)
rmagick-sprite (0.0.8, 0.0.7, 0.0.6, 0.0.5, 0.0.4)
rmagick-tti_converter (0.0.2, 0.0.1)
rmagick4j (0.4.0 java, 0.3.9 java, 0.3.8, 0.3.7, 0.3.6, 0.3.5, 0.3.4 java, 0.3.3 java, 0.3.2 java, 0.3.1 java)
rmagick_captcha (0.6.4, 0.6.3, 0.6.2)
...
whereis pkgconfig

Вывод:

pkgconfig: /usr/lib64/pkgconfig /usr/share/pkgconfig
printenv PKG_CONFIG_PATH

Здесь при выводе этой команды мы получаем пустую строку. Надо прописать путь

export PKG_CONFIG_PATH=/usr/lib64/pkgconfig
printenv PKG_CONFIG_PATH

А вот теперь вывод такой:

/usr/lib64/pkgconfig

Далее сама установка:

gem install rmagick -v 2.16.0
gem list rmagick

Вывод:

*** LOCAL GEMS ***

rmagick (2.16.0)

Установка NGINX

А здесь я планировал описать следующий шаг - установка nginx, но потом выяснилось, что смысла не имеет, т.к. passenger ставит его сам из соурсов 1.12.2, несмотря на установленную мной другую версию. Так что, идем далее.

Установка и настройка Redmine 3.4.4

Скачиваем дистрибутив Redmine версии 3.4.4 с сайта http://www.redmine.org/projects/redmine/wiki/Download

cd
wget http://www.redmine.org/releases/redmine-3.4.4.tar.gz

Распаковка

tar zxvf redmine-3.4.4.tar.gz

После чего переименовываем каталог в redmine и перемещаем его в /var/lib

Настройка

cd /var/lib/redmine/config
cp database.yml.example database.yml
vi database.yml

Использоваться будет только одна конфигурация - production, поэтому приводим соответствующую секцию к следующему виду:

production:
  adapter: mysql2
  database: redmine_db
  host: localhost
  username: redmine_user
  password: my_password
  encoding: utf8

ОСТАЛЬНОЕ ЗАКОММЕНТИРОВАТЬ!!!

Установка Bundler

cd ../
gem install bundler

Установка и настройка модуля MySQL для подключения через Ruby

Установка

gem install mysql

Вывод такой:

Fetching: mysql-2.9.1.gem (100%)
Building native extensions.  This could take a while...
Successfully installed mysql-2.9.1
Parsing documentation for mysql-2.9.1
unable to convert "\xA0" from ASCII-8BIT to UTF-8 for /usr/local/rvm/gems/ruby-2.3.6@gemset2/extensions/x86_64-linux/2.3.6/mysql-2.9.1/mysql/mysql_api.so, skipping
unable to convert "\xA0" from ASCII-8BIT to UTF-8 for lib/mysql/mysql_api.so, skipping
Installing ri documentation for mysql-2.9.1
1 gem installed

Создание токена

bundle install --without development test postgresql sqlite

Вывод:

...
Bundle complete! 31 Gemfile dependencies, 55 gems now installed.
Gems in the groups development, test, postgresql and sqlite were not installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
rake generate_secret_token
ls config/initializers/secret_token.rb

Вывод:

config/initializers/secret_token.rb

С токеном закончили, идем далее

Настройка модуля

cd /usr/local/rvm/gems/ruby-2.3.6@gemset2/gems/mysql-2.9.1/
whereis mysql_config

Вывод

mysql_config: /usr/bin/mysql_config /usr/share/man/man1/mysql_config.1.gz
ruby ext/mysql_api/extconf.rb --with-mysql-config=/usr/bin/mysql_config

Вывод:

checking for mysql_ssl_set()... yes
checking for rb_str_set_len()... yes
checking for rb_thread_start_timer()... no
checking for mysql.h... yes
creating Makefile

Далее цитирую другой источник (с небольшими своими правками) http://patttern.blogspot.ru/2012/06/redmine-centos-62-3.html#point19, т.к. ситуация была аналогичная

make

Вывод:

linking shared-object mysql_api.so
gcc: mysql.o: No such file or directory
make: *** [mysql_api.so] Error 1

К этому моменту, я уже перестал понимать что происходит и думал, когда же уже установится этот злосчастный Redmine. Поэтому долго париться на счет ошибки не стал: откуда взялась, почему криво сконфигурировалась. Просто «забил болт» и отредактировал Makefile следующим образом:

#SRCS = $(ORIG_SRCS)
#OBJS = mysql.o
SRCS = mysql.c
OBJS = $(srcdir)/mysql.o

Собираем и устанавливаем.

make

Вывод:

linking shared-object mysql_api.so
make install

Делаем ссылку

cd /var/lib/redmine/lib
ln -s /usr/local/rvm/gems/ruby-2.3.6@gemset2/gems/mysql-2.9.1/lib/mysql.rb
cd ../

и запускаем

rake db:migrate RAILS_ENV=production

Установка PASSENGER 5.1.12

gem install passenger

Вывод:

Fetching: passenger-5.1.12.gem (100%)
Building native extensions. This could take a while...
Successfully installed passenger-5.1.12
Parsing documentation for passenger-5.1.12
Installing ri documentation for passenger-5.1.12
Done installing documentation for passenger after 54 seconds
1 gem installed

Установка PASSENGER 5.1.12 + NGINX 1.12.2

yum install libcurl-devel
passenger-install-nginx-module

Во время установки я выбрал первый (1) вариант и каталог для nginx, предложенный установщиком, т.е. все на автомате.

Вывод:

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

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 <space> to select.
If the menu doesn't display correctly, press '!'

 > (*)  Ruby
   (*)  Python
   ( )  Node.js
   ( )  Meteor

<...skipped...>

Checking for required software...

 * Checking for C compiler...
      Found: yes
      Location: /usr/bin/cc
 * Checking for C++ compiler...
      Found: yes
      Location: /usr/bin/c++
 * Checking for A download tool like 'wget' or 'curl'...
      Found: yes
      Location: /usr/bin/wget
 * Checking for Curl development headers with SSL support...
      Found: yes
      curl-config location: /usr/bin/curl-config
      Header location: /usr/include/curl/curl.h
      Version: libcurl 7.19.7
      Usable: yes
      Supports SSL: yes
 * Checking for OpenSSL development headers...
      Found: yes
      Location: /usr/include/openssl/ssl.h
 * Checking for Zlib development headers...
      Found: yes
      Location: /usr/include/zlib.h
/usr/local/rvm/rubies/ruby-2.4.3/lib/ruby/site_ruby/2.4.0/rubygems/commands/environment_command.rb:154: warning: Insecure world writable dir /root in PATH, mode 040777
 * Checking for Rake (associated with /usr/local/rvm/gems/ruby-2.4.3@gemset2/wrappers/ruby)...
      Found: yes
      Location: /usr/local/rvm/gems/ruby-2.4.3@gemset2/wrappers/rake
 * Checking for OpenSSL support for Ruby...
      Found: yes
 * Checking for RubyGems...
      Found: yes
 * Checking for Ruby development headers...
      Found: yes
      Location: /usr/local/rvm/rubies/ruby-2.4.3/include/ruby-2.4.0/ruby.h
 * Checking for rack...
      Found: yes

--------------------------------------------

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.12.2 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

<...skipped...>


Where do you want to install Nginx to?

Please specify a prefix directory [/opt/nginx]:

--------------------------------------------

<...skipped...>

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 /usr/local/rvm/gems/ruby-2.3.6@gemset2/gems/passenger-5.1.12;
      passenger_ruby /usr/local/rvm/gems/ruby-2.3.6@gemset2/wrappers/ruby;
      ...
  }

After you start Nginx, you are ready to deploy any number of Ruby on Rails
applications on Nginx.

Press ENTER to continue.
--------------------------------------------

Deploying a web application

To learn how to deploy a web app on Passenger, please follow the deployment
guide:

  https://www.phusionpassenger.com/library/deploy/nginx/deploy/

Enjoy Phusion Passenger, a product of Phusion (www.phusion.nl) :-)
https://www.phusionpassenger.com

Passenger® is a registered trademark of Phusion Holding B.V.

Настройка NGINX 1.12.2

Создаем пользователя nginx и назначаем его владельцем каталога redmine.

adduser -c Nginx_web_server -d /opt/nginx -M -r -s /sbin/nologin -U nginx
chown -R nginx:nginx /var/lib/redmine

Теперь добавляем nginx в rc.local и правим наш nginx.conf. У меня финальный результат последнего выглядит так:

grep -v '#' /opt/nginx/conf/nginx.conf
user  nginx;
worker_processes  4;

error_log  logs/error.log;
pid        logs/nginx.pid;

worker_rlimit_nofile  1024;

events {
    worker_connections  1024;
}


http {
    passenger_root /usr/local/rvm/gems/ruby-2.3.6@gemset2/gems/passenger-5.1.12;
    passenger_ruby /usr/local/rvm/gems/ruby-2.3.6@gemset2/wrappers/ruby;

    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    server_tokens off;
    reset_timedout_connection  on;
    output_buffers  1 64k;
    tcp_nodelay     on;
    log_not_found   off;
    tcp_nopush     on;
    keepalive_timeout  65;

    gzip  on;
    gzip_vary on;
    gzip_min_length 2048;
    gzip_comp_level 5;
    gzip_http_version 1.0;
    gzip_proxied any;
    gzip_disable "msie6";
    gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;

    client_max_body_size 30m;
    large_client_header_buffers 4 8k;

    server {
        listen       80;
        server_name redmine.pnv152.ru;
        root   /var/lib/redmine/public;
        passenger_enabled on;
        rails_spawn_method smart;
        rails_env production;
    }
}

Вот вроде и все… правда, ничего сложного? LOL 8-o 8-)

Все это я сделал на основе следующих статей:

Подъем сервера и написание статьи — 08/04/2015 Обновлено — 25/01/2018

Яндекс.Метрика