Установка redmine на ubuntu 14.04/16.04

Written by on . Posted in Linux, Redmine

Устанавливать будем redmian 3.3.0

Нам понадобится:
1. redmine-3.3.0.tar.gz
2. ubuntu-server 14.04 + установить дополнительно пакеты:
3. ruby
4. Настройка сервера apache2
redmine можно скачать с официального сайта

PS. 14-09-2017. Проверил установку на ubuntu 16.04 (x64) особых изменений нет, все встало без ошибок. Необходимые замечания добавлены в текст. Ставил Redmine 3.4.2.stable, Ruby version 2.4.1-p111 (2017-03-22) [x86_64-linux]

http://www.redmine.org/releases/ нужную версию (в моем случае redmine-3.3.0.tar.gz), и распаковываем в /opt/redmine-3.3.0
Заведем в системе пользователя redmine и всю дальнейшую установку будем делать от этого пользователя

root@red-test:/root# useradd -m redmine -s /bin/bash
root@red-test:/root# usermod -a -G sudo redmine
root@red-test:/root# passwd redmine
root@red-test:/root# chown redmine:redmine -R /opt/redmine-3.3.0/
root@red-test:/root# su redmine
redmine@red-test:/opt/redmine-3.3.0$

Устанавливаем дополнительные пакеты

Для ubuntu 16.04 замените имя пакета apache2-threaded-dev на apache2-dev

redmine@red-test:/root$ sudo apt-get update
redmine@red-test:/root$ sudo apt-get upgrade
redmine@red-test:/root$ sudo apt-get install imagemagick libmagickwand-dev mysql-client libmysqlclient-dev mysql-server make apache2 libcurl4-openssl-dev apache2-threaded-dev libapr1-dev libaprutil1-dev

Устанавливаем ruby при помощи rvm

redmine@red-test:~$ \curl -sSL https://get.rvm.io | bash -s stable --rails

Для ubuntu 16.04 поставил ruby 2.4.1 (09-2017) ни каких ошибок при последующей установки не возникло.

На момент написания статьи (2015 г) устанавливается последняя версия ruby 2.3.0

rvm list
rvm rubies
=* ruby-2.3.0 [ x86_64 ]

С этой версией у меня возникли проблемы при компиляции модуля для apache2 появились следующие ошибки, и решить их быстро не получилось.

