Установка Redmine на Debian 8

На момент написания статьи:
— redmine 3.3.1
— ruby 2.3.1
— gem 2.2.2
— rails 4.2.7.1

Apache и MySQL уже установлены:

mysql-server-5.5                   5.5.53-0+deb8u1
apache2                            2.4.10-10+deb8u7

uname -a
Linux tct 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1+deb8u2 (2016-10-19) x86_64 GNU/Linux
cat /etc/*release
PRETTY_NAME="Debian GNU/Linux 8 (jessie)"
NAME="Debian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"

Если система новая, проверить, чтобы sources.list был правильно сконфигурирован. У меня было так:

deb http://ftp.ru.debian.org/debian/ jessie main
deb-src http://ftp.ru.debian.org/debian/ jessie main

deb http://security.debian.org/ jessie/updates main
deb-src http://security.debian.org/ jessie/updates main

deb http://ftp.ru.debian.org/debian/ jessie-updates main
deb-src http://ftp.ru.debian.org/debian/ jessie-updates main

Команды ниже выполняем от рута:

apt-get install gcc build-essential zlib1g zlib1g-dev zlibc libssl-dev libyaml-dev libcurl4-openssl-dev apache2-mpm-prefork apache2-dev libapr1-dev libxslt1-dev checkinstall
apt-get build-dep ruby
cd ~
wget -c ftp://ftp.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.gz
tar xvfz ruby-2.3.1.tar.gz
cd ruby-2.3.1
./configure --enable-pthread --prefix=/usr/local
make 
su
checkinstall --type=debian --install=yes --fstrans=no --pakdir='~'
cd ext/openssl/
ruby extconf.rb
make
su
checkinstall --type=debian --install=yes --fstrans=no --pakdir='~'
gem install rdoc
gem install rails -v=4.2.7.1 --no-ri --no-rdoc
cd ruby-2.3.1/ext/zlib/
ruby extconf.rb
make
make install
gem install passenger
passenger-install-apache2-module

Создаем /etc/apache2/mods-available/passenger.load:

LoadModule passenger_module /usr/local/lib/ruby/gems/2.3.0/gems/passenger-5.0.30/buildout/apache2/mod_passenger.so

Создаем /etc/apache2/mods-available/passenger.conf:

PassengerRoot /usr/local/lib/ruby/gems/2.3.0/gems/passenger-5.0.30
PassengerDefaultRuby /usr/bin/ruby
PassengerDefaultUser www-data
PassengerMaxPoolSize 15
PassengerPoolIdleTime 10
a2enmod passenger

Скачиваем redmine и распаковываем в /opt/redmine.

gem install bundler mysql2
apt-get install libmagickwand-dev libmysqlclient-dev
cd /opt/redmine

Создадим пользователя, который будет иметь доступ к shell, и у которого будут права на запись в /opt/redmine:

useradd -c "Redmine user" -d /opt/redmine -s /bin/bash redmine
chown -R www-data:redmine /opt/redmine
chmod -R 775 /opt/redmine/

Теперь важно:

su redmine
bundle install --without postgresql
exit
create database redmine character set utf8;
create user 'redmine'@'localhost' identified by 'XXX';
grant all privileges on redmine.* to 'redmine'@'localhost';
mcedit /opt/redmine/config/database.yml
production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: XXX
rake generate_secret_token
RAILS_ENV=production rake db:migrate
cd /opt/redmine
mkdir tmp tmp/pdf public/plugin_assets
chown -R www-data:www-data files log tmp public/plugin_assets
chmod -R 755 files log tmp public/plugin_assets

Проверяем, запускается ли у нас redmine:

bundle exec ruby bin/rails server -b 192.168.1.XX webrick -e production

Заходим на http://192.168.1.XX:3000 — проверяем, открывается ли web-интерфейс redmine

ctrl+c

ln -s /opt/redmine/public /var/www/redmine
mcedit /etc/apache2/sites-available/redmine.conf
<VirtualHost *:80>
    ServerName redmine.domain.ru
    ServerAdmin webmaster@omain.ru
    DocumentRoot /var/www/redmine
    Options Indexes ExecCGI FollowSymLinks
    PassengerResolveSymlinksInDocumentRoot on
    RailsEnv production
    RackBaseURI /redmine

    <Directory /var/www/redmine>
        AllowOverride all
        Options -MultiViews
    </Directory>

</VirtualHost>
a2ensite redmine
service apache2 restart

http://redmine.domain.ru/
login/pass — admin/admin