Установка и запуск системы управления проектами Redmine

» Главная  » Поддержка » VDS HowTo » Установка и запуск системы управления проектами Redmine

Подготовительный этап

Итак, мы первый раз зашли по SSH на свежеразвёрнутый сервер с Debian Lenny (стабильный на момент написания статьи релиз). Посмотрим, что у нас запущено:

uXXXXX:~# ps fax
PID TTY STAT TIME COMMAND
1 ? Ss 0:00 init [2]
341 ? Ss 0:00 /sbin/syslogd
362 ? Ss 0:00 /usr/sbin/sshd
673 ? Ss 0:00 \_ sshd: root@pts/1
675 pts/1 Ss 0:00 \_ -bash
682 pts/1 R+ 0:00 \_ ps fax
585 ? Ss 0:00 /usr/sbin/xinetd -pidfile /var/run/xinetd.pid -stayalive -inetd_compat -inetd_ipv6
607 ? Ss 0:00 sendmail: MTA: accepting connections
633 ? Ss 0:00 /usr/sbin/cron
642 ? Ss 0:00 /usr/sbin/apache2 -k start
643 ? S 0:00 \_ /usr/sbin/apache2 -k start

Запущено немного, это хорошо -- ресурсов у нас немного, будем расходовать их с умом. Избавимся от толстого apache и бесполезного xinetd:

uXXXXX:~# apt-get --purge --yes remove apache2 xinetd

Обновим списки доступных пакетов с разнообразным программным обеспечением:

uXXXXX:~# apt-get update

Установим удобный и простой в использовании текстовый редактор nano, впоследствии он понадобится нам для редактирования различных конфигурационных файлов:

uXXXXX:~# apt-get install nano

Настройка пакетного менеджера

Сейчас мы используем одну хитрость: пропишем в качестве доступных репозиториев не только доступные для текущей стабильной версии дистрибутива, но и для тестовой и экспериментальной ветки -- где содержатся более новые версии программного обеспечения (хотя и менее протестированные). Делаем мы это для того, чтобы у нас была возможность корректной установки redmine средствами самой операционной системы, а также для установки более свежей версии веб-сервера nginx. Для этого откроем файл /etc/apt/sources.list в только что установленном редакторе nano:

uXXXXX:~# nano /etc/apt/sources.list

Каждый дистрибутив Debian носит своё кодовое имя, на текущий момент имена для разных веток дистрибутива такие:

  • lenny - стабильная ветка (stable);
  • squeeze - тестовая ветки (testing);
  • sid - нестабильная ветка (unstable).

Так, нам необходимо добавить две строки с указанием репозиториев для тестовой (squeeze) и нестабильной (sid) ветки. Строки будут выглядеть аналогично самой первой строке, необходимо лишь заменить название ветки дистрибутива:

deb http://ftp.de.debian.org/debian squeeze main contrib non-free
deb http://ftp.de.debian.org/debian sid main contrib non-free

Выйдем из текстового редактора, использовав сочетание Ctrl-X, утвердительно ответив на вопрос о сохранении изменений.

Сейчас у нас указаны репозитории для всех веток дистрибутива -- какая же из них будет реально использована для установки программ? По умолчанию используется будут использованы самые новые доступные версии программ, что не всегда удобно (самые новые всегда содержатся в нестабильной ветке -- но она на то и нестабильная, чтобы использовать её с осторожностью). Хорошим правилом считается использование стабильной ветки дистрибутива, устанавливая из тестовой или нестабильной ветки только отдельные пакеты, новые версии которых содержат новый необходимый функционал, или же если эти пакеты вовсе отсутствуют в стабильной ветке (так бывает с пакетами, которые только созданы).

Создадим файл /etc/apt/apt.conf.d/01default-release:

uXXXXX:~# nano /etc/apt/apt.conf.d/01default-release

и добавим в него следующую строку:

APT::Default-Release "stable";

Этим самым мы говорим пакетному менеджеру, что он должен по умолчанию использовать для установки стабильную ветку дистрибутива, при необходимости установки версии программы из тестовой или нестабильной ветки, мы будем явным образом это указывать.

