Как да инсталирате OroCRM на CentOS 7

OroCRM е безплатно приложение с отворен код Customer Relationship Manager (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. По подразбиране няма root парола в нова инсталация на MariaDB. Натиснете 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 също изисква време за изпълнение на Node.js JavaScript. 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

If you have an SMTP server ready and you wish to use email sending features immediately, you can update the mailer settings as shown.

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

If you do not have a mail server ready, you can skip it for now by leaving the existing values. You can always change email configuration through the dashboard.

Set a random string in secret by replacing ThisTokenIsNotSoSecretChangeIt. A random string is required to encode the session data. An example string will look like this.

secret:            uxvpXHhDxCFc9yU1hV1fMwjSoyVUzGh4WBMBBBa3XEgrRUF5OuB2h8iNl9JRDqcd

You can generate a random string using the pwgen utility. Install pwgen utility by running sudo yum -y install pwgen. To generate a random string, run pwgen -s 64 1.

Save the file and exit from the editor. Install the required PHP dependencies through composer.

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

Using --no-dev will ensure that the Composer only installs the dependencies required to run the web server in production mode. The script will take a few minutes to download and install the required PHP dependencies.

Install the application.

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

This will build the web cache and write the database. The --env=prod parameter is provided to install the application in production mode. The installation will only proceed if all the required dependencies are installed and configured.

During the installation, you will be asked few questions for setting up the administrator account. The questions are as follows.

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

Provide the information. Load the sample data to evaluate the product before using it for production.

Warm up the API documentation cache:

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

Configuring Nginx, Firewall and Permissions

Създайте блоков файл на 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. Отвори 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.

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, можете да посетите официалния му уебсайт .


Инсталирайте Lets Encrypt SSL в приложението WordPress с едно щракване

Инсталирайте Lets Encrypt SSL в приложението WordPress с едно щракване

Въведение Lets Encrypt е услуга на сертифициращ орган, която предлага безплатни TLS/SSL сертификати. Процесът на инсталиране е опростен от Certbot,

Как да настроите надстройки без надзор на Debian 9 (разтягане)

Как да настроите надстройки без надзор на Debian 9 (разтягане)

Използване на различна система? Ако закупите сървър на Debian, винаги трябва да имате най-новите корекции за сигурност и актуализации, независимо дали спите или не

Как да инсталирате и конфигурирате PHP 7.0 или PHP 7.1 на Ubuntu 16.04

Как да инсталирате и конфигурирате PHP 7.0 или PHP 7.1 на Ubuntu 16.04

PHP и свързаните с него пакети са най-често използваните компоненти при разгръщане на уеб сървър. В тази статия ще научим как да настроим PHP 7.0 или PHP 7.1 o

Как да инсталирате Squid Proxy на CentOS

Как да инсталирате Squid Proxy на CentOS

Squid е популярна, безплатна програма за Linux, която ви позволява да създадете уеб прокси за препращане. В това ръководство ще видите как да инсталирате Squid на CentOS, за да ви обърне

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Въведение Lighttpd е форк на Apache, чиято цел е да бъде много по-малко ресурсоемка. Той е лек, откъдето идва и името му, и е доста лесен за използване. Инсталирайте

Три безплатни контролни панела на сървъра (бърза инсталация)

Три безплатни контролни панела на сървъра (бърза инсталация)

1. Virtualmin/Webmin Virtualmin е мощен и гъвкав контролен панел за уеб хостинг за Linux и UNIX системи, базиран на добре познатата уеб база с отворен код

Настройване на приложение Yii на Ubuntu 14.04

Настройване на приложение Yii на Ubuntu 14.04

Yii е PHP рамка, която ви позволява да разработвате приложения по-бързо и лесно. Инсталирането на Yii в Ubuntu е лесно, както ще научите точно l

Настройте свой собствен DNS сървър на Debian/Ubuntu

Настройте свой собствен DNS сървър на Debian/Ubuntu

Този урок обяснява как да настроите DNS сървър с помощта на Bind9 на Debian или Ubuntu. В цялата статия заменете your-domain-name.com съответно. При th

Използване на Logrotate за управление на регистрационни файлове

Използване на Logrotate за управление на регистрационни файлове

Въведение Logrotate е помощна програма за Linux, която опростява администрирането на лог файлове. Обикновено се изпълнява веднъж на ден чрез cron задание и управлява базата от регистрационни файлове

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Icinga2 е мощна система за наблюдение и когато се използва в модел главен-клиент, тя може да замени необходимостта от проверки на базата на NRPE. Главният клиент

Настройте Red5 Media Server на Ubuntu 16.04

Настройте Red5 Media Server на Ubuntu 16.04

Използване на различна система? Red5 е медиен сървър с отворен код, внедрен в Java, който ви позволява да стартирате Flash многопотребителски приложения, като например предаване на живо

Компилирайте и инсталирайте Nginx с модула PageSpeed ​​на Debian 8

Компилирайте и инсталирайте Nginx с модула PageSpeed ​​на Debian 8

В тази статия ще видим как да компилирате и инсталирате основната линия на Nginx от официалните източници на Nginx с модула PageSpeed, който ви позволява да

Как да инсталирате Apache Cassandra 3.11.x на Ubuntu 16.04 LTS

Как да инсталирате Apache Cassandra 3.11.x на Ubuntu 16.04 LTS

Използване на различна система? Apache Cassandra е безплатна система за управление на база данни NoSQL с отворен код, която е проектирана да осигури мащабируемост, висока

Как да инсталирате Vanilla Forum на Ubuntu 16.04

Как да инсталирате Vanilla Forum на Ubuntu 16.04

Използване на различна система? Vanilla forum е приложение за форум с отворен код, написано на PHP. Той е напълно адаптивен, лесен за използване и поддържа външен

Как да инсталирате Kanboard на Ubuntu 18.04 LTS

Как да инсталирате Kanboard на Ubuntu 18.04 LTS

Използване на различна система? Въведение Kanboard е безплатна програма за управление на проекти с отворен код, която е предназначена да улеснява и визуализира

Как да инсталирате Kanboard на Debian 9

Как да инсталирате Kanboard на Debian 9

Използване на различна система? Въведение Kanboard е безплатна програма за управление на проекти с отворен код, която е предназначена да улеснява и визуализира

Как да инсталирате Gitea на Debian 9

Как да инсталирате Gitea на Debian 9

Използване на различна система? Gitea е алтернатива с отворен код, самостоятелно хоствана система за контрол на версиите, задвижвана от Git. Gitea е написана на Голанг и е

Как да инсталирате Gitea на Ubuntu 18.04

Как да инсталирате Gitea на Ubuntu 18.04

Използване на различна система? Gitea е алтернатива с отворен код, самостоятелно хоствана система за контрол на версиите, задвижвана от git. Gitea е написана на Голанг и е

Инсталирайте Lynis на Debian 8

Инсталирайте Lynis на Debian 8

Въведение Lynis е безплатен инструмент за одит на системата с отворен код, който се използва от много системни администратори за проверка на целостта и заздравяване на техните системи. аз

Как да инсталирате Thelia 2.3 на Debian 9

Как да инсталирате Thelia 2.3 на Debian 9

Използване на различна система? Thelia е инструмент с отворен код за създаване на уебсайтове за е-бизнес и управление на онлайн съдържание, написано на PHP. Изходен код на Thelia i

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

DDOS атаки: кратък преглед

DDOS атаки: кратък преглед

Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.

Чудили ли сте се как хакерите печелят пари?

Чудили ли сте се как хакерите печелят пари?

Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.

Революционни изобретения на Google, които ще улеснят живота ви.

Революционни изобретения на Google, които ще улеснят живота ви.

Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…

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

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

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

Еволюция на съхранението на данни – инфографика

Еволюция на съхранението на данни – инфографика

Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.

Функционалности на референтните архитектурни слоеве за големи данни

Функционалности на референтните архитектурни слоеве за големи данни

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

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече