Отправляет email-рассылки с помощью сервиса Sendsay

Про хостинг

  Все выпуски  

Про хостинг Установка Redmine на Debina 7


Друзья, сегодня хочу поговорить об установке Redmine на Debian 7.

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

Но, в силу того что другие решения были платными, и кастомизовать или допилить их под себя не было возможности, пришлось снова извлечь идею об установке Redmine на повестку дня и заняться поисками внятного мануала по установке.

К этой задаче, по различным мануалам, я за день подходил раз 5-7 и каждый раз итог один — fail.

Но на 8 раз все получилось, и весь roadmap по установке я и спешу опубликовать в своем блоге, и себе на память, и другим в помощь.

Итак, что имеем? Имеем VM с характеристиками : 1CPU\ 1Gb Ram\ 16Gb HDD \ 100 mbps unlim.

Ставим естественно православный Debian :)

Подготовка к установке

Особой подготовки у установке системы как таковой не было. Был чистый Debian 7 и все. Естественно перво-наперво он был обновлен:

apt-get update
apt-get upgrade
apt-get dist-upgrade

После обновления ставим необходимые для установки Redmine пакеты:

atp-get install git curl libmagickwand-dev mysql-server chkconfig libmysqlclient-dev libcurl4-openssl-dev &&chkconfig mysql on

После установки пакетов, настроим Firewall. Особых изысков нет, остаются открытыми только 22, 25 и 80 порты.

Установка Redmine

Установку будем делать в каталог /opt, соответственно если кого это не устраивает — меняйте на свой. Сам Redmine будем брать с Git:

git clone https://github.com/redmine/redmine

После устанавливаем Ruby с использованием RVM:

curl -L https://get.rvm.io | bash -s stable —ruby
source /usr/local/rvm/scripts/rvm

Добавляем путь в PATH (/root/.profile)

PATH=»$PATH:/usr/local/rvm/bin/»

После проверяем необходимость обновления gem:

gem update —system

Устанавливаем Rails, Bundler MySQL2 и RMagick

gem install rails
gem install bundler
gem install rmagick

Настраиваем соединение Redmine с MySQL базой:

cp config/database.yml.example config/database.yml

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

Создаем базу даных Redmine:

mysql -u root -p
CREATE DATABASE redmine;

После переходим в каталог Redmine и устанавливаем необходимые для работы гемы:

bundle install —without development test postgresql sqlite

Генерим секретный ключ:

rake generate_secret_token

И создаем структуру базы с данными:

RAILS_ENV=production rake db:migrate —trace
RAILS_ENV=production rake redmine:load_default_data

Установка Nginx и Passenger

Моем случае компилирую Nginx в каталог /opt/nginx_passenger:

gem install passenger
passenger-install-nginx-module

Добавляем в/opt/nginx_passenger/conf/nginx.conf наш виртуалхост:

server {
listen 80;
server_name !SERVER NAME!;
root /opt/redmine/public;
passenger_enabled on;
client_max_body_size 10m; # Max attachemnt size
}

Не забываем выставить права на нужные каталоги:

chown -R www-data:www-data files/ log/ tmp/ public/ plugins/

После запускаем Nginx и проверяем работу Redmine. Логин и пароль от админки по умолчанию: admin\admin , не забываем поменять на правильные :)

Небольшое дополнение

Как вы уже успели заметить, nginx мы собирали и ни о каких init скриптах речи быть по умолчанию не может. Согласитесь, не удобно запускать демон из /opt/nginx_passenger/sbin руками и при необходимости убивать его через killall nginx. Соответственно эту ситуацию будем исправлять:

touch /etc/init.d/nginx
chmod +X /etc/init.d/nginx

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

#! /bin/sh

### BEGIN INIT INFO
# Provides: nginx
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the nginx web server
# Description: starts nginx using start-stop-daemon
# Author: ProHosting Blog Admin http://prohosting.pw/
### END INIT INFO

PATH=/opt:/opt/bin:/opt/sbin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/opt/nginx_passenger/sbin/nginx
NAME=nginx
DESC=nginx

test -x $DAEMON || exit 0

# Include nginx defaults if available
if [ -f /etc/default/nginx ] ; then
. /etc/default/nginx
fi

set -e

case «$1″ in
start)
echo -n «Starting $DESC: »
start-stop-daemon —start —quiet —pidfile /opt/nginx_passenger/logs/nginx.pid \
—exec $DAEMON — $DAEMON_OPTS
echo «$NAME.»
;;
stop)
echo -n «Stopping $DESC: »
start-stop-daemon —stop —quiet —pidfile /opt/nginx_passenger/logs/nginx.pid \
—exec $DAEMON
echo «$NAME.»
;;
restart|force-reload)
echo -n «Restarting $DESC: »
start-stop-daemon —stop —quiet —pidfile \
/opt/nginx_passenger/logs/nginx.pid —exec $DAEMON
sleep 1
start-stop-daemon —start —quiet —pidfile \
/opt/nginx_passenger/logs/nginx.pid —exec $DAEMON — $DAEMON_OPTS
echo «$NAME.»
;;
reload)
echo -n «Reloading $DESC configuration: »
start-stop-daemon —stop —signal HUP —quiet —pidfile /opt/nginx_passenger/logs/nginx.pid \
—exec $DAEMON
echo «$NAME.»
;;
*)
N=/etc/init.d/$NAME
echo «Usage: $N {start|stop|restart|force-reload}» >&2
exit 1
;;
esac

exit 0

На этом все. Redmine работает, все победили. В следующих статьях, думаю, рассмотрим настройку Redmine под конкретные задачи.

 

Здесь можно оставить свои комментарии. Выпуск подготовленплагином wordpress для subscribe.ru


В избранное