суббота, 28 апреля 2012 г.

Ubuntu + Redmine + Backlogs и прочее

Сразу замечу, если вам нужен просто redmine без каких то плагинов или вы просто посмотреть на него хотите что это да как, не парьте мозги ни себе ни людям вокруг :) идите сюда
bitnami-redmine



Там есть как полностью готовый установочный пакет (даже под Windows), так же есть виртуалки с установленным рабочим redmine'ом. Проверял, ставил, всё рабочее! Не удалось на неё только Backlogs поставить поэтому решил всё сделать сам.

Сперва список статей которые нам понадобятся и которыми мы будем пользоваться:
http://www.redmine.org/projects/redmine/wiki/HowTo_Install_Redmine_in_Ubuntu
http://www.redminebacklogs.net/en/installation.html
http://www.shamanis.com/2011/09/ustanovka-redmine-na-debian-squeeze/
http://www.shamanis.com/2011/09/ustanovka-plagina-backlogs-dlya-redmine/
http://blog.eike.se/2010/08/rails-3-on-ubuntu-910.html

Поднимать веб-сервер будем на nginx, так как авторитетные люди мне сказали, что он шустрее апача и мол апач тихо курит в сторонке... работает действительно шустро, хотя в процентах не могу сказать на сколько он шустрее или медленнее апача :)

Всё делаем с нуля, так как я фанат VirtualBox'а и терпеть не могу что то ставить на уже с чем то работающую систему, т.к. если что то пойдёт не так, х.з. кого крыть матом :)

Берём ubuntu-10.04.4-server-i386 (да уже есть 11 и даже выходит 12, но я пока что лошадку не планирую менять, т.к. устраивает во всём) и ставим всё по умолчанию, даже диск говорим ему делить самому в формате ext4. Из пакетов которые он предлагает я всегда ставлю только ssh. Остальное потом ручками.

Сразу при первом входе обновляем инфу по репозиториям и ставим незаменимого помощника:
sudo apt-get update
sudo apt-get install mc
Так же можно полностью обновить систему, но я этого не делаю так как времени жалко :)
sudo apt-get upgrade
Затем всегда меняю IP на статику, так как работаю с виртуалкой только по SSH а искать её после очередной перезагрузки желания нет.
sudo mcedit /etc/network/interfaces
Приводим к виду (здесь и в дальнейшем для примера я привожу ip адрес машины 192.168.0.12 , вам же необходимо вместо него ставить свой)
auto eth0
iface eth0 inet static
       address 192.168.0.12
       netmask 255.255.255.0
       gateway 192.168.0.1
DNS прописываются в файлике resolv.conf
sudo mcedit /etc/resolv.conf
nameserver 192.168.0.1
nameserver xxx.xxx.xxx.xxx
Ребутим сеть
sudo /etc/init.d/networking restart
Для того, что бы законектится по SSH вам понадобится PuTTY.

Теперь попробуем исключить одну ошибку, над которой я долго бился
sudo apt-get install build-essential subversion libmysqlclient-dev libdigest-sha1-perl libgemplugin-ruby libgemplugin-ruby1.8 libruby-extras libruby1.8-extras rails rake ruby rubygems rubygems1.8 ruby1.8-dev libopenssl-ruby1.8
wget http://rubyforge.org/frs/download.php/70696/rubygems-1.3.7.tgz
tar xvfz rubygems-1.3.7.tgz
cd rubygems-1.3.7
sudo ruby setup.rb
sudo gem install rails
Ставится будет дооооооолго...

Начинаем ставить Redmine :) добавляем репозиторий
sudo add-apt-repository ppa:ondrej/redmine
Тут меня ждала неожиданность в виде
sudo: add-apt-repository: command not found
С помощью http://pawned.ru/content/ppa-repozitorii-v-debian.php решаем эту проблему
wget http://pawned.ru/sites/default/files/files/add-apt-repository.sh.txt
sudo cp add-apt-repository.sh.txt /usr/sbin/add-apt-repository
sudo chmod o+x /usr/sbin/add-apt-repository
sudo chown root:root /usr/sbin/add-apt-repository
Повторяем добавление репозитория
sudo add-apt-repository ppa:ondrej/redmine
Обновляем
sudo apt-get update
Ставим php и mysql-сервер (пароли обязательно записываем :))
 sudo apt-get install php5 mysql-server
Ставим Redmine
sudo apt-get install redmine redmine-mysql
Создаём файл конфигурации, для этого на нужно скопировать файл /usr/share/redmine/config/configuration.yml.example в эту же папочку и назвать его configuration.yml
Редактируем его добавив внизу в разделе production следующее: (как оказалось этот пункт вообще не нужен так как на убунте редмайн при такой установке сам создаёт файл /etc/redmine/default/database.yml и там всё уже прописано)

production:
  adapter: mysql
  database: redmine
  host: localhost
  username: redmine
  password: my_password

Создаём необходимый файлик для управления redmine'ом
sudo su
cd /etc/init
>redmine.conf
exit
sudo mcedit /etc/init/redmine.conf
Приводим его к виду
# Redmine

description  "Redmine" 

start on runlevel [2345]
stop on runlevel [!2345]