passenger-install-apache2-module
/home/redmine/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/specification.rb:2158:in `method_missing': undefined method `this' for # (NoMethodError)
	from /home/redmine/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/specification.rb:1057:in `find_active_stub_by_path'
	from /home/redmine/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:64:in `require'
	from /home/redmine/.rvm/gems/ruby-2.3.0/gems/passenger-5.0.30/bin/passenger-install-apache2-module:34:in `'
	from /home/redmine/.rvm/gems/ruby-2.3.0/bin/passenger-install-apache2-module:23:in `load'
	from /home/redmine/.rvm/gems/ruby-2.3.0/bin/passenger-install-apache2-module:23:in `'
	from /home/redmine/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `eval'
	from /home/redmine/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `'

с версией 2.2.0 тоже возникли мелкие проблемы, но все встало и даже работало, а вот с 2.1.0 все встало на ура, ни каких проблем. Поэтому буду ставить на 2.1
После установки не забываем выполнить скрипт source /home/redmine/.rvm/scripts/rvm, а лучше его добавить в .bashrc

echo "source /home/redmine/.rvm/scripts/rvm" >> ~/.bashrc
redmine@red-test:~$ rvm install 2.1.0
redmine@red-test:~$ rvm use 2.1.0
redmine@red-test:~$ rvm --default use 2.1.0

полностью установка и возможные проблемы описаны в статье установка ruby

Приступаем к установке redmine

подготавливаем Db в MySQL

redmine@red-test:/opt/redmine-3.3.0$ mysql -p -u root

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> CREATE DATABASE redmine CHARACTER SET utf8;
mysql> CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'my_password';
mysql> GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';

Редактируем файл конфигурации redmine

redmine@red-test:/opt/redmine-3.3.0$ cp config/database.yml.example config/database.yml
redmine@red-test:/opt/redmine-3.3.0$ vim config/database.yml

необходимо изменить секцию подключения к базе данных

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

Устанавливаем bundler

redmine@red-test:/opt/redmine-3.3.0$ gem install bundler

Устанавливаем gem-ы

bundle install --without development test

Установка должна завершиться примерно следующими сообщениями.

…
Installing rails-dom-testing 1.0.7
Installing activejob 4.2.6
Installing activerecord 4.2.6
Installing protected_attributes 1.1.3
Installing actionview 4.2.6
Installing actionpack 4.2.6
Installing actionmailer 4.2.6
Installing actionpack-action_caching 1.1.1
Installing actionpack-xml_parser 1.0.2
Installing railties 4.2.6
Installing sprockets-rails 3.2.0
Installing jquery-rails 3.1.4
Installing roadie-rails 1.1.1
Installing rails 4.2.6
Bundle complete! 31 Gemfile dependencies, 56 gems now installed.
Gems in the groups development and test were not installed.
Use `bundle show [gemname]` to see where a bundled gem is installed.
redmine@red-test:/opt/redmine-3.3.0$ bundle exec rake generate_secret_token

Создаем структуру базы данных

redmine@red-test:/opt/redmine-3.3.0$ bundle exec rake db:migrate RAILS_ENV="production"
== 1 Setup: migrating =========================================================
-- create_table("attachments", {:force=>true})
   -> 0.0222s
-- create_table("auth_sources", {:force=>true})
   -> 0.0240s
-- create_table("custom_fields", {:force=>true})
   -> 0.0164s
-- create_table("custom_fields_projects", {:id=>false, :force=>true})
   -> 0.0194s
-- create_table("custom_fields_trackers", {:id=>false, :force=>true})
   -> 0.0447s
-- create_table("custom_values", {:force=>true})
…
…
== 20160529063352 AddRolesSettings: migrating =================================
-- add_column(:roles, :settings, :text)
   -> 0.0694s
== 20160529063352 AddRolesSettings: migrated (0.0698s) ========================

Выставим права

sudo chown -R redmine:redmine files log tmp public/plugin_assets
sudo chmod -R 755 files log tmp public/plugin_assets

На этом установка закончена, можно тестировать.

Тестирование установки

для тестирования запустим сервер командой:

redmine@rednew:/opt/redmine-3.3.0$ ruby bin/rails server -b 0.0.0.0 -e production
=> Booting WEBrick
=> Rails 4.2.6 application starting in production on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[2016-09-09 18:06:58] INFO  WEBrick 1.3.1
[2016-09-09 18:06:58] INFO  ruby 2.1.0 (2013-12-25) [x86_64-linux]
[2016-09-09 18:06:58] INFO  WEBrick::HTTPServer#start: pid=15194 port=3000

Ключ -b 0.0.0.0 нужен для того что бы сервис был доступен на всех интерфейса, иначе по умолчанию будет использоваться localhost и с удаленного компьютера проверить не удасться.

Если вы смогли подключиться по адресу http://ip_сервера:3000 и увидели интерфейс redmine значит установка прошла без ошибок и вы близки к завершению.

Вход по умолчанию
login: admin
password: admin

Устанавливаем модуль для apache2

gem install passenger

redmine@red-test:/opt/redmine-3.3.0$ gem install passenger
Building native extensions.  This could take a while...
Successfully installed passenger-5.0.30
Parsing documentation for passenger-5.0.30
Done installing documentation for passenger after 6 seconds
1 gem installed

Далее необходимо подготовить модуль для apache2. Если при выполнении вы получаете подобную ошибку:

passenger-install-apache2-module
/home/redmine/.rvm/gems/ruby-2.1.0/gems/bundler-1.13.0/lib/bundler/rubygems_ext.rb:23:in `source': uninitialized constant Gem::Source (NameError)
	from /home/redmine/.rvm/gems/ruby-2.1.0/gems/bundler-1.13.0/lib/bundler/rubygems_ext.rb:65:in `extension_dir'
	from /home/redmine/.rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/specification.rb:1782:in `gem_build_complete_path'
	from /home/redmine/.rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/specification.rb:1996:in `missing_extensions?'
	from /home/redmine/.rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/basic_specification.rb:66:in `contains_requirable_file?'
	from /home/redmine/.rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:64:in `block in require'
	from /home/redmine/.rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:63:in `each'
	from /home/redmine/.rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:63:in `find'
	from /home/redmine/.rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:63:in `require'
	from /home/redmine/.rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/source.rb:1:in `'
	from /home/redmine/.rvm/gems/ruby-2.1.0/gems/bundler-1.13.0/lib/bundler/rubygems_ext.rb:23:in `source'
	from /home/redmine/.rvm/gems/ruby-2.1.0/gems/bundler-1.13.0/lib/bundler/rubygems_ext.rb:35:in `full_gem_path'
	from /home/redmine/.rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/basic_specification.rb:144:in `block in full_require_paths'
	from /home/redmine/.rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/basic_specification.rb:143:in `map'
	from /home/redmine/.rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/basic_specification.rb:143:in `full_require_paths'
	from /home/redmine/.rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/specification.rb:1370:in `add_self_to_load_path'
	from /home/redmine/.rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/specification.rb:1283:in `activate'
	from /home/redmine/.rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/specification.rb:1314:in `block in activate_dependencies'
	from /home/redmine/.rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/specification.rb:1300:in `each'
	from /home/redmine/.rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/specification.rb:1300:in `activate_dependencies'
	from /home/redmine/.rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/specification.rb:1282:in `activate'
	from /home/redmine/.rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_gem.rb:67:in `block in gem'
	from /home/redmine/.rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_gem.rb:66:in `synchronize'
	from /home/redmine/.rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_gem.rb:66:in `gem'
	from /home/redmine/.rvm/gems/ruby-2.1.0/bin/passenger-install-apache2-module:22:in `'
	from /home/redmine/.rvm/gems/ruby-2.1.0/bin/ruby_executable_hooks:15:in `eval'
	from /home/redmine/.rvm/gems/ruby-2.1.0/bin/ruby_executable_hooks:15:in `'

