Для ведения своих проектов я решил воспользоваться специально созданными для этого инструментами и мой выбор пал между 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/
Заходите в админку и меняйте все языковые настройки на русский.
Maryanna Nesina
Спасибо.
Небольшое дополнение: пока я не добавила в 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)
Человек_Разумный
У меня все прекрастно работает с настройкой, которая описана в статье.
И кстати, не забывайте менять версии у 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
Человек_Разумный
Случилось и у меня такая же ошибка, как у Maryanna Nesina.Спасибо ей за дополнение.
Maryanna Nesina
Марианна! Добавьте в httpd.conf следующие строки, откорректировав пути для своей системы:
PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.7
PassengerRuby /usr/local/bin/ruby
PassengerDefaultUser www
Денис
Здравствуйте! У меня при установке вылезла вот такая ошибка:
*** 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.
Что мне делать, подскажите пожалуйста? Все делал по инструкции, как написанно в данной статье…
Человек_Разумный
Даже не знаю, что сказать. Статья может частично потерять свою актуальность.
Какая версия фряхи? Когда порты обновлялись? Какая версия редмайна ставиться?
Александр Фукалов
Спасибо за полезную инструкцию. Ею интересуются люди так или иначе связанные с Redmine, а значит всем им может пригодиться наша разработка. Мы создали простой таймер RMClient для учета времени в Redmine. Программа удобна и функциональна. Мы используем этот таймер в собственной компании, что позволило существенно упростить работу с Redmine и оптимизировать работу команды. Предлагаю всем желающим ее протестировать и если понравиться будем рады новым пользователям!