Поддержка

Мы успешно прошли плановую проверку Роскомнадзора!
05 Май 2012

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

Наш конкурс: талисманы и приметы Интернет-гуру
17 Апр 2012

Ни одна профессия не обходится без своих суеверий – талисманов и примет. Расскажите нам о своих талисманах и профессиональных приметах и получите настоящий шаманский бубен в качестве приза! Подробности и условия конкурса — в тексте новости.


 

Все новости
RSS RSS

Екатеринбург:

253-55-00

Для регионов России:

8-800-2000-699

Проверить домен:

пример: netangels.ru или 91.201.52.1
Главная > Тех.поддержка > VDS HowTo. Руководства по использованию > Установка и запуск системы управления проектами Redmine

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

В этой статье мы опишем способ установки и запуска системы управления проектами Redmine на виртуальном выделенном сервере с тарифным планом VDS-128. В качестве веб-сервера мы будем использовать nginx.

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

Итак, мы первый раз зашли по 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;
  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

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


Теги:  nginx  redmine  ruby  thin  vds 

Связанные статьи