Как установить OroCRM на CentOS 7

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

Предпосылки

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

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

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

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

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

sudo yum -y install nginx

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

sudo systemctl start nginx
sudo systemctl enable nginx

PHP 7 недоступен в репозитории YUM по умолчанию, но мы можем использовать репозиторий Remi для получения и установки последних сборок PHP 7. Сначала добавьте и включите репозиторий Remi.

sudo rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum -y install yum-utils
sudo yum-config-manager --enable remi-php71

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

sudo yum -y install php php-fpm php-ctype php-curl php-fileinfo php-gd php-intl php-json php-mbstring php-mcrypt php-mysql php-pcre php-simplexml php-tokenizer php-xml php-zip php-tidy php-soap php-opcache php-posix

Отредактируйте файл конфигурации PHP по умолчанию.

sudo nano /etc/php.ini

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

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

memory_limit = 512M
cgi.fix_pathinfo=0

Отредактируйте файл конфигурации PHP-FPM.

sudo nano /etc/php-fpm.d/www.conf

По умолчанию PHP-FPM настроен для работы с Apache и прослушивания порта 9000. Нам потребуется изменить пользователя и группу, а также файл сокета Unix, в котором он будет работать. Найдите следующие строки и внесите необходимые изменения, как показано на рисунке.

user = nginx
group = nginx

;listen = 127.0.0.1:9000
;Comment out or remove the above line and add the following line.
listen = /var/run/php-fpm/php-fpm.sock

listen.owner = nobody
listen.group = nobody

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

sudo systemctl start php-fpm
sudo systemctl enable php-fpm

Предоставьте право владения файлом сокета PHP-FPM пользователю Nginx.

sudo chown nginx:nginx /var/run/php-fpm/php-fpm.sock

Установить MariaDB

MariaDB - это форк MySQL с открытым исходным кодом. Установите MariaDB.

sudo yum -y install mariadb mariadb-server

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

sudo systemctl start mariadb
sudo systemctl enable mariadb

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

sudo mysql_secure_installation

Вам будет предложено ввести текущий пароль root для MariaDB. По умолчанию в новой установке MariaDB пароль root отсутствует. Нажмите Enterклавишу для продолжения. Установите надежный пароль для пользователя root вашего сервера MariaDB и ответьте Yна все остальные вопросы. Заданные вопросы говорят сами за себя.

Создать базу данных для 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, который используется для создания пользовательского интерфейса приложения. Репозиторий CentOS по умолчанию содержит устаревшую версию Node.js, поэтому вам необходимо добавить репозиторий Nodesource в свою систему, чтобы получить последнюю версию.

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

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

sudo yum -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
php -r "unlink('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.3 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 yum -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 Organization
Username (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/conf.d/orocrm.conf

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

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:/var/run/php-fpm/php-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-сжатие сжимает данные перед отправкой в ​​браузер. Включение кэширования в браузере сохраняет статические ресурсы в веб-кэше клиентского компьютера. В следующий раз, когда пользователь заходит на сайт, большая часть статического контента загружается из собственного веб-кэша пользователя. Эти два метода значительно увеличивают скорость приложения.

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

sudo nginx -t

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

[user@vultr ~]$ 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 nginx:nginx /usr/share/nginx/orocrm

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

sudo systemctl restart nginx

Если вы используете брандмауэр на своем сервере, вам необходимо настроить брандмауэр, чтобы установить исключение для службы HTTP. Разрешить Nginx подключаться извне сети.

sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-service=https
sudo firewall-cmd --reload

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

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

Для автоматического запуска запланированных задач вы можете добавить запись о задании 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 yum -y install supervisor

Отредактируйте файл конфигурации Supervisor.

sudo nano /etc/supervisord.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=nginx
redirect_stderr=true

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

sudo systemctl start supervisord
sudo systemctl enable supervisord

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

sudo supervisorctl status

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

[user@vultr ~]$ sudo supervisorctl status
oro_message_consumer:oro_message_consumer_00   RUNNING   pid 13596, uptime 0:02:13
oro_message_consumer:oro_message_consumer_01   RUNNING   pid 13595, uptime 0:02:13
oro_message_consumer:oro_message_consumer_02   RUNNING   pid 13594, uptime 0:02:13
oro_message_consumer:oro_message_consumer_03   RUNNING   pid 13593, uptime 0:02:13

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. Прочтите эту статью, чтобы узнать больше