Провозившись неделю в попытках настроить мою любимую систему управления задачами на своем крошечном(тариф 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
portsnap fetch portsnap extract #если порты вообще не установлены portsnap update #если порты установлены, но требуют обновленияТеперь можем начинать установку:
cd /usr/ports/ports-mgmt/portmaster && make install cleanПосле этого мы можем установить сам Redmine:
portmaster /usr/ports/www/redmineСамое главное выбрать нужные нам опции сборки, веб сервер Apache/nginx и базу данных MySQL.
Обратите внимание на опции сборки модуля 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) и проверяем что все работает. Если правильно, то настроим работу в обход встроенного сервера.
Настройка Apache
[include id="4" title=""]
В данном разделе будем настраивать 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.
Если, что то не получилось, то можно обратиться к официальной документации по установке.
Если статья была Вам полезна, то буду благодарен за клик по рекламе.