На момент написания статьи:
— 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
Для чего добавлять пользователя с правами доступа к bash ??
это нужно только на время установки, можно ли потом переписать на :/usr/sbin/nologin ?
Это рекомендация при установке через bundle. Потом можно поменять — на дальнейшую работу самого redmine это не влияет.