expect daemon
exec ruby /usr/share/redmine/script/server webrick -e production -b 0.0.0.0 -d
Теперь он у нас будет стартовать при загрузке системы и мы прямо сейчас можем стартануть его, а затем и остановить, если понадобится, с помощью следующих команд
sudo service redmine start
sudo service redmine stop
Проверяем, redmine доступен нам по адресу http://192.168.0.12:3000/ ну или какой вы там ip указали. Теперь мы имеем установленный свежайший redmine (у меня поставился Redmine 1.3.3.stable (MySQL)) с mysql'ной базой. Работает он кстати через apache в данный момент, но это ненадолго.

Ставим nginx
sudo apt-get install nginx
Стопаем apache
sudo /etc/init.d/apache2 stop
Пытался его удалить, но почему то система сказала что нет такой установленной проги, и я забил на это дело

Стартуем nginx
sudo /etc/init.d/nginx start
И видим его приветствие при посещении нашего "сайта" http://192.168.0.12

Теперь нам нужно привязать redmine к 80 порту для удобства.
Редактируем файл конфигурации:
sudo mcedit /etc/nginx/nginx.conf
В самом низу перед последней скобкой } (не закоментированной) добавляем следующее:

server {
  listen 80;
  server_name 192.168.0.12;
#access_log  /var/log/nginx/access_$host main;
  root   /www/redmine;  # это путь к скриптам Redmine

  location / {
    proxy_set_header   Host 192.168.0.12;
    proxy_set_header   X-Forwarded-Proto http;
    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    proxy_set_header   X-Real-IP  $remote_addr;
    if (!-f $request_filename) {
      break;
      proxy_pass         http://127.0.0.1:3000;
    }
  }
}
4-ю строку я закоментировал, потому что nginx почему то ругается на неё, я не стал разбиратся:)

В итоге всё должно выглядеть примерно так:
user www-data;
worker_processes  1;

error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
    # multi_accept on;
}

http {
    include       /etc/nginx/mime.types;

    access_log /var/log/nginx/access.log;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
    tcp_nodelay        on;

    gzip  on;
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;

server {
    listen 80;
    server_name 192.168.0.12;
#    access_log  /var/log/nginx/access_$host main;
    root   /user/share/redmine;  # это путь к скриптам Redmine
        
    location / {
    proxy_set_header   Host 192.168.0.12;
    proxy_set_header   X-Forwarded-Proto http;
    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    proxy_set_header   X-Real-IP  $remote_addr;
    if (!-f $request_filename) {
    break;
    proxy_pass         http://127.0.0.1:3000;
    }
    }
    }
}
# mail {
#     # See sample authentication script at:
#     # http://wiki.nginx.org/NginxImapAuthenticateWithApachePhpScript
# 
#     # auth_http localhost/auth.php;
#     # pop3_capabilities "TOP" "USER";
#     # imap_capabilities "IMAP4rev1" "UIDPLUS";
# 
#     server {
#         listen     localhost:110;
#         protocol   pop3;
#         proxy      on;
#     }
# 
#     server {
#         listen     localhost:143;
#         protocol   imap;
#         proxy      on;
#     }
# }
Перезагружаем nginx
sudo /etc/init.d/nginx restart
И лице зреем наш redmine по адресу http://192.168.0.12

Начинаем ставить Backlogs.

Тут всё будем делать от рута для удобства

sudo su

Первое что нам понадобится:

apt-get install git-core

apt-get install libxslt-dev libxml2-dev

Переходим в папку плугинов
cd /usr/share/redmine/vendor/plugins/
Устанавливаем необходимые gem'ы

gem install nokogiri


gem install open-uri-cached


gem install prawn


gem install icalendar


gem install system_timer


gem install holidays --version 1.0.3


gem install holidays

Клонируем backlog

git clone git://github.com/backlogs/redmine_backlogs.git

переходим в папку с ним

cd redmine_backlogs

Смотрим какие версии есть

git tag

На момент написания статьи последняя версия 0.9.4 но я поставил 0.9.3 так как последней версии нужен редмайн 1.4, а у меня стоит 1.3

git checkout v0.9.3

выполняем две необходимые команды

RAILS_ENV=production
export RAILS_ENV

переходим в корень редмайна

cd /usr/share/redmine

выполняем необходимые команды (вторая команда у меня не выполняется, я не стал разбиратся что сней, четвёртая тоже, видимо нечего апать)

rake generate_session_store
rake config/initializers/session_store.rb
rake db:migrate
rake db:migrate:upgrade_plugin_migrations

Ставим бэклог

rake redmine:backlogs:install

Перезапускаем редмайн

sudo service redmine restart

И после этого максимум что ещё понадобится так это зайти в администрирование нажать конифгурировать бэклог и нажать внизу сохранить.


Что бы поставился стиль бэклога, который идёт с ним в комплекте, нам нужно содержимое папки
/usr/share/redmine/vendor/plugins/redmine_backlogs/assets

скопировать в папку
/usr/share/redmine/public/plugin_assets/redmine_backlogs
Ещё пара плагинов которые нам понадобились добавляются следующими командами

sudo git clone git://github.com/meineerde/redmine_checkout.git
sudo git clone git://github.com/luckval/redmine_local_avatars.git

Перезапускаем редмайн и готово.

Так же нам надо залить базу со старого сервера, копируем бэкап себе в папку юзера и выполняем следующую команду
sudo mysql redmine_default -uUSER -pPASSWORD < redmine_mysql_backup.sql

Ещё раз перезапускаем редмайн. :)

Комментариев нет:

Отправить комментарий