понедельник, 24 июня 2013 г.

Устанавливаем Redmine 2.3 в CentOS 6.4 (Postgresql 9.2 backend)

В данной заметке, я расскажу, как установить Redmine 2.3 в CentOS 6.4. В качестве бэкенда будем использовать PostgreSQL (совсем не потому, что PostgreSQL лучше чем MySQL и даже не потому, что будущее MySQL несколько туманно в связи с приобретением MySQL Oracle, а просто потому, что последнее время я работаю только с PostgreSQL, поэтому лично для меня PostgreSQL ближе и роднее, вы же конечно можете использовать другой бэкенд, например MySQL).

Я предполагаю, что у вас уже установлен CentOS, в этой заметке я не останавливаюсь на настройке CentOS. Как установить последнюю версию PostgreSQL на CentOS вы можете узнать здесь

Данная заметка является модификацией статьи в которой я рассказываю как устанавливать redmine на ubuntu (кстати, там как раз, описывается установка совместно c mysql).

Подготавливаем структуру каталогов, создаем системного пользователя


$ sudo mkdir -p /opt
$ cd /opt
$ sudo svn co http://svn.redmine.org/redmine/branches/2.3-stable redmine-2.3
$ sudo adduser --system -d /opt/redmine-2.3/ redmine
$ sudo chown -R root.root /opt/redmine-2.3/
$ cd redmine-2.3
$ sudo mkdir -p tmp tmp/pdf public/plugin_assets
$ sudo chown -R redmine:redmine files log tmp public/plugin_assets
$ sudo chmod -R 755 files log tmp public/plugin_assets

Создаем базу данных:


$ createuser redmine
$ createdb redmine -O redmine
$ psql -q postgres
(ags@[local]:5432) [postgres] =# \l 
                                   Список баз данных
┌───────────┬──────────┬───────────┬─────────────┬─────────────┬───────────────────────┐
│    Имя    │ Владелец │ Кодировка │ LC_COLLATE  │  LC_CTYPE   │     Права доступа     │
├───────────┼──────────┼───────────┼─────────────┼─────────────┼───────────────────────┤
│ postgres  │ postgres │ UTF8      │ ru_RU.UTF-8 │ ru_RU.UTF-8 │                       │
redmine   │ redmine  │ UTF8      │ ru_RU.UTF-8 │ ru_RU.UTF-8 │                       │
│ template0 │ postgres │ UTF8      │ ru_RU.UTF-8 │ ru_RU.UTF-8 │ =c/postgres          ↵│
│           │          │           │             │             │ postgres=CTc/postgres │
│ template1 │ postgres │ UTF8      │ ru_RU.UTF-8 │ ru_RU.UTF-8 │ =c/postgres          ↵│
│           │          │           │             │             │ postgres=CTc/postgres │
└───────────┴──────────┴───────────┴─────────────┴─────────────┴───────────────────────┘
(4 строки)

Добавляем строку в /var/lib/pgsql/9.2/data/pg_hba.conf и перегружаем postgresql

...
host    redmine         redmine         127.0.0.1/32            trust
host    all             all             127.0.0.1/32            ident
...

$ service postgresql-9.2 restart

# Проверяем, что пользователь remine в postgresql настроен корректно.

$ psql redmine -U redmine -h 127.0.0.1 -c 'select version();'
                                                   version                                                    
--------------------------------------------------------------------------------------------------------------
 PostgreSQL 9.2.4 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-3), 64-bit
(1 строка)

Устанавливаем библиотеки ruby


$ sudo yum install ruby
$ sudo yum install gcc g++ make automake autoconf curl-devel openssl-devel zlib-devel httpd-devel apr-devel apr-util-devel sqlite-devel
$ sudo yum install ruby-rdoc ruby-devel
$ sudo yum install rubygems
$ sudo yum install ruby-RMagick

$ sudo yum install postgresql92-devel
$ sudo yum install ImageMagick-devel

$ sudo gem update
$ sudo gem update --system

# Установка rails занимает немало времени, ждите.
$ sudo gem install rails
$ sudo gem install bundler

Создайте файл /opt/redmine-2.3/config/database.yml со следующим содержимым:

