Установка Redmine на FreeBSD

RedmineПровозившись неделю в попытках настроить мою любимую систему управления задачами на своем крошечном(тариф VDS-Старт) VDS от FirstVDS и перечитав кучу разных инструкции решил написать свою. Главный недостаток всех обнаруженных мной материалов было отсутствие нормального описания приводимых команд из за чего не возможно было понять что же делать если что то не работает. Все это усугублялось большим количеством вариантов установки. Я постараюсь подробно описать процесс установки. Давайте вначале определимся что и куда мы хотим установить. Имеется система FreeBSD со стандартным веб пакетом Apache(или nginx), PHP и MySQL. В моем случае версии были FreeBSD 9.2, Apache 2.2.26, nginx-1.4.5, MySQL 5.5.36. Чтобы запустить написанный на Ruby Redmine необходимо установить специальный софт который сможет запустить Ruby скрипты на нашем веб сервере.

Запустить Redmine в нашем случае можно следующими способами:

  • встроенный веб сервер webrick (на 3000 порту). Мы его опробуем, но решение весьма не стабильно и сервер часто падает
  • Apache + FastCGI
  • Apache + passenger
  • nginx + passenger

Есть еще несколько вариантов запуска, но они либо сильно устарели либо не очень мне понравились как PHP программисту =) (веб сервер Thin, Apache+mod_ruby, Mongrel)

Установка Redmine в FreeBSD элементарна, однако, поскольку за самим редмайном тянется большое количество зависимостей (на моей чистой системе их было 84), я рекомендую поставить специальное приложение, которое пробежится по всем зависимостям сразу и выдаст диалоги конфигурации перед началом установки, а не перед сборкой каждого порта. Но для начала обновим(или скачаем) сами порты:

 portsnap fetch
 portsnap extract #если порты вообще не установлены
 portsnap update #если порты установлены, но требуют обновления

Теперь можем начинать установку:

cd /usr/ports/ports-mgmt/portmaster && make install clean

После этого мы можем установить сам Redmine:

portmaster /usr/ports/www/redmine

Самое главное выбрать нужные нам опции сборки, веб сервер Apache/nginx и базу данных MySQL.

Конфигурация Redmine

Обратите внимание на опции сборки модуля passenger, необходимо выбрать используемый нами веб сервер.

Конфигурация Passenger

После установки файлы Redmine лежат в папке /usr/local/www/redmine. Создадим базу данных и пользователя для неё:

mysql -p
Enter password: вводим пароль от пользователя root в БД
CREATE DATABASE redmine CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES on redmine.* to redmine@localhost identified by 'PASSWORD';

Создадим конфигурационный файл и заполним его

cd /usr/local/www/redmine
cp config/database.yml.example config/database.yml
production:
  adapter: mysql
  database: redmine
  host: localhost
  username: redmine
  password: PASSWORD
  encoding: utf8

Остальные части файла закомментируем. Далее подготовим Redmine к запуску и заполним пустую БД данными. По просьбе выбрать язык, сделаем это.

rake rake generate_secret_token
rake db:migrate RAILS_ENV=production
rake redmine:load_default_data RAILS_ENV=production

Подготавливаем файлы и раздаем права:

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

После всех этих действий мы можем проверить работу Redmine с помощью встроенного сервера:

ruby script/rails server webrick -e production

Входим по адресу нашего сервера и порту 3000(например, http://localhost:3000) и проверяем что все работает. Если правильно, то настроим работу в обход встроенного сервера.

Redmine

Настройка Apache

В данном разделе будем настраивать Apache+passenger.

Добавим поддержку модуля passenger в наш конфигурационный файл Apache, для этого после последнего LoadModule вводим следующие данные:

LoadModule passenger_module /usr/local/lib/ruby/gems/1.9/gems/passenger-4.0.35/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /usr/local/lib/ruby/gems/1.9/gems/passenger-4.0.35 
PassengerRuby /usr/local/bin/ruby19 
# от имени какого пользователя запускать passenger 
PassengerDefaultUser www 
# ограничивают количество процессов/ресурсов потребляемых passenger`ом 
PassengerMaxPoolSize 1 
PassengerMaxInstancesPerApp 1 
# время простоя до выгрузки из памяти. по умолчанию 300 секунд 
PassengerPoolIdleTime 43200
</IfModule>

Отлично, теперь веб сервер настроен на работу с Ruby. Создадим виртуальный хост для Redmine

<VirtualHost *:80>
ServerName redmine.yourhost.com 
ServerAdmin administrator@yourhost.com 
DocumentRoot /usr/local/www/redmine/public 
<Directory "/usr/local/www/redmine/public"> 
Order allow,deny 
Allow from all 
AllowOverride all 
Options -Indexes +FollowSymLinks +ExecCGI -MultiViews
</Directory>
</VirtualHost>

Чтобы доступ в Redmine был не в формате «http://redmine.yourhost.com/», а например «http://yourhost.com/redmine» – меняем настройки виртуального хоста:

Alias /redmine /usr/local/www/redmine/public
<Location /redmine>
PassengerBaseURI /redmine
PassengerAppRoot /usr/local/www/redmine
</Location>
<Directory "/usr/local/www/redmine/public">
Order allow,deny
Allow from all
AllowOverride all
Options -Indexes +FollowSymLinks +ExecCGI -MultiViews
</Directory>

Вот и все, перезагружаем Apache и сервер готов к работе. Про настройку Apache+FastCGI можно почитать в официальной статье или в этой статье. Еще полезная ссылка — документация на Passenger.

Настройка Nginx

Настройка nginx тоже довольно проста, просто записываем в конфигурационный файл

http {
   ...
   passenger_root /usr/local/lib/ruby/gems/1.9/gems/passenger-4.0.35;
   passenger_ruby /usr/local/bin/ruby19;
   passenger_user www;
   passenger_group www;

   server {
        listen       80;
        ...

        location / {
            root   /usr/local/www/redmine/public;
            passenger_enabled on;
        }
   ...
}

Полезная ссылка по настройке nginx.

Если, что то не получилось, то можно обратиться к официальной документации по установке.

Если статья была Вам полезна, то буду благодарен за клик по рекламе.

Запись опубликована в рубрике FreeBSD, Администрирование, Веб разработка с метками , , . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *