Как установить OroCRM на Ubuntu 16.04

OroCRM - это бесплатное приложение с открытым исходным кодом для управления взаимоотношениями с клиентами (CRM), созданное на основе OroPlatform. OroPlatform - это полностью настраиваемое программное обеспечение платформы бизнес-приложений с открытым исходным кодом. OroPlatform предоставляет вам все функции, необходимые для создания настраиваемого приложения. OroCRM построен с использованием фреймворка PHP Symfony и хранит свои данные на сервере базы данных MySQL / MariaDB. Это готовое к использованию приложение CRM, предоставляющее множество функций. Он также интегрируется со многими сторонними приложениями, такими как Magento Store, MailChimp, Zendesk и многими другими. Он многоязычен и имеет полностью отзывчивый пользовательский интерфейс, который дает вам возможность управлять им также с помощью мобильных устройств.

Предпосылки

В этом уроке мы будем использовать crm.example.comимя домена, указывающее на сервер. Замените все вхождения crm.example.comс вашим фактическим доменным именем.

Обновите свою базовую систему, используя руководство Как обновить Ubuntu 16.04 . После обновления системы перейдите к установке необходимых зависимостей.

Установите Nginx и PHP 7

OroCRM может быть установлен на любом рабочем веб-сервере, поддерживающем PHP. OroCRM поддерживает все версии PHP более 7.0. В этом уроке мы будем использовать Nginx с PHP-FPM и PHP 7.1.

Установите Nginx.

sudo apt -y install nginx

Запустите Nginx и включите его для автоматического запуска при загрузке.

sudo systemctl start nginx
sudo systemctl enable nginx

PHP 7.1 недоступен в aptрепозитории по умолчанию . Сначала добавьте PPA-репозиторий для PHP.

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php

Установите PHP 7.1 вместе с модулями PHP, необходимыми для OroCRM.

sudo apt update
sudo apt -y install php7.1 php7.1-fpm php7.1-common php7.1-curl php7.1-gd php7.1-intl php7.1-json php7.1-mbstring php7.1-mcrypt php7.1-mysql php7.1-xml php7.1-xml php7.1-zip php7.1-tidy php7.1-soap php7.1-opcache

Отредактируйте загруженный файл конфигурации PHP.

sudo nano /etc/php/7.1/cli/php.ini

Найдите следующие строки. Раскомментируйте и внесите изменения, как показано.

date.timezone = Asia/Kolkata
;Replace "Asia/Kolkata" with your appropriate timezone

cgi.fix_pathinfo=0

Запустите PHP-FPM и включите его при загрузке.

sudo systemctl start php7.1-fpm
sudo systemctl enable php7.1-fpm

Установить MariaDB

MariaDB - это форк MySQL с открытым исходным кодом. Добавьте репозиторий MariaDB 10.2.

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://kartolo.sby.datautama.net.id/mariadb/repo/10.2/ubuntu xenial main'

Установите MariaDB.

sudo apt -y update
sudo apt -y install mariadb-server

Запустите MariaDB и включите его для автоматического запуска при загрузке.

sudo systemctl start mariadb
sudo systemctl enable mariadb

Создать базу данных для OroCRM

Войдите в оболочку MySQL от имени пользователя root, запустив.

mysql -u root -p

Укажите пароль для пользователя root MariaDB для входа.

Выполните следующие запросы, чтобы создать базу данных и пользователя базы данных для установки OroCRM.

CREATE DATABASE oro_data;
CREATE USER 'oro_user'@'localhost' IDENTIFIED BY 'StrongPassword';
GRANT ALL PRIVILEGES ON oro_data.* TO 'oro_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Вы можете заменить имя базы данных oro_dataи имя пользователя oro_userпо вашему выбору. Обязательно смените StrongPasswordна очень надежный пароль.

Установите Node.js и Composer

Для OroCRM также требуется среда выполнения JavaScript Node.js. Node.js будет использоваться OroCRM для компиляции JavaScript, который используется для создания пользовательского интерфейса приложения. Стандартный репозиторий Ubuntu содержит устаревшую версию Node.js, поэтому вам необходимо добавить репозиторий Nodesource в вашу систему, чтобы получить последнюю версию.

sudo curl --silent --location https://deb.nodesource.com/setup_8.x | sudo bash -

Установите Node.js и Git.

sudo apt -y install nodejs git

Git будет использоваться для клонирования репозитория OroCRM из Интернета. Вам также нужно будет установить Composer. Composer - инструмент управления зависимостями для приложений PHP. Поскольку OroCRM написан на платформе Symfony, вам понадобится Composer для установки зависимостей и приложения.

