Установка Fat Free Crm на Apache+Phusion Passenger

    Недавно мне поставили задачу развернуть бесплатную CRM с веб-интерфейсом. После недолгих поисков в интернете я наткнулся на Fat Free Crm. На сайте я не нашел инструкций по установке и поэтому ставил по наитию. Надеюсь, что мой опыт по установке поможет кому-нибудь.
    UPD Дополнено на основании комментариев.

    Преамбула



    Моя инсталляция была на ОС Gentoo Linux, но не думаю, что будут сложности с повтором на других ОС.
    Итак, приступим.
    Считаем, что сам Ruby on Rails у нас уже установлен. Вот версии пакетов, на которых я развернул приложение:

    # emerge ruby rubygems rails rack passenger -p
    
    These are the packages that would be merged, in order:
    
    Calculating dependencies... done!
    [ebuild   R   ] dev-lang/ruby-1.8.6_p369 
    [ebuild   R   ] dev-ruby/rubygems-1.3.5 
    [ebuild   R   ] dev-ruby/rack-1.0.0 
    [ebuild   R   ] dev-ruby/rails-2.3.4 
    [ebuild   R   ] www-apache/passenger-2.2.4
    


    Установка и настройка CRM



    Качаем исходные коды отсюда, распаковываем на сервере в каталог с сайтами. Например, в /var/www/crm.example.com/htdocs/.

    Перейдем в этот каталог:
    # cd /var/www/crm.example.com/htdocs/


    Создадим базу MySQL:
    # mysql -uMYSQL_USER -pMYSQL_PASSWORD
    >create database fat_free_crm;
    >grant all privileges on fat_free_crm.* to 'fat_free_crm'@'localhost' identified by 'PASSWORD';
    >flush privileges;
    >quit
    


    MYSQL_USER ваш пользователь MySQL для работы с базой
    MYSQL_PASSWORD пароль пользователя MYSQL_USER
    PASSWORD пароль пользователя fat_free_crm

    Теперь создадим файл с конфигурацией подключения к БД:

    config/database.yml:
    production:
      adapter: mysql
      encoding: utf8
      database: fat_free_crm
      host: localhost
      username: fat_free_crm
      password: PASSWORD
    


    В файле config/database.mysql.yml есть примеры, которые помогут адаптировать конфигурационный файл под ваши нужды, например, подключиться к БД через сокет.

    В файле config/environment.rb закомментируйте строчку
    RAILS_GEM_VERSION = '2.3.2' unless defined? RAILS_GEM_VERSION

    чтобы приложение использовало последнюю установленную в системе версию Rails.

    Далее в файле public/dispatch.cgi нужно строчку
    require "dispatcher"
    

    заменить на
    require "/usr/lib64/ruby/gems/1.8/gems/rails-2.3.4/lib/dispatcher.rb"
    


    Суть в том, чтобы указать в файле полный путь до диспетчера Rails.

    Теперь развернем схему БД:

    # RAILS_ENV=production rake crm:setup
    


    Настройка веб-сервера



    Осталась сущая мелочь: настроить apache для работы с этим прекрасным приложением.
    Зададим права на файлы:

    # chown -R apache:apache *
    


    Вместо apache:apache нужно вписать пользователя: группу, от имени которых вы хотите запускать приложение.

    Теперь настроим виртуальный хост.

    /etc/apache2/vhosts.d/crm_example_com.conf:
    <VirtualHost *:80>
            ServerName crm.example.com
            ServerAdmin dadmin@example.com
            ErrorLog /var/www/crm.example.com/error/error_log
            CustomLog /var/www/crm.example.com/error/access_log combined
            DocumentRoot /var/www/crm.example.com/htdocs/public
            <Directory /var/www/crm.example.com/htdocs/public>
                    Options Indexes ExecCGI FollowSymLinks
                    RailsEnv production #Эта строчка опциональна, для обычной установки не нужна
                    AllowOverride all
                    Allow from all
                    Order allow,deny
            </Directory>
    </VirtualHost>
    


    Финальный аккорд:

    # /etc/init.d/apache2 reload
    
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 15

      +1
      Можно создать отдельного пользователя для запуска приложения (passenger запускает приложение под владельцем config/environment.rb).
      Строка «RailsEnv production» не обязательна, так как это значение по-умолчанию.
        0
        Верно, спасибо за дополнения!
        0
        Для создание баз данных можно выполнить rake db:create:all или так rake db:create RAILS_ENV=production, при условие что уже есть файл database.yml.
          0
          А почему вместо указания полного пути к диспетчеру Rails просто не указать нужную версию Rails?
            0
            На любителя. В идеале путь к диспетчеру должен быть постоянным, а не таким, как я указал.
            Типа, при обновлении rails обновлять симлинк /usr/lib64/ruby/gems/1.8/gems/rails (путь может отличаться в различных дистрибах). Тогда указание полного пути к диспетчеру избавит вас от необходимости менять версию rails в конфиге.
              0
              То есть будет всегда использоваться последняя версия rails?
                0
                Да
                  0
                  По моему этой глупый совет — система требует версию rails 2.3.2, а вы ей подсовываете последнюю версию. :-/
            0
            за статью спасибо, узнал про Fat Free CRM

            вписал в database.yml базу sqlite3

            выполняю

            rake crm:setup
            получаю
            (in /Users/igorevsukov/Development/fat_free_crm)
            rake aborted!
            /Users/igorevsukov/Development/fat_free_crm/lib/tasks/fat_free_crm.rake:101: Invalid retry


            не подскажете как бороться?
              0
              смотрите в логах. У вас они должны быть тут: /Users/igorevsukov/Development/fat_free_crm/log. Это может быть вообще баг какой-то конкретной версии, еще можете попробовать обновиться/откатиться.
                0
                Когда был вопрос «Continue [yes/no/exit]: », что вы выбрали?
                  0
                  Yes
                    0
                    Странно потому что 101 строчка это вариант no. Возможно в той версии что вы скачали есть отличия, потому что я только что для теста взял последнюю версию исходных кодов и у меня все запустилось.
                    0
                    такой вопрос не выводился, сразу «rake aborted!» и все
                      0
                      Ну тогда смотрите логи или опишите подробнее как и что вы делали.

                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                Самое читаемое