# Пароль может быть любым в нашей конфигурации, ведь ранее мы 
# разрешили трастовое соединение с базой PostgreSQL
production:
  adapter: postgresql
  database: redmine
  host: 127.0.0.1
  username: redmine
  password: "redmine"

Устанавливаем дополнительные бибилиотеки при помощи bundle. Обратите внимание, если вы устанавливали PostgreSQL так как я описывал ранее, то вы должны явно указать путь до каталога с исполняемыми файлами PostgreSQL, т.к. по умолчанию дистрибуитв устанавливается в нестандартное место.

$ cd /opt/redmine-2.3/
PATH=/usr/pgsql-9.2/bin:$PATH bundle install --without development test mysql2

Не забываем выполнить:

rake generate_secret_token

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

RAILS_ENV=production rake db:migrate
RAILS_ENV=production REDMINE_LANG=ru rake redmine:load_default_data

Проверяем работоспособность redmine:

$ su -c 'ruby script/rails server webrick -e production' redmine

По умолчанию будет поднят сервер на порту 3000, чтобы изменить порт укажите параметр -p.

Что еще осталось сделать?


1. Отредактируйте configuration.yml согласно вашим потребностям (мне потребовалось лишь указать, что я использую способ доставки sendmail)

$ cd /opt/redmine-2.3/config/
$ sudo cp configuration.yml.example configuration.yml

production:
    email_delivery:
        delivery_method: :sendmail

2. Настройте фронтенд в виде nginx

Создайте файл /etc/yum.repos.d/nginx.repo с содержимым

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

Установите nginx

$ sudo yum install nginx

И отредактируйте /etc/nginx/conf.d/default.conf 

upstream mongrel {
# remine запущен на 8103
server 127.0.0.1:8103;

}
server {
    listen       80;
    server_name  localhost;

    location / {
        proxy_pass http://mongrel;
        proxy_set_header Host $http_host;

    }
}

3. Настроить автостарт

/etc/rc.local
(cd /opt/redmine-2.3/ && su -c 'ruby script/rails server webrick -e production -p 8103 -d' redmine)

Поздравляю, Redmine установлен. Не забудьте изменить пароль у пользователя admin.

5 комментариев:

  1. При установке возникает ошибка. Не подскажите в чем дело?

    [root@voip-lab redmine-2.3]# sudo gem install rails

    Fetching: i18n-0.6.5.gem (100%)
    Successfully installed i18n-0.6.5
    Fetching: multi_json-1.8.2.gem (100%)
    Successfully installed multi_json-1.8.2
    Fetching: tzinfo-0.3.38.gem (100%)
    Successfully installed tzinfo-0.3.38
    Fetching: minitest-4.7.5.gem (100%)
    Successfully installed minitest-4.7.5
    Fetching: atomic-1.1.14.gem (100%)
    Building native extensions. This could take a while...
    Successfully installed atomic-1.1.14
    Fetching: thread_safe-0.1.3.gem (100%)
    Successfully installed thread_safe-0.1.3
    Fetching: activesupport-4.0.0.gem (100%)
    ERROR: Error installing rails:
    activesupport requires Ruby version >= 1.9.3.

    ОтветитьУдалить
    Ответы
    1. Я, к сожалению, не большой специалист по руби. Но то, что вижу в вашем логе, позволяет мне судить лишь о том, что activesupport теперь работает с версией ruby 1.9.3 или более, а у вас видимо меньшая. Поэтому обновляйте руби и повторяйте установку повторно.

      Удалить
    2. Для установки свеженького руби на центос воспользуйтесь вот этим мануалом: http://tecadmin.net/install-ruby-1-9-3-or-multiple-ruby-verson-on-centos-6-3-using-rvm/ он вполне рабочий.

      Удалить
  2. Спасибо за статью, думаю она многим поможет. Хочу поделиться RMClient для тех, кто планирует проекты с помощью Redmine. Мы разработали таймер для учета времени в системе Redmine, он доступен для скачивания после короткой регистрации. Будем очень признательны за его использование и помощь в тестировании.

    ОтветитьУдалить
  3. Дякую за статтю! Все працює, всі довольні:)

    ОтветитьУдалить