[Sysadmins] Как установить Redmine?
Nikolay A. Fetisov
naf на naf.net.ru
Вт Июл 23 13:51:41 MSK 2013
В Вт, 23/07/2013 в 12:53 +0400, Михаил Радюк пишет:
> Подскажите, как сейчас правильно устанавливать Redmine? Замечательная
> инструкция на http://admdev.blogspot.ru/search?q=redmine уже устарела,
> поиск по спискам рассылки конкретного ничего не дал.
> Система - Сизиф (обновленный).
По Sisyphus не скажу, и более-менее оформленной инструкции нет,
но в виртуальный сервер с t6 ставилось следующим образом:
- Установка MySQL
- Установка webserver-common
- Создание пользователя webadmin
- Установка rubygems:
# apt-get install rubygems ruby
# gem install bundler
# apt-get install libruby-devel libmysqlclient-devel glibc-devel libssl-devel
# apt-get install make
# apt-get install gcc gcc-c++
(с заменой на последнюю предложенную версию)
# gem install thin
# adduser -r -G _webserver -M -d /dev/empty -s /dev/null -c 'Thin Ruby web server' _thin
Вытаскивается архив Redmine, разворачивается в /opt/redmine/
# chown -R webadmin:webmaster /opt/redmine
# cd /opt/redmine
В Gemfile добавить строку
gem "thin"
Далее,
# bundle install --without development test rmagick postgresql sqlite
# cp config/database.yml.example config/database.yml
Заполнение config/database.yml настройками базы.
# rake generate_secret_token
# RAILS_ENV=production rake db:migrate
# RAILS_ENV=production rake redmine:load_default_data
# mkdir tmp public/plugin_assets
# chown -R _thin:webmaster files log tmp public/plugin_assets
# chmod -R 2775 files log tmp public/plugin_assets
# cp config/configuration.yml.example config/configuration.yml
В config/configuration.yml - адрес сервера SMTP, локальный sendmail не
работает.
production:
email_delivery:
delivery_method: :smtp
smtp_settings:
address: "mailhub"
port: 25
Настройка Thin:
cd /etc
mkdir thin
cat >thin/redmine.yml <<END
pid: /var/run/thin/thin.pid
timeout: 30
log: /var/log/thin/thin.log
max_conns: 32
require: []
environment: production
max_persistent_conns: 32
address: 0.0.0.0
port: 9000
servers: 3
daemonize: true
chdir: /opt/redmine/
user: _thin
group: _thin
END
cat > rc.d/init.d/thin <<END
#!/bin/sh
### BEGIN INIT INFO
# Provides: thin
# Required-Start: \$local_fs $remote_fs
# Required-Stop: \$local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: S 0 1 6
# Short-Description: thin initscript
# Description: thin
### END INIT INFO
# Original author: Forrest Robertson
# Do NOT "set -e"
DAEMON=/usr/local/bin/thin
SCRIPT_NAME=/etc/rc.d/thin
CONFIG_PATH=/etc/thin
# Exit if the package is not installed
[ -x "\$DAEMON" ] || exit 0
PIDDIR=/var/run/thin
LOGDIR=/var/log/thin
RETVAL=0
[ -d "\$PIDDIR" ] || mkdir -p "\$PIDDIR"
chown root:_thin "\$PIDDIR"
chmod 775 "\$PIDDIR"
case "\$1" in
start)
# Need to change $HOME for Git > 1.8.1.1
export HOME=/var/empty
\$DAEMON start --all \$CONFIG_PATH
;;
stop)
\$DAEMON stop --all \$CONFIG_PATH
;;
restart)
\$DAEMON restart --all \$CONFIG_PATH
;;
*)
echo "Usage: \$SCRIPT_NAME {start|stop|restart}"
;;
esac
exit \$RETVAL
END
chmod +x rc.d/init.d/thin
chkconfig thin --add
chkconfig thin on
mkdir /var/log/thin/
chown :_thin /var/log/thin/
chmod 1775 /var/log/thin/
Далее в вышестоящий nginx добавляется что-то вида
upstream redmine_upstream {
ip_hash;
server 172.16.1.100:9000;
server 172.16.1.100:9001;
server 172.16.1.100:9002;
}
location /redmine/ {
client_max_body_size 1000m;
send_timeout 360;
proxy_pass http://redmine_upstream;
}
Запрашивается из браузера http://<...>/redmine/,
учётная запись администратора - admin : admin .
--
С уважением,
Николай Фетисов
Подробная информация о списке рассылки Sysadmins