Установите Composer.

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php

Переместите Composer в /usr/binкаталог, чтобы он мог выполняться из любой точки системы.

sudo mv composer.phar /usr/bin/composer

Предоставить разрешение на выполнение композитору.

sudo chmod +x /usr/bin/composer

Установить OroCRM

Есть много способов загрузить OroCRM на ваш сервер. Самый подходящий способ получить самую последнюю версию - это клонировать репозиторий через Git.

Клонируйте репозиторий OroCRM.

cd /usr/share/nginx/
sudo git clone -b 2.4 https://github.com/oroinc/crm-application.git orocrm

Скопируйте parametersфайл примера в файл по умолчанию, parametersиспользуемый OroCRM.

cd orocrm
sudo cp app/config/parameters.yml.dist  app/config/parameters.yml

Прежде чем вы сможете продолжить, вам необходимо обновить parameters.ymlфайл, чтобы предоставить базу данных и информацию электронной почты.

sudo nano app/config/parameters.yml

Найдите следующие строки.

database_driver:   pdo_mysql
database_host:     127.0.0.1
database_port:     ~
database_name:     oro_crm
database_user:     root
database_password: ~

Обновите вышеуказанную конфигурацию в соответствии с базой данных, которую вы создали для хранения данных OroCRM. В нашем случае это должно выглядеть так.

database_driver:   pdo_mysql
database_host:     127.0.0.1
database_port:     3306
database_name:     oro_data
database_user:     oro_user
database_password: StrongPassword

Если у вас есть готовый SMTP-сервер и вы хотите немедленно использовать функции отправки электронной почты, вы можете обновить настройки почтовой программы, как показано на рисунке.

mailer_transport:  smtp
mailer_host:       mail.example.com
mailer_port:       456
mailer_encryption: ssl
mailer_user:       [email protected]
mailer_password:   EMailPassword

Если у вас нет готового почтового сервера, вы можете пока пропустить его, оставив существующие значения. Вы всегда можете изменить конфигурацию электронной почты через панель инструментов.

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

secret:            uxvpXHhDxCFc9yU1hV1fMwjSoyVUzGh4WBMBBBa3XEgrRUF5OuB2h8iNl9JRDqcd

Вы можете создать случайную строку с помощью pwgenутилиты. Установить pwgen, запустив sudo apt -y install pwgen. Чтобы сгенерировать случайную строку, запустите pwgen -s 64 1.

Сохраните файл и выйдите из редактора. Установите необходимые зависимости PHP через composer.

sudo composer install --prefer-dist --no-dev

Использование --no-devгарантирует, что Composer устанавливает только зависимости, необходимые для запуска веб-сервера в производственном режиме. Сценарий займет несколько минут, чтобы загрузить и установить необходимые зависимости PHP.

Установите приложение.

sudo php app/console oro:install --env=prod

Это создаст веб-кеш и запишет базу данных. --env=prodПараметр предусмотрен для установки приложения в рабочем режиме. Установка будет продолжена, только если все необходимые зависимости установлены и настроены.

Во время установки вам будет задано несколько вопросов по настройке учетной записи администратора. Вопросы следующие.

Administration setup.
Application URL (http://localhost): http://crm.example.com
Organization name (OroCRM): My Org
Username (admin): admin
Email: [email protected]
First name: John
Last name: Doe
Password:
Load sample data (y/n): y

Предоставить информацию. Загрузите образец данных, чтобы оценить продукт, прежде чем использовать его для производства.

Разогрейте кеш документации API:

sudo php app/console oro:api:doc:cache:clear

Настройка Nginx, брандмауэра и разрешений

Создайте файл блока сервера Nginx для обслуживания приложения пользователям.

sudo nano /etc/nginx/sites-available/orocrm

Заполните файл.

server {
    server_name crm.example.com;
    root  /usr/share/nginx/orocrm/web;

    location / {
        # try to serve file directly, fallback to app.php
        try_files $uri /app.php$is_args$args;
    }

    location ~ ^/(app|app_dev|config|install)\.php(/|$) {
        fastcgi_pass unix:/run/php/php7.1-fpm.sock;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param HTTPS off;
    }

    # Enable Gzip compression
    gzip on;
    gzip_buffers 16 8k;
    gzip_comp_level 5;
    gzip_disable "msie6";
    gzip_min_length 1000;
    gzip_http_version 1.0;
    gzip_proxied any;
    gzip_types text/plain application/javascript application/x-javascript text/javascript text/xml text/css image/svg+xml;
    gzip_vary on;    

    # Enable browser caching
    # One week for javascript and css
     location ~* \.(?:css|js) {
       expires 1w;
       access_log off;
       add_header Cache-Control public;
     }

     # Three weeks for media: images, fonts, icons, video, audio etc.
     location ~* \.(?:jpg|jpeg|gif|png|ico|tiff|woff|eot|ttf|svg|svgz|mp4|ogg|ogv|webm|swf|flv)$ {
       expires 3w;
       access_log off;
       add_header Cache-Control public;
     }

    error_log /var/log/nginx/orocrm_error.log;
    access_log /var/log/nginx/orocrm_access.log;
}

Убедитесь, что вы изменили crm.example.comсвое фактическое доменное имя. Вышеуказанная конфигурация также включает конфигурацию, необходимую для сжатия GZip и кэширования браузера. Gzip-сжатие сжимает данные перед отправкой в ​​браузер. Включение кэширования в браузере сохраняет статические ресурсы в веб-кэше клиентского компьютера. В следующий раз, когда пользователь заходит на сайт, большая часть статического контента загружается из собственного веб-кэша пользователя. Эти два метода значительно увеличивают скорость приложения.

Включить сайт.

sudo ln -s /etc/nginx/sites-available/orocrm /etc/nginx/sites-enabled/orocrm

Проверьте файл конфигурации Nginx на наличие ошибок.

sudo nginx -t

Вывод должен выглядеть следующим образом.

user@vultr:/usr/share/nginx/orocrm$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Предоставьте право собственности на файлы OroCRM пользователю Nginx.

sudo chown -R www-data:www-data /usr/share/nginx/orocrm

Перезапустите Nginx, чтобы применить новую конфигурацию.

sudo systemctl restart nginx

Теперь вы можете получить доступ к приложению по адресу http://crm.example.com. Войдите в систему с помощью администратора, usernameи passwordвы установили во время установки.

Настройка запланированных задач и фоновых заданий

Для автоматического запуска запланированных задач вы можете добавить запись о задании Cron. Open crontab.

sudo crontab -e

Добавьте следующую строку в файл.

*/1 * * * * /usr/bin/php /usr/share/nginx/orocrm/app/console oro:cron --env=prod > /dev/null

Это будет запускать задание cron каждую минуту, чтобы запланированные задачи, такие как очереди электронной почты, обрабатывались как можно раньше.

Вам также необходимо настроить Supervisor для запуска службы очереди сообщений. Требуется, чтобы хотя бы один процесс работал постоянно, чтобы потребитель обрабатывал сообщения. Обычно потребитель может прервать процесс обработки сообщений разными способами. Для обеспечения непрерывной работы службы мы будем использовать службу Supervisor. Мы настроим Supervisor для параллельного запуска четырех процессов. Если какой-либо из четырех процессов по какой-либо причине остановлен, Supervisor попытается запустить его снова.

Установите Supervisor.

sudo apt -y install supervisor

Создайте новый файл конфигурации Supervisor.

sudo nano /etc/supervisor/conf.d/orocrm.conf

Добавьте следующие строки в файл.

[program:oro_message_consumer]
command=/usr/bin/php /usr/share/nginx/orocrm/app/console --env=prod --no-debug oro:message-queue:consume
process_name=%(program_name)s_%(process_num)02d
numprocs=4
autostart=true
autorestart=true
startsecs=0
user=www-data
redirect_stderr=true

Запустите и включите Supervisor для автоматического запуска во время загрузки.

sudo systemctl restart supervisor
sudo systemctl enable supervisor

Вы можете просмотреть состояние процессов, выполнив следующее.

sudo supervisorctl status

Вы должны увидеть, что процессы запущены.

user@vultr:/usr/share/nginx/orocrm$ sudo supervisorctl status
oro_message_consumer:oro_message_consumer_00   RUNNING   pid 20809, uptime 0:00:01
oro_message_consumer:oro_message_consumer_01   RUNNING   pid 20808, uptime 0:00:01
oro_message_consumer:oro_message_consumer_02   RUNNING   pid 20807, uptime 0:00:01
oro_message_consumer:oro_message_consumer_03   RUNNING   pid 20806, uptime 0:00:01

OroCRM теперь установлен на вашем сервере. Теперь вы можете использовать приложение для управления рутинными задачами вашей организации. Чтобы узнать больше об OroCRM, вы можете посетить его официальный сайт .



Leave a Comment

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

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

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше