Установка приложения Redmine

Руководство по установке приложения Redmine 2.1 на виртуальном хостинге.

Установка приложения Redmine на виртуальном хостинге доступна на тарифных планах с поддержкой полного ssh доступа (Профи + ssh, Плюс, VIP).

  1. Выполняем вход по ssh на свою площадку на нашем хостинге.
    Создаем директорию вне корневой директории сайта, к примеру /private
    mkdir private
    Перемещаемся в каталог private
    cd ./private
    Приложение Redmine лучше разворачивать в защищённый каталог private, т.к. в случае установки в каталог httpdocs злоумышленники могут легко получить доступ к персональной информации, например, узнать пароль к базе данных.
  2. Скачиваем последнюю стабильную версию Redmine, в данном примере рассматривается версия 3.0.
    svn co http://svn.redmine.org/redmine/branches/3.3-stable redmine
  3. Определите переменные окружения, необходимые для установки собственных гемов и комфортной работы с ruby, для этого в консоле выполните:

    export GEM_HOME="$HOME/private/mygems"
    export PATH="$HOME/private/mygems/bin:$PATH"
  4. В рабочем каталоге ~/httpdocs создаем два файла, .htaccess (права 644):
    RewriteEngine On
    Options +FollowSymLinks +ExecCGI
    
    RewriteCond %{REQUEST_FILENAME} !-f
    
    <IfModule mod_fcgid.c>
        AddHandler fcgid-script .fcgi
        RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
    </IfModule>
    и dispatch.fcgi (права 700):
    #!/ПУТЬ_К_RVM/ruby 
    ENV['GEM_HOME']="/var/www/ЛОГИН_УСЛУГИ/private/mygems"
    require File.dirname(__FILE__) + '/../private/myproject/config/boot'
    require File.dirname(__FILE__) + '/../private/myproject/config/environment'
    class Rack::PathInfoRewriter
      def initialize(app)
        @app = app
      end
    
      def call(env)
        env.delete('SCRIPT_NAME')
        parts = env['REQUEST_URI'].split('?')
        env['PATH_INFO'] = parts[0]
        env['QUERY_STRING'] = parts[1].to_s
        @app.call(env)
      end
    end
    Rack::Handler::FastCGI.run Rack::PathInfoRewriter.new(RedmineApp::Application)
    где ИМЯ_ВЕБ-ПРОСТРАНСТВА - это имя площадки на которой расположен сайт, а myproject - имя проекта, которое в данном примере мы назначили еще в пункте 2.
  5. В панели управления создаём базу данных и пользователя к ней. В данном примере мы создали:
    БД: komtet_redmine
    пользователь БД: komtet_user
    пароль к БД: komtetredmine
  6. Переходим в каталог содержащий настройки проекта, в нашем случае 
    ~/private/myproject/config
    и создаём файл с настройками подключения к базе данных - database.yml, за основу можно взять файл примера находящийся в этом же каталоге - database.yml.example, в данном примере используется подключение к БД MySQL:
    # MySQL (default setup).
    production:
      adapter: mysql
      database: komtet_redmine
      host: IP сервера размещения базы данных
      username: komtet_user
      password: komtetredmine
      encoding: utf8
    
    development:
      adapter: mysql
      database: komtet_redmine
      host: IP сервера размещения базы данных
      username: komtet_user
      password: komtet_redmine
      encoding: utf8
  7. Переходим в каталог нашего проекта, в данном случае ~/private/myproject
  8. В консоли выполняем:
    gem install bundler
  9. Теперь устанавливаем redmine со всеми зависимостями:
    ~/private/mygems/bin/bundle install --without development test rmagick
  10. Генерируем ключ для безопасного хранения сессий:
    ~/private/mygems/bin/rake generate_secret_token
  11. Создаем структуру нашей БД:
    ~/private/mygems/bin/rake db:migrate RAILS_ENV="production"
  12. Заполняем БД тестовыми данными:
    ~/private/mygems/bin/rake redmine:load_default_data RAILS_ENV="production"
  13. Копируем содержимое каталога ~/private/myproject/public в каталог ~/httpdocs.

    Если все вышеуказанные действия выполнены верно, обратившись к сайту получаем рабочее приложение Redmine, учётные данные для входа в интерфейс администратора по умолчанию admin:admin.

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