Июл 19

Redmine свободная (free as freedom) система для отслеживания и контроля ошибок. Исходный код распространяется под GNU GPL лицензией. Написана на Ruby on Rails. Является мощнейшим решением среди свободных продуктов.

Установка пакетов Redmine:

# aptitude install redmine redmine-mysql

Инталяционные скрипты предложат настроить пакет. Выберем СУБД mysql и укажем логин/пароль доступа к базе.

Если после этого сравнение таблиц выставляется в latin1_swedish_ci (или в любую другую кодировку отличную от utf8_general_ci) добавляем в /etc/mysql/my.cfg в секцию mysqld директиву collation-server=utf8_general_ci. После чего удаляем полностью БД и создаем новую базу Redmine с сравнением utf8_general_ci. Теперь разворачиваем новую базу Redmine:

cd /usr/share/redmine/
/usr/share/redmine# rake db:migrate RAILS_ENV="production" 

После чего у нас будут все таблицы в utf8_general_ci и с кириллицей не будет никаких проблем.

Настройка mod-passenger
Mod Passenger используется для связки веб сервера Apache и приложений написанных на Ruby On Rails.
С его помощью Apache может работать как веб сервер для ROR приложений.
Установка пакетов:

# aptitude install libapache2-mod-passenger

Загружаем модуль Apache:

# a2enmod passenger

Настраиваем vhost для Redmine:

# vim /etc/apache2/sites-enabled/redmine.example.com
<VirtualHost *:80>

         ServerName redmine.example.com
         ServerAlias redmine.example.com
         DocumentRoot /usr/share/redmine/public
         PassengerDefaultUser www-data

         <Directory /usr/share/redmine/public>
                      Order allow,deny
                      Allow from all
                      RailsEnv production
         </Directory>

</VirtualHost>

Без PassengerDefaultUser www-data Redmine не сможет загружать файлы на сервер.
После этого Redmine должен быть доступен по адресу http://redmine.example.com

Настройка subversion и интеграция с Redmine
Redmine способен отображать изменения в хранилище, вести лог активности, рисовать графики по количеству комитов в хранилище. Так же Redmine может управлять правами доступа к хранилищам на основе своих пользователей и их подписок к проектам, автоматически создавать хранилища для новых проектов.
Установим требуемые пакеты:

# aptitude install subversion 
# aptitude install libapache2-svn libapache-dbi-perl libapache2-mod-perl2 libdbd-mysql-perl libdigest-sha1-perl

Загрузим все требуемые модули Apache:

# a2enmod dav
# a2enmod dav_svn
# a2enmod perl

Дальше добавим одну строку в конфиг модуля:

vim /etc/apache2/mods-enabled/perl.load

LoadModule perl_module /usr/lib/apache2/modules/mod_perl.so
PerlLoadModule Apache::Redmine

Для того, что б пользователи могли авторизоваться в svn под теме же учётными данными что и в Redmine создадим символическую ссылку на скрипт Redmine.pm (можно просто скопировать его, но лучше создать ссылку)

# ln -s /usr/share/redmine/extra/svn/Redmine.pm /usr/lib/perl5/Apache/Redmine.pm

Настроим vhost для svn:

vim /etc/apache2/conf.d/svn.example.com

<VirtualHost *:80>
        ServerName svn.example.com
        ServerAlias svn.example.com

        <Location /svn>        
                 # подключаем модуль dav svn
                 DAV svn
                 SVNParentPath "/var/svn" 

                 # настраиваем авторизацию по логину/паролю
                 AuthType Basic
                 AuthName redmine
                 Require valid-user

                 # подключаем скрипт Redmine.pm
                 PerlAccessHandler Apache::Authn::Redmine::access_handler
                 PerlAuthenHandler Apache::Authn::Redmine::authen_handler

                 # настройки подключения к БД
                 RedmineDSN "DBI:mysql:database=redmine_default;host=localhost" 

                 # логин и пароль для доступа к БД Redmine
                 RedmineDbUser "redmine" 
                 RedmineDbPass "password" 
        </Location>

        <Location /svn-private>
                  DAV svn
                  SVNParentPath "/var/svn" 
                  Order deny,allow
                  Deny from all
                  # only allow reading orders
                  <Limit GET PROPFIND OPTIONS REPORT>
                  Allow from redmine_server_ip
                  </Limit>
        </Location>

</VirtualHost>

svn-private нужен для того, что б позволить самому Redmine получать доступ к хранилищам без авторизации. Это позволит полностью автоматизировать создание и подключения хранилища к новому проекту. Так же его можно использовать на своих серверах для обновления исходников без необходимости авторизации.
Теперь по адресу http://svn.example.com/svn Должен выводиться диалог авторизации.

