Установка Redmine на FreeBSD

Для ведения своих проектов я решил воспользоваться специально созданными для этого инструментами и мой выбор пал между trac и redmine. Поигравшись в демо, мне больше приглянулся Redmine. Написан этот инструмент на Ruby как утверждает википедия, на основе Ruby on Rails. Поэтому его установка может быть не совсем тривиальной. Основная загвоздка в том, как подружить его с Apache.

Итак приступим к установке:
Ставлю из портов. В качестве субд я выбрал MySQL.

# whereis redmine
redmine: /usr/ports/www/redmine
# cd /usr/ports/www/redmine && make install clean

Далее ставим для passenger следующие галки.

Произойдет установка еще ряда компонентов. После установки у вас в /usr/local/www появится redmine

Далее выполняем шаги из официальной документации.

Создаем пользователя и базу данных для redmine. А так же даем полные права на эту базу.
create database redmine character set utf8;
create user 'redmine'@'localhost' identified by 'my_password';
grant all privileges on redmine.* to 'redmine'@'localhost';

# cp /usr/local/www/redmine/config/database.yml.example /usr/local/www/redmine/config/database.yml

Убираем все лишнее из database.yml, оставляя:

production:
   adapter: mysql
   database: redmine
   host: localhost
   username: redmine
   password: my_password

И копируем следующий файл:

# cp /usr/local/www/redmine/public/dispatch.fcgi.example /usr/local/www/redmine/public/dispatch.fcgi

Переходим в директорию /usr/www/redmine и выполняем команды:

# rake generate_session_store
# RAILS_ENV=production rake db:migrate
# RAILS_ENV=production rake redmine:load_default_data

Первая строка генерирует некий секретный ключ сессии, вторая создает структуру БД, третья загружает дефолтный конфиг в базу данных. В третей команде дается выбор, какой язык дефолной конфигурации, набираем ru и потом радуемся нормальному русскому интерфейсу redmine.

Почту я не стал настраивать, так как redmine крутится на домашнем сервере и я один буду им пользоваться.

Тестируем работоспособность установленного :

# ruby script/server webrick -e production

И заходим в браузере на http://localhost:3000/
Логин: admin
Пароль: admin

Если redmine открылся, значит установка и базовая настройка прошли удачно. Можете зайти а админку и поменять дефолтный пароль.

По нажатии Ctrl + C webrick должен закрыться, однако у меня он почему то отказывался это делать, пришлось делать kill -9 🙂

Заключительный шаг — заставить работать Redmine с Apache. У меня используется Apache 2.2. Так как у меня крутится еще несколько проектов на этом веб-сервере, установить Redmine как основной DocumentRoot не представляется возможным. Было решено вынести redmine в поддомен redmine.localhost и настроить для этого VirtualHost.
Для работы ruby в апаче надо добавить следующие 2 строки:
LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.2/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.2

Ну и добавляем VirtualHost:

<VirtualHost redmine.localhost:80> ServerName redmine.localhost ServerAdmin root@localhost DocumentRoot /usr/local/www/redmine/public/ ErrorLog /usr/local/www/redmine/log/redmine_error_log <Directory "/usr/local/www/redmine/public/"> Options Indexes ExecCGI FollowSymLinks Order allow,deny Allow from all AllowOverride all </Directory> </VirtualHost>

Впринципе на этом все, ребутаем апач и пробуем зайти на http://redmine.localhost/
Заходите в админку и меняйте все языковые настройки на русский.

7 комментариев

  1. Спасибо.
    Небольшое дополнение: пока я не добавила в httpd.conf строчку
    PassengerRuby /usr/local/bin/ruby

    после перезагрузки машины сайт redmine выдавал 500-ю ошибку и в httpd-error.log валилось:

    *** Passenger ERROR (ext/common/ApplicationPool/../SpawnManager.h:220):
    Could not start the spawn server: ruby: No such file or directory (2)
    [ pid=1124 thr=0x8016041c0 file=ext/apache2/Hooks.cpp:864 time=2011-04-08 18:17:23.916 ]: Unexpected error in mod_passenger: Cannot spawn application ‘/usr/local/www/redmine’: Could not read from the spawn server: Software caused connection abort (53)
    Backtrace:
    in ‘virtual Passenger::SessionPtr Passenger::ApplicationPool::Client::get(const Passenger::PoolOptions&)’ (Client.h:750)
    in ‘Passenger::SessionPtr Hooks::getSession(const Passenger::PoolOptions&)’ (Hooks.cpp:297)
    in ‘int Hooks::handleRequest(request_rec*)’ (Hooks.cpp:566)

  2. У меня все прекрастно работает с настройкой, которая описана в статье.
    И кстати, не забывайте менять версии у passenger в httpd.conf
    после очередного обновления пришлось немного поменять :
    LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.5/ext/apache2/mod_passenger.so
    PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.5

  3. Марианна! Добавьте в httpd.conf следующие строки, откорректировав пути для своей системы:

    PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.7
    PassengerRuby /usr/local/bin/ruby
    PassengerDefaultUser www

  4. Здравствуйте! У меня при установке вылезла вот такая ошибка:
    *** Error code 1

    Stop in /usr/ports/textproc/rubygem-nokogiri.
    *** Error code 1

    Stop in /usr/ports/devel/rubygem-capybara.
    *** Error code 1

    Stop in /usr/ports/www/redmine.
    *** Error code 1

    Stop in /usr/ports/www/redmine.
    1c# -1.5.0 Documentation —quiet
    Stop in /usr/ports/textproc/rubygem-nokogiri.
    *** Error code 1

    Stop in /usr/ports/devel/rubygem-capybara.
    *** Error code 1

    Stop in /usr/ports/www/redmine.
    *** Error code 1

    Stop in /usr/ports/www/redmine.

    Что мне делать, подскажите пожалуйста? Все делал по инструкции, как написанно в данной статье…

  5. Даже не знаю, что сказать. Статья может частично потерять свою актуальность.
    Какая версия фряхи? Когда порты обновлялись? Какая версия редмайна ставиться?

  6. Спасибо за полезную инструкцию. Ею интересуются люди так или иначе связанные с Redmine, а значит всем им может пригодиться наша разработка. Мы создали простой таймер RMClient для учета времени в Redmine. Программа удобна и функциональна. Мы используем этот таймер в собственной компании, что позволило существенно упростить работу с Redmine и оптимизировать работу команды. Предлагаю всем желающим ее протестировать и если понравиться будем рады новым пользователям!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *