Недавно мне поставили задачу развернуть бесплатную CRM с веб-интерфейсом. После недолгих поисков в интернете я наткнулся на Fat Free Crm. На сайте я не нашел инструкций по установке и поэтому ставил по наитию. Надеюсь, что мой опыт по установке поможет кому-нибудь.
UPD Дополнено на основании комментариев.
Моя инсталляция была на ОС Gentoo Linux, но не думаю, что будут сложности с повтором на других ОС.
Итак, приступим.
Считаем, что сам Ruby on Rails у нас уже установлен. Вот версии пакетов, на которых я развернул приложение:
Качаем исходные коды отсюда, распаковываем на сервере в каталог с сайтами. Например, в /var/www/crm.example.com/htdocs/.
Перейдем в этот каталог:
Создадим базу MySQL:
MYSQL_USER ваш пользователь MySQL для работы с базой
MYSQL_PASSWORD пароль пользователя MYSQL_USER
PASSWORD пароль пользователя fat_free_crm
Теперь создадим файл с конфигурацией подключения к БД:
config/database.yml:
В файле config/database.mysql.yml есть примеры, которые помогут адаптировать конфигурационный файл под ваши нужды, например, подключиться к БД через сокет.
В файле config/environment.rb закомментируйте строчку
чтобы приложение использовало последнюю установленную в системе версию Rails.
Далее в файле public/dispatch.cgi нужно строчку
заменить на
Суть в том, чтобы указать в файле полный путь до диспетчера Rails.
Теперь развернем схему БД:
Осталась сущая мелочь: настроить apache для работы с этим прекрасным приложением.
Зададим права на файлы:
Вместо apache:apache нужно вписать пользователя: группу, от имени которых вы хотите запускать приложение.
Теперь настроим виртуальный хост.
/etc/apache2/vhosts.d/crm_example_com.conf:
Финальный аккорд:
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