Установка Redmine на FreeBSD с NGinx и mod_passenger

Подробно рассказывать о системе управления проектами Redmine не буду, так как уже делал это ранее. Можете почитать о первом опыте внедрения. В той реализации остались некоторые неточности и узкие места. Кроме того планировался переезд на любимую FreeBSD. Изучив информацию узнал что можно реализовать запуск Redmine на чистом NGinx с модулем passenger. Подробных инструкций не нашел и решил написать свою. Будем считать (а в моём случае так и было 🙂 ) что система чистая и на ней ничего до этого не устанавливалось.
1) Обновляем порты

# portsnap fetch
# portsnap extract

2) Устанавливаем NGinx

# cd /usr/ports/www/nginx
# make config-recursive

Из настроек я выбрал собственно PASSENGER

# make && make install && make clean
# echo 'nginx_enable="YES"' >> /etc/rc.conf
# /usr/local/etc/rc.d/nginx restart

3) Установка Redmine
а) Настраиваем и ставим rubygem-passenger

# cd /usr/ports/www/rubygem-passenger && make config

Выбираем NGINX

# make -DBATCH install clean

б) Настраиваем и ставим rubygem-rails4

# cd /usr/ports/www/rubygem-rails4 && make config

Выбираем PASSENGER

# make -DBATCH install clean

в) Настраиваем и ставим сам Redmine

# cd /usr/ports/www/redmine
# make config

Из опций я выбрал MYSQL, так как использую именно его, и RMAGIC. Диаграммы Ганта пригодятся
В качестве сервера выбираем PASSENGER и снимаем выделение с THIN.

# make -DBATCH install clean

После установки находим root-каталог для passenger

# rehash
# passenger-config --root
/usr/local/lib/ruby/gems/2.2/gems/passenger-5.0.30

и добавляем в конфиг nginx-a в секцию http следующее

include /usr/local/etc/nginx/conf.d/*.conf;
passenger_root /usr/local/lib/ruby/gems/2.2/gems/passenger-5.0.30;
passenger_ruby /usr/local/bin/ruby22;
passenger_user redmine;
passenger_group redmine;

Создаём каталог, в котором будут храниться конфигурации хостов для NGinx

# mkdir /usr/local/etc/nginx/conf.d/

4) Установка MySQL и создание базы/пользователя

# cd /usr/ports/databases/mysql56-server/
# make -DBATCH install clean

После установки

# rehash
# echo 'mysql_enable="YES"' >> /etc/rc.conf
# /usr/local/etc/rc.d/mysql-server restart
mysql not running? (check /var/db/mysql/tradenark.com.ua.pid).
Starting mysql.
# mysql_secure_installation
...
# mysql -uroot -p
Password:
mysql> CREATE DATABASE redmine CHARACTER SET utf8;
Query OK, 1 row affected (0.00 sec)

mysql> CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'Password_for_redmine_db';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> \q
Bye

4) Конфигурация реймайна

# cd /usr/local/www/redmine/

Настраиваем связь с БД

# cat config/database.yml | grep -v "#"

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

Подготовка

# gem install bundler
# bundle install --without development test
# bundle exec rake generate_secret_token
# RAILS_ENV=production bundle exec rake db:migrate

Ну и конфиг хоста для NGinx-a

# cat /usr/local/etc/nginx/conf.d/redmine.conf
server {
	server_name redmine.tradenark.com.ua;
	listen 80;
	access_log /var/log/nginx/redmine.tradenark.com.ua_access.log;
	error_log /var/log/nginx/redmine.tradenark.com.ua_error.log;
	root   /usr/local/www/redmine/public;
	client_max_body_size 64m;
	passenger_enabled on;
	charset utf-8;
	rails_env production;
}

Проверяем настройки и применяем их

# nginx -t
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
# nginx -s reload

Переходим по указанному нами адресу и пользуемся Redmine.
Побольше вам успешных проектов!

Добавить комментарий