Блог - Linux, программирование, Я!

WEB, ИнтернетУстановка Redmine на Ubuntu 9.10 под Nginx

Redmine – это довольно популярная в последнее время платформа для управления проектами и отслеживания ошибок. По идее, его установка – стандартная процедура, но мне, как совершенно незнакомому с Ruby и тонкостями установки Ruby софта пришлось повозиться.

Кроме того, в большинстве инструкций описывается использование Apache в качестве веб-сервера. У меня для этой цели будет использован Nginx

Подготовка системы

Для начала установим минимально необходимые для работы Ruby пакеты

sudo apt-get install ruby rubygems ruby1.8-dev libgemplugin-ruby libgemplugin-ruby1.8  libruby-extras libruby1.8-extras rubygems1.8 libsqlite3-ruby libopenssl-ruby

Пакеты ruby,  ruby1.8-dev, libruby-extras, libruby1.8-extras нужны для работы самого руби, rubygemslib, gemplugin-ruby, libgemplugin-ruby1.8, rubygems1.8 нужны для установки Ruby библиотек из самого руби (эт такой руби-пакетный менеджер), libopenssl-ruby – для SSL, libsqlite3-ruby – для работы с sqlite3 базой данных. Хочу заметить, что это НЕОБХОДИМЫЙ МИНИМУМ пакетов.

Далее устанавливаем необходимые для работы Redmine Ruby – библиотеки через встроенный пакетный менеджер gem

sudo gem install -v=2.3.5 rails
sudo gem install mysql mongrel mongrel_cluster

mysql – C-библиотека для работы с MySQL базой данных (см UPD), rails – знаменитые RubyOnRails, mongrel и mongrel_cluster – родной веб-сервер для Ruby веб-приложений.

Создание учетных записей

В принципе, этот шаг можно пропустить и использовать существующего пользователя, например www-data, но я крайне рекомендую все-же не полениться и, ради безопасности, проделать и эту часть инструкции.

Создаем нового пользователя с домашней директорией /home/redmine , и именем redmine

sudo useradd -d /home/redmine -m -s /bin/bash redmine ; sudo passwd redmine

После ввода этой команды придумайте пароль для нового пользователя и введите его в появившемся запросе.

Переключаемся на созданного пользователя

sudo su redmine ; cd ~

.

Загрузка и настройка Redmine

Если у вас есть GIT, то

git clone git://github.com/edavis10/redmine.git

Если нет:

svn co http://redmine.rubyforge.org/svn/trunk redmine

Перемещаем полученные файлы в корень домашней директории и подчищаем мусор

mv redmine/* . ; rm -r redmine

Теперь нужно настроить соединение Redmine с базой данных… Redmine поддерживает работу с базами данных sqlite, mysql и postgre-sql. MySQL у меня на сервере есть, но его версия 5.1. Проблема в том, что текущая версия Ruby библиотеки не поддерживает работу с версией 5.1 сервера MySQL, поэтому я решил использовать sqlite3 базу данных. Так вот, копируем пример конфиг-файла

cp config/database.yml.example config/database.yml

И редактируем этот конфиг

nano config/database.yml

Меняем строки production на что-то вроде backup_production а строку test_sqlite3 на production, сохраняем. Т.е. вся база данных будет храниться в sqlite3 файле db/test.db (создастся автоматически)

После создаем некое рандомное значение, необходимое для кодирования Cookies

rake config/initializers/session_store.rb

Генерируем структуру базы данных

rake db:migrate RAILS_ENV="production"

Загружаем и импортируем в базу данных стандартные данные

RAILS_ENV=production rake redmine:load_default_data

Выставляем необходимые права доступа

mkdir tmp public/plugin_assets sudo chown -R redmine:redmine files log tmp public/plugin_assets sudo chmod -R 755 files log tmp public/plugin_assets

В принципе, теперь можно попробовать запустить:

ruby script/server webrick -e production

При этом запустится простенький веб-сервер по адресу http://localhost:3000/ Можно открыть в браузере, зайти под учеткой admin/admin, сменить пароль на нормальный. Для остановки сервера жмем Ctrl+C. Если хотите использовать redmine локально – на этом можно остановиться, а для совместной работы через интернет нужно настроить веб-сервер для работы с Ruby и Redmine. Как это сделать – см во 2-й части

UPD: для использования Redmine с базой данных MySQL необходимо установить драйвер MySQL для Ruby т.к. без этого будет выскакивать сообщение "!!! The bundled mysql.rb driver has been removed from Ruby 2.2". Т.е. выполняем

sudo gem install mysql

Если при этом у вас появляется сообщение об ошибке типа

ERROR: Error installing mysql:

ERROR: Failed to build gem native extension.

/usr/bin/ruby1.8 extconf.rb

checking for mysql_query() in -lmysqlclient… no

checking for main() in -lm… yes

………..

*** extconf.rb failed ***

То нужно немного настроить окружение:

sudo apt-get install build-essential libmysqlclient-dev

Возможно понадобится libmysql-cil-dev пакет. После этого повторяем sudo gem install mysql и спокойненько пользуемся MySQL в качестве БД для Redmine.

  1. 2010-01-14 05:10:06 | #

    [...] Установка Redmine на Ubuntu 9.10 под Nginx 14 [...]

  2. 2010-03-21 12:17:04 | #

    [...] целиком подошла вот эта инструкция по установке: Установка Redmine на Ubuntu 9.10 под Nginx с небольшими оговорками, базу я все таки в отличии от [...]

  3. 2010-03-22 23:36:39 | #

    Разобрался таки, с запуском в бэкграунд:

    ruby script/server webrick -d -e production + скрипт для запуска



    #!/bin/bash

    # здесь должен быть путь к месту установки redmine

    cd /var/www/redmine

    SCRIPT="ruby script/server webrick -d -e production"

    RETVAL=0

    case "$1" in

    start)

    $SCRIPT

    RETVAL=$?

    ;;

    stop)

    killall -9 ruby

    RETVAL=$?

    ;;

    restart)

    killall -9 ruby

    $SCRIPT

    RETVAL=$?

    ;;

    *)

    echo "Usage: /etc/inid.d/redmine {start|stop|restart}"

    exit 1

    ;;

    esac

    exit $RETVAL