То в качестве решения можно заменить версию bundler

gem uninstall bundler -v1.13
gem install bundler -v1.12

После этого все должно получиться.

redmine@red-test:/opt/redmine-3.3.0$ passenger-install-apache2-module
Welcome to the Phusion Passenger Apache 2 module installer, v5.0.30.

This installer will guide you through the entire installation process. It
shouldn't take more than 3 minutes in total.

Here's what you can expect from the installation process:

 1. The Apache 2 module will be installed for you.
 2. You'll learn how to configure Apache.
 3. You'll learn how to deploy a Ruby on Rails application.

Don't worry if anything goes wrong. This installer will advise you on how to
solve any problems.

Press Enter to continue, or Ctrl-C to abort.

Нажимаем Enter

Which languages are you interested in?

Use <space> to select.
If the menu doesn't display correctly, press '!'

‣ ⬢ Ruby
  ⬢ Python
  ⬡ Node.js
  ⬡ Meteor
Checking for required software...
 * Checking for C compiler...
      Found: yes
      Location: /usr/bin/cc
 * Checking for C++ compiler...
      Found: yes
      Location: /usr/bin/c++
 * Checking for Curl development headers with SSL support...
      Found: no
      Error: Cannot find the `curl-config` command.
 * Checking for OpenSSL development headers...
      Found: yes
      Location: /usr/include/openssl/ssl.h
 * Checking for Zlib development headers...
      Found: yes
      Location: /usr/include/zlib.h
 * Checking for Apache 2...
      Found: yes
      Location of httpd: /usr/sbin/apache2
      Apache version: 2.4.7
 * Checking for Apache 2 development headers...
      Found: no
 * Checking for Rake (associated with /usr/local/rvm/gems/ruby-2.2.1/wrappers/ruby)...
      Found: yes
      Location: /usr/local/rvm/gems/ruby-2.2.1/wrappers/rake
 * Checking for OpenSSL support for Ruby...
      Found: yes
 * Checking for RubyGems...
      Found: yes
 * Checking for Ruby development headers...
      Found: yes
      Location: /usr/local/rvm/rubies/ruby-2.2.1/include/ruby-2.2.0/ruby.h
 * Checking for rack...
      Found: yes
 * Checking for Apache Portable Runtime (APR) development headers...
      Found: no
 * Checking for Apache Portable Runtime Utility (APU) development headers...
      Found: no

Some required software is not installed.
But don't worry, this installer will tell you how to install them.
Press Enter to continue, or Ctrl-C to abort.

Нажимаем Enter и видим какие пакеты нам необходимо установить.

Installation instructions for required software

 * To install Curl development headers with SSL support:
   Please run apt-get install libcurl4-openssl-dev or libcurl4-gnutls-dev, whichever you prefer.

 * To install Apache 2 development headers:
   Please install it with apt-get install apache2-threaded-dev

 * To install Apache Portable Runtime (APR) development headers:
   Please install it with apt-get install libapr1-dev

 * To install Apache Portable Runtime Utility (APU) development headers:
   Please install it with apt-get install libaprutil1-dev