Автоматическое создание svn хранилищ при добавлении нового проекта в Redmine
Скрипт /usr/share/redmine/extra/svn/reposman.rb. Он при запуске сверяет созданные проекты в Redmine и существующие svn хранилища. И если есть проект для которого нет хранилища — он создаст его. Для того что б это работало его нужно прописать в crontab.

*/5 * * * * /usr/share/redmine/extra/svn/reposman.rb --redmine redmine.example.com --key=ключ --svn-dir /var/svn --owner www-data --url http://svn.example.com/svn-private/ --verbose

Где —key это API ключ. В Redmine Администрирование — Настройки — Хранилище — API ключ. Выбираем «Сгенерировать ключ» и копируем его в скрипт.
—redmine — хост, на котором висит redmine.
—svn-dir — путь к svn.
—owner владелец хранилища.
—url — путь к svn. (svn-private нужен для того, что б redmine мог получать доступ к хранилищам без авторизации).

Все, настройка завершена. Теперь можно попробовать создать проект, через некоторое время для него автоматически будет создано хранилище. Добавить участников в проект и попробовать авторизоваться с использованием их учётных данных в хранилище.

40 Responses to “Установка Redmine на Debian/Ubuntu”

  1. Иван Says:

    Последняя инструкция не работает. Не создается вкладка хранилище. В чем проблема?

  2. Иван Says:

    Запустил reposman.rb. Ответ — repository for project PROJECT created.
    Появилась вкладка Хранилище — однако она пустая. А в crontab не работает.
    Причем если записывать в reposman.log отчет об ошибках, в нем появляются строки this script requires activeresource
    и run gem install activeresource to install it.
    Но последняя команда после запуска и установки activeresource ничего не изменяет.
    В crontab’е у меня в конце —url file:///var/local/svn.

  3. Иван Says:

    В смысле вручную?

  4. Иван Says:

    В crontab’е использовал url file и запускал под root’ом, а в логе выдает про activeresource (в предыдущем комментарии). А как использовать http?

  5. Иван Says:

    Нужно создать файл svn.example.com? DocumentRoot — /var/svn/ или как у меня var/local/svn? И где узнать RedmineDbUser и RedmineDbPass? SVNParentPath будет «/var/local/svn», поскольку у меня нет папки /var/svn, я правильно понимаю?

  6. Иван Says:

    Я не могу понять почему в reposman.log появляется this script requires activeresource, хотя после запуска команды gem install activeresource в log’е опять появляется ошибка, связанная с activeresource. В чем может быть проблема?

  7. Иван Says:

    Ubuntu 10.04. Команды, приведенные вами для activeresource не работают.

  8. Иван Says:

    Еще один вопрос. Как сделать так чтобы появлялись папки trunk, branches, tags.

  9. Иван Says:

    Когда запускаю /usr/share/redmine/extra/svn/reposman.rb —redmine redmine.example.com —key=ключ —svn-dir /var/svn —owner www-data —url http://svn.example.com/svn-private/ —verbose появляется:

    Unable to connect to http://redmine.example.com /sys/: Failed. Response code = 403. Response message = Forbidden. В чем проблема?

  10. Марина Says:

    Сейчас можно ставить из репозитория, берется он на сайте BitNami, на убунту стал как родной.

  11. Василий Says:

    Это одна строка в конфиге?
    LoadModule perl_module /usr/lib/apache2/modules/mod_perl.so
    PerlLoadModule Apache::Redmine

    Если да, то выдает ошибку:
    apache2: Syntax error on line 204 of /etc/apache2/apache2.conf: Syntax error on line 1 of /etc/apache2/mods-enabled/perl.load: LoadModule takes two arguments, a module name and the name of a shared object file to load it from

  12. Василий Says:

    И вообще:
    Если у меня на одном домене http://project.lcl.ru (не локально) и Redmine (http://project.lcl.ru/redmine) и svn (http://project.lcl.ru/svn), то как в подобном случае должны выглядеть конфиги? Ведь ServerName уже не пропишешь? Или я загоняю?

  13. Василий Says:

    Не работает авторизация через пользователей Redmine в SVN по адресу http://project.lcl.ru/svn, версия Ubuntu 10.4, все инструкции выполнены. В чем может быть проблема?

  14. Василий Says:

    Redmine 0.9.3.stable. Для общей авторизации требуется только:
    Цитата: «Дальше добавим одну строку в конфиг модуля: …»
    и Цитата: «Настроим vhost для svn». Ведь так?

  15. Василий Says:

    Да. А в кроне надо http://… писать?

  16. Василий Says:

    А кронтаб так должно быть: http://project.lcl.ru/svn/svn-private?

  17. Василий Says:

    Вот так выглядит конфиг апача:

    ServerAdmin webmaster@localhost

    DocumentRoot /var/www

    Options FollowSymLinks
    AllowOverride None

    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all

    RailsBaseUri /redmine

    Я добавил симлинк в DocumentRoot (/var/www) на /var/svn (Папка, где создаются хранилища)
    Для авторизации через SVN нужно теперь добавить:

    и далее строки из вашего конфига…

    и строки из вашего конфига…

    Так или нет?

  18. Василий Says:

    Теги «» были удалены из предыдущего комментария.

  19. Василий Says:

    Теги Documentt и Locationn были удалены

  20. Василий Says:

    В лог apach’a выдает следующее:
    ip-adress — redmine [30/Aug/2011:14:36:45 +0700] «GET /svn/ HTTP/1.1″ 401 660 «-» «Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1″

  21. Василий Says:

    «Пользователя добавили в проект, которому принадлежит хранилище?». Я же захожу на http://project.lcl.ru/svn (т.е. в этой папке все хранилища) — появляется диалог авторизации, который не пускает с любым пользователем из Redmine. Если я захожу на http://project.lcl.ru/svn/project1, то авторизации нет, и я спокойно в браузере просматриваю каталоги проекта project1.

  22. Василий Says:

    А как добавить пользователя в хранилище?

  23. Василий Says:

    Добавил участника в проект — зашел на http://project.lcl.ru/svn/project1, авторизовался, появилась следующее:

    Could not open the requested SVN filesystem

  24. Василий Says:

    Другой вопрос: я создал хранилище, все вроде бы работает по вашей инструкции (отдельное вам спасибо). Вы не знаете, как делать svncheckout в Windows, используя TortoiseSVN? Сейчас выдает ошибку:
    Error: Repository moved permanently to please relocate

  25. Василий Says:

    Почему-то после успешного создания хранилища, если снять «Общедоступный» в настройках Redmine, через некоторое время (я думаю из crontab’а) появляется ошибка в Redmine для данного проекта: Хранилище не содержит записи и/или исправления.

  26. Василий Says:

    Еще один глупый вопрос (по Linux): www-data — это группа юзеров апача?

  27. Василий Says:

    Заново поставил Redmine и SVN. Теперь когда в консоли делаю:
    ruby /usr/share/redmine/extra/svn/reposman.rb —redmine http://sitedomain/redmine —key=nZWGFxvyz8AYH8BUDGhY —svn-dir /var/svn —owner www-data —url file:///var/svn/ —verbose
    Получаю ошибку:
    Unable to connect to http://sitedomain/redmine/sys/: 756: unexpected token at ‘ …’

  28. Василий Says:

    Ты имеешь ввиду в браузере по адресу: http://sitedomain/redmine? Да, доступен.

  29. Василий Says:

    С той же системы где скрипт пускаешь в смысле — не понял, это как?

    cat access.log|grep ип_сервера|less —
    cat: access.log: Нет такого файла или каталога

  30. Василий Says:

    cat access.log|grep ип_сервера|less –
    cat: access.log: Нет такого файла или каталога — затупил…
    На самом деле такая последняя запись в log’е, если в браузере redmine запускаешь:
    ип_сервера — — [24/Feb/2012:14:56:35 +0700] «GET /favicon.ico HTTP/1.1″ 404 502 «-» «Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11″

  31. Василий Says:

    Downgrading activeresource from 3.1.0 to 2.3.11 did the trick for me.

  32. Василий Says:

    Почему-то не работает авторизация в svn пользователями Redmine. При переходе на http://sitedomain/svn появляется диалог авторизации, но при вводе user и password из Redmine авторизация не проходит. В чем может быть проблема?

  33. Василий Says:

    У меня вопрос по настройке уведомлений по почте. Я настроил postfix на сервере, но при отправлении тестового письма из Redmine появляется ошибка: Во время отправки письма произошла ошибка (hostname was not match with the server certificate)
    В логе следующее: lost connection after STARTTLS. Что не так?

  34. Randallereta Says:

    Hi there! walmart online pharmacy very good site.

  35. Stephenrhype Says:

    sullivan pharmacy roslindale ma http://stilnox.forum-prive.com/ natural penile enlargement pills

  36. Perrycruck Says:

    Hello there! online pharmacy oxycodone 30mg great web site.

  37. RobertRal Says:

    Hello! russian pharmacy online excellent internet site.

  38. Robertsworp Says:

    Hello there! propecia no script beneficial web site.

  39. PatrickSorgo Says:

    Hi there! canadian pharmacy cialias excellent web site.

  40. PatrickSorgo Says:

    Hello! cialis from international pharmacies very good web site.