Обновим списки доступных пакетов, чтобы обновились данные для двух новых добавленных источников пакетов:

uXXXXX:~# apt-get update

Установка необходимых компонентов

На этом этапе всё готово для установки необходимых пакетов из репозитория тестовой ветки:

uXXXXX:~# apt-get install --no-install-recommends -t squeeze redmine redmine-sqlite thin nginx

В процессе установки появится серое диалоговое окно на синем фоне с вопросом о необходимости создания новой базы данных для redmine, ответим на вопрос утвердительно. Следующий вопрос будет касаться типа базы -- выберем sqlite3, как самый нетребовательный к ресурсам.

Конфигурирование

Для запуска redmine в виде FastCGI-приложения будем использовать thin -- простой веб-сервер на Ruby. Используя nano, создадим файл /etc/thin/redmine.yml со следующим содержимым:

pid: /tmp/thin.pid
timeout: 30
log: /var/log/nginx/thin.log
max_conns: 1024
require: []

environment: production
max_persistent_conns: 512
no-epoll: true
servers: 1
daemonize: true
socket: /tmp/redmine.sock
chdir: /usr/share/redmine/
user: www-data
group: www-data

Теперь подготовим файл с конфигурацией веб-сервера nginx: создадим привычным способом файл /etc/nginx/sites-available/redmine такого вида:

upstream thin 
{
server unix:/tmp/redmine.0.sock;
}

server
{
listen 80;
server_name redmine.site.ru;
root /usr/share/redmine/public/;
access_log /var/log/nginx/redmine.access.log;
error_log /var/log/nginx/redmine.error.log;

location /
{
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

if (-f $request_filename)
{
break;
}

if (!-f $request_filename)
{
proxy_pass http://thin;
break;
}
}

error_page 500 502 503 504 /500.html;
error_page 404 403 /404.html;
}

Создадим симлинк на этот конфигурационный файл в каталоге, где nginx ищет конфигурационные файлы для включенных сайтов:

uXXXXX:~# ln -s /etc/nginx/sites-available/redmine /etc/nginx/sites-enabled/

Запуск

Вот и всё -- сейчас мы полностью готовы к запуску. Запускаем FastCGI-сервер и веб-сервер:

uXXXXX:~# /etc/init.d/thin start
uXXXXX:~# /etc/init.d/nginx start

Можно проверять -- установленный redmine должен быть доступен через веб.

Посмотрим, какие процессы запущены у нас после запуска:

uXXXXX:~# ps faux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.6 1976 684 ? Ss Dec05 0:00 init [2]
root 341 0.0 0.6 1688 620 ? Ss Dec05 0:00 /sbin/syslogd
root 362 0.0 1.0 5308 1052 ? Ss Dec05 0:00 /usr/sbin/sshd
root 673 0.0 2.9 8368 2892 ? Ss Dec05 0:01 \_ sshd: root@pts/1
root 675 0.0 1.6 2836 1652 pts/1 Ss Dec05 0:01 \_ -bash
root 2668 0.0 0.8 2288 860 pts/1 R+ 00:09 0:00 \_ ps faux
root 607 0.0 1.6 8164 1612 ? Ss Dec05 0:00 sendmail: MTA: accepting connections
root 633 0.0 0.8 2032 876 ? Ss Dec05 0:00 /usr/sbin/cron
www-data 2626 0.8 46.8 58644 46044 ? S 00:01 0:04 thin server (/tmp/redmine.0.sock)
root 2665 0.0 0.6 4604 648 ? Ss 00:05 0:00 nginx: master process /usr/sbin/nginx
www-data 2666 0.0 1.4 4924 1436 ? S 00:05 0:00 \_ nginx: worker process

Проверим, сколько памяти было потрачено:

uXXXXX:~# free -m
total used free shared buffers cached
Mem: 128 64 64 0 0 0
-/+ buffers/cache: 64 64
Swap: 128 0 128

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

Способы оплаты
Способы оплаты
Яндекс.Метрика