If the aforementioned instructions didn't solve your problem, then please take
a look at our documentation for troubleshooting tips:

  https://www.phusionpassenger.com/library/install/apache/
  https://www.phusionpassenger.com/library/admin/apache/troubleshooting/

Ставим пакеты которые не поставили в начале. Эти пакеты добавлю в начало статьи что бы не возникала подобная ситуация.

sudo apt-get install libcurl4-openssl-dev
sudo apt-get install apache2-threaded-dev
sudo apt-get install libapr1-dev
sudo apt-get install libaprutil1-dev

Теперь запускаем установку заново, компиляция должна завершится примерно следующими сточками

redmine@red-test:/opt/redmine-2.5.3$ passenger-install-apache2-module
… сдесь отображается ход компиляции
…
…
<IfModule mod_passenger.c>
  PassengerRoot /usr/local/rvm/gems/ruby-2.2.1/gems/passenger-5.0.20
  PassengerDefaultRuby /usr/local/rvm/gems/ruby-2.2.1/wrappers/ruby
</IfModule>

Almost there!

Please edit your Apache configuration file, and add these lines:

   LoadModule passenger_module /home/redmine/.rvm/gems/ruby-2.1.0/gems/passenger-5.0.30/buildout/apache2/mod_passenger.so
   <IfModule mod_passenger.c>
     PassengerRoot /home/redmine/.rvm/gems/ruby-2.1.0/gems/passenger-5.0.30
     PassengerDefaultRuby /home/redmine/.rvm/gems/ruby-2.1.0/wrappers/ruby
   </IfModule>

After you restart Apache, you are ready to deploy any number of web
applications on Apache, with a minimum amount of configuration!

Press ENTER when you are done editing.


After you restart Apache, you are ready to deploy any number of web
applications on Apache, with a minimum amount of configuration!
Press ENTER when you are done editing.

создадим в папке /etc/apache2/conf-available/ файл mod_passenger.conf
touch /etc/apache2/conf-available/mod_passenger.conf

redmine@red-test:/opt/redmine-2.5.3$ sudo vim /etc/apache2/conf-available/mod_passenger.conf

и разместим следующее содержание (оно нам выведено ранее)

LoadModule passenger_module /usr/local/rvm/gems/ruby-2.2.1/gems/passenger-5.0.20/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /usr/local/rvm/gems/ruby-2.2.1/gems/passenger-5.0.20
  PassengerDefaultRuby /usr/local/rvm/gems/ruby-2.2.1/wrappers/ruby
</IfModule>

Создадим символическую ссылку, скорректируем virtual host (или создадим новый) и перезапустим apache2
пример:

redmine@red-test:/opt/redmine-3.3.0$ cat /etc/apache2/sites-enabled/000-default.conf
<VirtualHost *:80>
  # !!! Be sure to point DocumentRoot to 'public'!
  DocumentRoot /opt/redmine-3.3.0/public
  <Directory /opt/redmine-3.3.0/public >
  # This relaxes Apache security settings.
  AllowOverride all
  # MultiViews must be turned off.
  Options -MultiViews
  # Uncomment this if you're on Apache >= 2.4:
  Require all granted
  #PassengerUseGlobalQueue on
  </Directory>
</VirtualHost>

redmine@red-test:/opt/redmine-3.3.0$ sudo ln -s /etc/apache2/conf-available/mod_passenger.conf /etc/apache2/conf-enabled/mod_passenger.conf
redmine@red-test:/opt/redmine-3.3.0$ sudo service apache2 restart
* Restarting web server apache2 [ OK ]

Если все сделано правильно apache2 должен запуститься без ошибок. Можно подключаться к серверу http://red-test/

Информация по установке была взята с официального сайта redmine.org.
(EN) http://www.redmine.org/projects/redmine/wiki/RedmineInstall

redmine

Comments (1)

  • Виталий

    |

    Доброго времени суток! Спасибо за отличный мануал! Для тех, кто будет ставить на 16.04 — доп.пакет в начале темы apache2-threaded-dev замените на apache2-dev (первый входит во второй) . Заработало на ruby 2.1.0, выше версии не пробовал.

    Reply

Leave a comment