Июл 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 мог получать доступ к хранилищам без авторизации).

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

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

  1. Chaser Says:

    Отлично, вполне вероятно, что пригодится в недалеком будущем для рутины. Еще бы рассказал о интеграции с git… эх… :)

  2. jeka Says:

    Вообще как-то забыл, допишу в ближайшее время.

  3. Иван Says:

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

  4. jeka Says:

    Запустите reposman.rb вручную с опцией —verbose и посмотрите все ли нормально.(желательно перед этим создать новый проект, что б он попытался создать хранилище)

  5. Иван 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.

  6. jeka Says:

    А вручную с http пускали? Пустая вкладка это нормально, значит редмайн подключился к хранилищу. Просто там ещё ничего нет.

  7. Иван Says:

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

  8. jeka Says:

    Когда из консоли пускали reposman.rb в –url использовали file или http? Просто по вашему описанию — когда вы его пустили сами(не из крона), все прошло нормально. Можете ещё в кроне перенаправить вывод в файл и посмотреть какие там ошибки. */5 * * * * some_script >> /path/logfile 2>&1 (только права на лог проверьте). Проблема скорее всего где-то с правами, редмайн по каким-то причинам не может достучаться /var/local/svn. В эту сторону надо копать как мне кажется. Или использовать http и не париться)

  9. jeka Says:

    И к стати, под каким юзером в кронтабе скрипт исполняется?

  10. Иван Says:

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

  11. jeka Says:

    —url http://svn.example.com/svn-private/
    и в vhost’e svn-private прописать

  12. Иван Says:

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

  13. jeka Says:

    DocumentRoot и SVNParentPath там, где у вас лежат хранилища(/var/local/svn). RedmineDbUser и RedmineDbPass можно посмотреть в /etc/redmine/default/database.yml

  14. Иван Says:

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

  15. jeka Says:

    Какая ОС на сервере? Попробуйте поставить через пакетный менеджер/порты(хз если в фряхе порт, потом посмотрю). В дебиане есть пакеты:
    $ aptitude search activeresource
    p libactiveresource-ruby — Connects objects and REST web services
    p libactiveresource-ruby1.8 — Connects objects and REST web services
    Попробуйте их поставить. Хотя и gem должен был помочь.

  16. Иван Says:

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

  17. Иван Says:

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

  18. jeka Says:

    $ svn checkout http://….
    $ mkdir trunk branches tags
    $ svn commit -m «my comment»
    Или воспользоваться гуишным клиентом. Kdesvn например или что-то другое, что больше понравиться. Мне и консольного хватает.

  19. jeka Says:

    А, а если автоматом то хз. Думаю можно поправить reposman.rb. Просто мне это не особо нужно.

  20. Иван 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. В чем проблема?

  21. Марина Says:

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

  22. Fatboy Slim Says:

    Всё замечательно, но автор статьи тактично умолчал один важный пункт!

    Не работает авторизация в svn через perl модуль в Ubuntu 10.10!
    Это один из багов который к счастью лечится обновлениями.

    Поэтому, перед всеми вышеописанными в статье манипуляциями выполняем 2 команды:

    sudo apt-get update
    sudo apt-get upgrade

    И только после этого… начинаем конфигурировать систему!

  23. jeka Says:

    Я это все настраивал на Ubuntu 10.04, Debian Lenny/Squeeze, там таких проблем не было, надо будет в статью добавить версии дистров.

  24. Fatboy Slim Says:

    jeka, это как я понял нормальное явление. Вот например настройки почты postfix+dovecot что прекрасно работают под 10.10, на последнем сервере 11.04 вообще не работают. Честно говоря разбираться не стал. 10.10 доволен как слон, ну… с небольшими оговорками, которые в принципе излечимы.
    Так что всё новое — не значит лучше.

    Но это так, к слову.

    Спасибо за статью! По ней настраивал! :)

  25. Erop Says:

    Всем привет, все сделал как в инструкции, при попытки зайти на страницу /svn сайта, просить авторизацию. При вводе логина из базы редмайна, в репозиторий не пускает :( куда покурить еще можно? спасибо

  26. Василий 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

  27. Василий Says:

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

  28. jeka Says:

    1 строка: LoadModule perl_module /usr/lib/apache2/modules/mod_perl.so
    2 строка: PerlLoadModule Apache::Redmine

    Если нужно разместить в одном домене — все директивы нужно вынести в отдельные локации( Location /redmine….) и DocumentRoot’ы перенести в них.

  29. Василий Says:

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

  30. jeka Says:

    Какая версия редмайна? В 1.2.0 в хеши паролей добавили соль. Руки не дошли написать об этом здесь еще.
    http://www.redmine.org/boards/2/topics/24386?r=24723#message-24723
    Вот тут я выложил патч для апачевского mod_auth_mysql.

  31. Василий Says:

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

  32. jeka Says:

    Симлинк на Redmine.pm сделали?

  33. Василий Says:

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

  34. Василий Says:

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

  35. jeka Says:

    Строка в кроне — это для автоматического создания хранилищ для новых проектов. По поводу же авторизации — переводите уровень логирования апача в дебаг и смотрите логи. Пока не будет хоть какой-то информации из логов — сложно сказать что не так.

  36. Василий 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 нужно теперь добавить:

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

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

    Так или нет?

  37. Василий Says:

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

  38. Василий Says:

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

  39. Василий 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″

  40. jeka Says:

    401 код. Значит авторизация все же есть, просто юзер/пароль не подходит? Пользователя добавили в проект, которому принадлежит хранилище?

  41. Василий Says:

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

  42. jeka Says:

    Значит проект в редмайне общедоступный, смотрите в Настройки — информация.

  43. Василий Says:

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

  44. jeka Says:

    Пользователь в проекте = пользователь в хранилище. Добавляйте пользователей в проект(Настройки — Участники) и они смогут авторизоваться в хранилище.

  45. Василий Says:

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

    Could not open the requested SVN filesystem

  46. jeka Says:

    Вы не создали хранилище. Настройте скрипт из статьи для автоматического создания для новых проектов хранилищ или svnadmin help.

  47. Василий Says:

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

  48. jeka Says:

    Я с подобной проблемой сталкивался только когда изменял адрес хранилища, нужно сделать svn sw —relocate старый_адрес новый_адрес.
    Конкретно где релокейт в TortoiseSVN сделать можно не знаю, не использовал.
    Но подобная проблема у меня возникала только с уже существующими хранилищами.

  49. Василий Says:

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

  50. jeka Says:

    Скрипт для создания хранилищ весит в кроне? Вероятно он права на директорию сбивает, проверьте владельца — им должен быть юзер веб-сервера, посмотрите umask

  51. Василий Says:

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

  52. jeka Says:

    да

  53. Василий 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 ‘ …’

  54. jeka Says:

    Redmine точно доступен по этому адресу с сервера?

  55. Василий Says:

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

  56. jeka Says:

    С той же системы где скрипт пускаешь в смысле. Еще глянь в логе есть ли обращения и с каким кодом веб-сервер отдает страницу cat access.log|grep ип_сервера|less

  57. Василий Says:

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

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

  58. Василий 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″

  59. Василий Says:

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

  60. Василий Says:

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

  61. Василий Says:

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

  62. jeka Says:

    http://davidroetzel.wordpress.com/2011/01/14/rails-3-actionmailer-tls-certificate-verification/
    Возможно, у тебя подобная проблема(сам я с таким не сталкивался).

  63. Hectorquien Says:

    Если попробовать дать предельно упрощенное определение определение в доступной форме Bitcoin, то можно отметить, что это по всему миру принимается в оплату любой покупки По итогам 2017 года зафиксировали существенное увеличение обмена] крипто-валюты Bitcoin. Это объясняется тем, что в Японии, , она и вовсе признана официально. | |Эта крипто-валюта создана и с успехом функционирует в интернете, и базируется она на математической обработке сложных алгоритмов при помощи определенной программы.|Пользуясь такой валютой, как Bitcoin, предприниматели, среди большого количества других преимуществ, увидели вариант подстраховки имеющихся денежных средств от инфляции (обесценивания), и что ещё более важно, стали инвестировать в новые проекты для извлечения прибыли.|Биткоин, наряду с прочими крипто-валютами, сегодня получает всё большую известность.|Благодаря присущим ему преимуществам, самым главным из которых является децентрализованность, появился вариант выполнять коммерческие сделки, не тратя собственные денежные средства на разнице обменных курсов и без взимания каких-либо специальных и .] Таким образом, отсутствие централизованного органа надзора гарантирует любому обладателю крипто-валюты Bitcoin анонимность при выполнении транзакций, при этом он считается равноправным участником системы.
    https://wmsell.biz/exchange_qiwi_na_bitcoin/

  64. BarryPes Says:

    Если Вы решили быстро, безопасно, выгодно осуществить продажу, покупку или обмен электронной валюты Bitcoin, мы рекомендуем профессиональный online-сервис на портале Betatransfer.net. Этот обменник может гарантировать быстрые, анонимные и безопасные денежные операции с рублевыми карточками как Сберегательного банка России, так и прочих финучреждений — ВТБ, Альфа-Банк и Тинькофф банк. Кроме этого, возможны валютные переводы на WIRE, поддерживаются направления webmoney и Яндекс.Деньги, проработаны и другие популярные системы.

    Своим посетителям мы предоставляем самые привлекательные условия:

    — сервис в автоматическом режиме корректирует валютные курсы согласно трендам на финансовом рынке;
    — выгодные обменные курсы;
    — оперативная помощь группы поддержки посетителей;
    — конвертация средств осуществляется достаточно быстро, в течение получаса;
    — мы можем предоставить бонусы для постоянных клиентов.

    Так, все, кто имеет дело с виртуальными средствами (online-коммерсанты, фрилансеры, владельцы интернет-магазинов и др.) получают превосходную возможность исполнять мгновенные финансовые трансферы, пополнять баланс, свободно распоряжаться личными средствами и выполнять любые операции с валютой. Плюс ко всему, на веб-сайте Betatransfer.net можно получить индивидуальное рабочее пространство для хранения частных сведений по всем вашим транзакциям, быстро и удобно погасить кредит в ВТБ24, а также хранить сведения по балансу и намечаемым платежам. Большой запас денежных средств обменника обеспечит вам не только наиболее заманчивый курс обмена Bitcoin, и не на одни лишь рубли, возможна также конвертация фактически по всем направлениям и валютам. К тому же, на нашем портале разработана программа для партнеров, предлагающая весьма выгодные условия для профессиональных рефоводов, которые имеют активные подписи для форумов, блоги и свои сайты, также поощряются группы в социальных сетях. Для этих клиентов предусматривается гонорар — 0,8%, что составляет приблизительно 30 процентов от прибыли обменного пункта, а также обратная связь, которая возможна по электронной почте, скайпу, онлайн-чату или вайберу (адреса имеются на портале). Betatransfer.net предоставляет нужный набор инструментов для финансовых операций с биткоином с помощью услуги по покупке, обмену и продаже валюты посредством весьма известных платежных систем.

    Наш биткоин-обменник Betatransfer.net предоставляет свои услуги для исполнения транзакций в любом направлении, а самое главное, делает это анонимно, в любое время, с гарантией безопасности и очень быстро.

    вики криптовалюта

  65. Randallereta Says:

    Hi there! walmart online pharmacy very good site.

Написать ответ