21.06.2011

Установка RedMine на Debian Squeeze

В качестве СУБД будем использовать MySQL. В качестве вэб-сервера - Apache. Поэтому подразумевается, что они уже установлены на сервер.

Ввиду предостережения (не помню где увиденного), что лучше использовать пакеты мейнтенеров Debian, чем gem, то будем работать только с aptitude.

Вообще все нижеперечисленное можно поставить одной командой, так как все вышеперечисленное - есть зависимости для пакета Redmine, но мы сделаем по порядку, чтобы было понятно что и к чему в этой Ruby-кухне.

Итак ставим самое главное: интерпретатор языка Ruby:
aptitude install ruby libdbd-mysql-ruby libmysql-ruby

Так как система Redmine написана на фреймворке Ruby on Rails, то нам понадобятся и он тоже. Он будет лежать отдельно от сайта Redmine (и вообще никак его не касаться), а все приложения (в том числе и Redmine) будут пользоваться его библиотеками:
aptitude install rails



Далее нам нужно научить Apache работать с языком Ruby. Вообще есть два типа модулей для поддержки языков:
1) простые, как например mod_php, mod_python, mod_ruby, mod_perl, которые умеют просто обработать код на своем языке. Так сказать, chip&dirty.
2) А есть сложные, как например mod_wsgi (для Python), mod_rails/mod_rack/mod_passenger (для Ruby) mod_mono (для .Net) и прочие. При помощи таких модулей, Apache может уже обращаться к фреймворкам соответствующего языка.

Итак ставим модуль Apache, который поможет работать с фреймворками (выбираем Phusion Passenger, но есть и альтернативы):
aptitude install libapache2-mod-passenger

Теперь устанавливаем само приложение RedMine:
aptitude install redmine redmine-mysql

Далее создаем виртхост в Apache, который будет говорить, где находятся файлы RedMine и как их обрабатывать:
vi /etc/apache2/sites-available/redmine

И пишем там примерно следующее:


<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName redmine.example.com

        DocumentRoot /usr/share/redmine/public
            

        ErrorLog ${APACHE_LOG_DIR}/redmine.error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/redmine.access.log combined

</VirtualHost>

И активируем этот виртхост:
a2ensite redmine

Перезапускаем Apache для применения изменений:
invoke-rc.d apache2 restart

И проверяем (не забываем добавить узел в DNS): http://redmine.example.com

Если есть проблемы с русским языком, то нужно переделать кодировку таблиц с latin1 на utf8:
mysqldump -uroot -p redmine_default > redmine-latin.sql
sed 's/CHARSET=latin1/CHARSET=utf8/g' redmine-latin.sql > redmine-utf.sql
mysql -uroot -p redmine_default < redmine-utf.sql
Это не спасет уже существующий русский текст, но далее все будет в порядке.










1 комментарий: