Установка Redmine в FreeBSD
Вам, вероятно, известно, что redmine портирован в FreeBSD. Прежде всего я попытался его собрать:
#cd /usr/ports/www/redmine
===> redmine-1.2.1_1 is marked as broken: Does not work with RubyGems 1.8.
*** Error code 1
Stop in /usr/ports/www/redmine.
Конечно, Вы бы врядли читали сейчас этот пост если бы порт собрался успешно
Автор порта пометил его как “broken” из-за бага в Gem 1.8.
В результате мне пришлось ставить его вручную по официальноу руководству
В процессе установки я столкнулся с рядом проблемами. Таким образом данный пост является дополненным, а также адаптированным под FreeBSD руководством установки Redmine. Рассмотрены возможные ошибки и способы их решения.
Надеюсь это пригодится кому-нибудь. итак, поехали…
1) Качаем Redmine (I used svn for it):
#svn co http://redmine.rubyforge.org/svn/branches/1.2-stable redmine-1.2
2) Создаем базу данных (конечно, Вы можете использовать для этого phpmyadmin или что угодно):
mysql -uuser -ppasword
mysql> create database redmine character set utf8;
mysql> create user 'redmine'@'localhost' identified by 'passforuser';
mysql> grant all privileges on redmine.* to 'redmine'@'localhost';
mysql>exit;
3) Правим конфиг для подключения к базе данных ( копируем из config/database.yml.example). config/database.yml:
production:
adapter: mysql
database: redmine
host: localhost
username: redmine
password: passforuser
4) Генерируем session store secret.
#rake generate_session_store
Missing the i18n 0.4.2 gem. Please `gem install -v=0.4.2 i18n`
Вот здесь начинаются проблемы. Без паники делаем то, что предлагаетcя:
#gem install -v=0.4.2 i18n
Fetching: i18n-0.4.2.gem (100%)
Successfully installed i18n-0.4.2
1 gem installed
Installing ri documentation for i18n-0.4.2...
Installing RDoc documentation for i18n-0.4.2...
снова пробуем:
#rake generate_session_store
Missing the Rails 2.3.11 gem. Please `gem install -v=2.3.11 rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.
Я попробовал изменить значение RAILS_GEM_VERSION (on 3.0.5) но Redmine еще не работает с версией 3.0.5 (у меня была установлена именно она) так что устанавливаем раннюю версию:
# gem install -v=2.3.11 rails
и снова пробуем:
# rake generate_session_store
rake/rdoctask is deprecated. Use rdoc/task instead (in RDoc 2.4.2+)
WARNING: 'task :t, arg, :needs => [deps]' is deprecated. Please use 'task :t, [args] => [deps]' instead.
at /vol1/www/www.slim/httdocs/redmine/redmine-1.2/lib/tasks/email.rake:170
Немного погуглив, выяснилось, что это связано с версией rake которую тоже нужно “опустить”:
# gem install -v=0.8.7 rake
Fetching: rake-0.8.7.gem (100%)
Successfully installed rake-0.8.7
1 gem installed
Installing ri documentation for rake-0.8.7...
Installing RDoc documentation for rake-0.8.7...
# gem uninstall -v=0.9.2 rake
Successfully uninstalled rake-0.9.2
В конечном итоге сработало:
# rake generate_session_store
(in /vol1/www/www.slim/httdocs/redmine/redmine-1.2)
5) Миграция базы данных:
# rake db:migrate RAILS_ENV=production
(in /vol1/www/www.slim/httdocs/redmine/redmine-1.2)
rake aborted!
syntax error on line 8, col 2: ` encoding: utf8'
(See full trace by running task with --trace)
Нашел-таки проблему. Оказалось я допустил ошибку в конфигурации базы данных – пропустил проблем перед паролем. Далее:
# rake db:migrate RAILS_ENV=production
(in /vol1/www/www.slim/httdocs/redmine/redmine-1.2)
!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql.
rake aborted!
no such file to load -- mysql
устанавливаем gem mysql:
howtobsd# gem install mysql
и снова пробуем запустить миграцию:
howtobsd# rake db:migrate RAILS_ENV=production
На этот раз все прошло гладко, миграция завершена!
6) Импортируем дефолтные данные (рекомендуется):
# rake redmine:load_default_data RAILS_ENV=production
(in /vol1/www/www.slim/httdocs/redmine/redmine-1.2)
Select language: bg, bs, ca, cs, da, de, el, en, en-GB, es, eu, fa, fi, fr, gl, he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en]
Выбираем язык и двигаемся дальше.
7) В соответствии с руководством устанавливаем права на папки (создаем, если каких-то нет):
chown -R username:username files log tmp public/plugin_assets
chmod -R 755 files log tmp public/plugin_assets
8) Тестируем установку:
#ruby script/server webrick -e production
=> Booting WEBrick
=> Rails 2.3.11 application starting on http://0.0.0.0:3000
Готово, теперь можете попробовать в браузере ввести http://localhost:3000
* login: admin
* password: admin
У меня заработало. Надеюсь у Вас тоже!
9) Нам осталось только сконфигурировать Apache для redmine.
Конфигурация ROR приложений для Apache описана в моей статье “Installing Ruby on Rails on FreeBSD” только сейчас я внес некоторые изменения в httpd.conf в связи с измененной версией 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
PassengerRuby /usr/local/bin/ruby18
10) Ну, и напоследок, мой пример конфигурации виртуального хоста для redmine:
<VirtualHost *:80>
ServerName my-projects.com
DocumentRoot /vol1/www/www.slim/httdocs/redmine/redmine-1.2/public/
RailsEnv production
ErrorLog /vol1/www/www.slim/httdocs/redmine/redmine-1.2/log/httpd.log
</VirtualHost>
Это все!
Posted on Октябрь 22nd, 2011 by admin
Filed under: Software
Годная статья.
Но я проблему решил обновлениями портов
just install 1.7.2 ruby-gems and comment out BROKEN=… line in the Makefile of redmine port and install as usual
За статью спасибо, но упущен важный момент:
как ruby-gems откатить до версии меньше 1.8?! Бьюсь сейчас, никак не могу найти нужный порт…
/usr/ports/ports-mgmt/portdowngrade/