Cum se instalează OroCRM pe CentOS 7

OroCRM este o aplicație de gestionare a relațiilor cu clienții (CRM) gratuită și deschisă, construită pe OroPlatform. OroPlatform este un software complet personalizabil pentru platforma de aplicații de afaceri open source. OroPlatform vă oferă toate funcțiile necesare pentru crearea unei aplicații personalizate. OroCRM este construit folosind cadrul PHP Symfony și stochează datele sale în serverul de baze de date MySQL / MariaDB. Este o aplicație CRM gata pentru întreprindere, care oferă tone de funcții. De asemenea, se integrează cu multe aplicații terțe, cum ar fi Magento Store, MailChimp, Zendesk etc.

Cerințe preliminare

În acest tutorial, vom folosi crm.example.comca nume de domeniu indicat către server. Înlocuiți toate aparițiile crm.example.comcu numele de domeniu real.

Actualizați-vă sistemul de bază utilizând ghidul Cum actualizați CentOS 7 . După ce sistemul dvs. a fost actualizat, continuați să instalați dependențele necesare.

Instalați Nginx și PHP 7

OroCRM poate fi instalat pe orice server web de producție care acceptă PHP. OroCRM acceptă toate versiunile de PHP mai mari de 7.0. În acest tutorial, vom folosi Nginx cu PHP-FPM și PHP 7.1.

Instalați Nginx.

sudo yum -y install nginx

Porniți Nginx și permiteți-l să pornească automat la pornire.

sudo systemctl start nginx
sudo systemctl enable nginx

PHP 7 nu este disponibil în depozitul YUM implicit, dar putem folosi depozitul Remi pentru a obține și instala cele mai recente versiuni ale PHP 7. Mai întâi, adăugăm și activăm depozitul 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

Instalați cea mai recentă versiune a PHP 7 împreună cu modulele PHP solicitate de 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

Editați fișierul de configurare PHP implicit.

sudo nano /etc/php.ini

Găsiți următoarele rânduri. Decomandați și faceți modificări așa cum este arătat.

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

memory_limit = 512M
cgi.fix_pathinfo=0

Editați fișierul de configurare PHP-FPM.

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

În mod implicit, PHP-FPM este configurat pentru a rula cu Apache și pentru a asculta portul 9000. Va trebui să schimbăm utilizatorul și grupul, precum și fișierul socket Unix pe care va rula. Găsiți următoarele linii și faceți modificările necesare așa cum este arătat.

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

Porniți PHP-FPM și permiteți-l să pornească de la pornire.

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

Oferiți proprietatea fișierului socket PHP-FPM utilizatorului Nginx.

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

Instalați MariaDB

MariaDB este o furcă open source a MySQL. Instalați MariaDB.

sudo yum -y install mariadb mariadb-server

Porniți MariaDB și permiteți-l să pornească automat la pornire.

sudo systemctl start mariadb
sudo systemctl enable mariadb

Instalarea implicită a MariaDB vine cu câteva baze de date de testare și utilizatori anonimi. Înainte de a configura baza de date, va trebui să securizați mai întâi serverul MariaDB. Îl puteți securiza rulând mysql_secure_installationscriptul.

sudo mysql_secure_installation

Vi se va cere parola rădăcină MariaDB curentă. În mod implicit, nu există nicio parolă root într-o nouă instalare MariaDB. Apăsați Entertasta pentru a continua. Setați o parolă puternică pentru utilizatorul root al serverului dumneavoastră MariaDB și răspundeți Yla toate celelalte întrebări adresate. Întrebările adresate sunt explicative de la sine.

Creați baza de date pentru OroCRM

Conectați-vă la shell-ul MySQL ca utilizator root rulând.

mysql -u root -p

Furnizați parola pentru utilizatorul rădăcină MariaDB pentru a se autentifica.

Rulați următoarele întrebări pentru a crea o bază de date și un utilizator de bază de date pentru instalarea 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;

Puteți înlocui numele bazei de date oro_datași numele de utilizator în oro_userfuncție de alegerea dvs. Asigurați-vă că treceți StrongPasswordla o parolă foarte puternică.

Instalați Node.js și Composer

De asemenea, OroCRM necesită timp de rulare JavaScript Node.js. Node.js va fi folosit de OroCRM pentru a compila JavaScript, care este utilizat pentru a construi interfața de utilizator a aplicației. Depozitul implicit al CentOS conține o versiune depășită a Node.js, astfel va trebui să adăugați depozitul Nodesource la sistemul dvs. pentru a obține cea mai recentă versiune.

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

Instalați Node.js și Git.

sudo yum -y install nodejs git

Git va fi folosit pentru a clona depozitul OroCRM de pe internet. Va trebui, de asemenea, să instalați Composer. Composer este un instrument de gestionare a dependenței pentru aplicațiile PHP. Deoarece OroCRM este scris în cadrul Symfony, veți avea nevoie de Composer pentru a instala dependențele și aplicația.

Instalați Composer.

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

Mutați Composer în /usr/bindirector pentru a putea fi executat de oriunde în sistem.

sudo mv composer.phar /usr/bin/composer

Oferiți permisiunea de execuție compozitorului.

sudo chmod +x /usr/bin/composer

Instalați OroCRM

Există mai multe moduri de a descărca OroCRM pe serverul dvs. Cea mai potrivită modalitate de a obține cea mai actualizată versiune este clonarea depozitului prin Git.

Clonați depozitul OroCRM.

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

Copiați parametersfișierul de exemplu în fișierul implicit parametersutilizat de OroCRM.

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

Înainte de a merge mai departe, va trebui să actualizați parameters.ymlfișierul pentru a oferi informații de bază de date și e-mail.

sudo nano app/config/parameters.yml

Găsiți următoarele rânduri.

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

Actualizați configurația de mai sus în funcție de baza de date creată pentru a stoca datele OroCRM. În cazul nostru, ar trebui să arate astfel.

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

Dacă aveți un server SMTP gata și doriți să utilizați imediat funcțiile de trimitere prin e-mail, puteți actualiza setările mailerului așa cum se arată.

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

Dacă nu aveți un server de e-mail gata, îl puteți omite deocamdată lăsând valorile existente. Puteți modifica întotdeauna configurația e-mailului prin tabloul de bord.

Setați un șir aleatoriu secretînlocuind ThisTokenIsNotSoSecretChangeIt. Este necesar un șir aleatoriu pentru a codifica datele sesiunii. Un exemplu de șir va arăta astfel.

secret:            uxvpXHhDxCFc9yU1hV1fMwjSoyVUzGh4WBMBBBa3XEgrRUF5OuB2h8iNl9JRDqcd

Puteți genera un șir aleatoriu folosind pwgenutilitarul. Instalați pwgenutilitatea rulând sudo yum -y install pwgen. Pentru a genera un șir aleatoriu, executați pwgen -s 64 1.

Salvați fișierul și ieșiți din editor. Instalați dependențele PHP necesare prin intermediul compozitorului.

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

Utilizarea se --no-devva asigura că Compozitorul instalează doar dependențele necesare pentru a rula serverul web în modul de producție. Scriptul va dura câteva minute pentru a descărca și instala dependențele PHP necesare.

Instalați aplicația.

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

Acest lucru va construi memoria cache web și va scrie baza de date. --env=prodParametrul este furnizat pentru a instala aplicația în modul de producție. Instalarea va continua numai dacă toate dependențele necesare sunt instalate și configurate.

În timpul instalării, vi se vor cere câteva întrebări pentru configurarea contului de administrator. Întrebările sunt următoarele.

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

Furnizați informațiile. Încărcați datele eșantionului pentru a evalua produsul înainte de al utiliza pentru producție.

Încălziți memoria cache a documentației API:

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

Configurarea Nginx, firewall și permisiuni

Creați un fișier de bloc de server Nginx pentru a servi aplicația utilizatorilor.

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

Populați fișierul.

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;
}

Asigurați-vă că modificați crm.example.comnumele de domeniu real. Configurația de mai sus include, de asemenea, configurația necesară pentru compresia GZip și caching-ul browserului. Compresia Gzip comprimă datele înainte de a le trimite în browser. Activarea memorării în cache a browserului stochează resursele statice în memoria cache web a computerului client. Data viitoare când utilizatorul accesează site-ul, cea mai mare parte a conținutului static este încărcat din memoria cache web a utilizatorului. Aceste două metode cresc viteza aplicației dramatic.

Verificați dacă există erori în fișierul de configurare Nginx.

sudo nginx -t

Rezultatul ar trebui să arate după cum urmează.

[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

Furnizați proprietatea fișierelor OrOCRM utilizatorului Nginx.

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

Reporniți Nginx pentru a aplica noua configurație.

sudo systemctl restart nginx

Dacă executați un firewall pe serverul dvs., va trebui să configurați firewallul pentru a seta o excepție pentru serviciul HTTP. Permiteți Nginx să se conecteze din afara rețelei.

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

Acum puteți accesa aplicația la http://crm.example.com. Conectați-vă cu numele de utilizator și parola pe care le-ați configurat în timpul instalării.

Configurați sarcini programate și lucrări de fundal

Pentru a rula automat sarcinile programate puteți adăuga o intrare de lucru Cron. Deschis crontab.

sudo crontab -e

Adăugați următoarea linie la fișier.

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

Aceasta va rula lucrarea cron în fiecare minut, astfel încât sarcinile programate, cum ar fi cozile de e-mail să fie procesate cât mai devreme.

De asemenea, va trebui să configurați Supervizorul pentru a rula serviciul Coada de mesaje. Este necesar ca cel puțin un proces să funcționeze în permanență pentru ca un consumator să proceseze mesajele. În mod normal, un consumator poate întrerupe procesul de mesaje prin mai multe moduri. Pentru a ne asigura că serviciul funcționează continuu, vom folosi serviciul de Supervizor. Vom configura Supervizorul pentru a rula patru procese în paralel. Dacă vreunul dintre cele patru procese este oprit din orice motiv, Supervizorul va încerca să-l pornească din nou.

Instalați Supervizorul.

sudo yum -y install supervisor

Editați fișierul de configurare a Supervizorului.

sudo nano /etc/supervisord.conf

Adăugați următoarele linii la sfârșitul fișierului.

[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

Porniți și permiteți Supervizorul să pornească automat la momentul de pornire.

sudo systemctl start supervisord
sudo systemctl enable supervisord

Puteți vizualiza starea proceselor rulând următoarele.

sudo supervisorctl status

Ar trebui să vedeți că procesele se execută.

[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 este acum instalat pe serverul dvs. Acum puteți utiliza aplicația pentru a gestiona sarcinile de rutină ale organizației dvs. Pentru a afla mai multe despre OroCRM, puteți vizita site-ul său oficial .



Leave a Comment

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

6 lucruri extrem de nebunești despre Nintendo Switch

6 lucruri extrem de nebunești despre Nintendo Switch

Mulți dintre voi cunoașteți Switch care va fi lansat în martie 2017 și noile sale funcții. Pentru cei care nu știu, am pregătit o listă de funcții care fac din „Switch” un „gadget obligatoriu”.

Promisiuni tehnologice care sunt încă nelivrate

Promisiuni tehnologice care sunt încă nelivrate

Aștepți ca giganții tehnologiei să-și îndeplinească promisiunile? vezi ce a ramas nelivrat.

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Citiți blogul pentru a cunoaște diferitele straturi din Arhitectura Big Data și funcționalitățile acestora în cel mai simplu mod.

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Citiți asta pentru a afla cum devine populară inteligența artificială în rândul companiilor la scară mică și cum crește probabilitățile de a le face să crească și de a le oferi concurenților avantaje.

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA a devenit destul de dificil de rezolvat pentru utilizatori în ultimii ani. Va fi capabil să rămână eficient în detectarea spam-ului și a botului în viitor?

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Pe măsură ce Știința Evoluează într-un ritm rapid, preluând multe dintre eforturile noastre, crește și riscurile de a ne supune unei Singularități inexplicabile. Citiți, ce ar putea însemna singularitatea pentru noi.

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Ce este telemedicina, îngrijirea medicală la distanță și impactul acesteia asupra generației viitoare? Este un loc bun sau nu în situația de pandemie? Citiți blogul pentru a găsi o vedere!

Te-ai întrebat vreodată cum câștigă hackerii bani?

Te-ai întrebat vreodată cum câștigă hackerii bani?

Poate ați auzit că hackerii câștigă mulți bani, dar v-ați întrebat vreodată cum câștigă acești bani? sa discutam.

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Recent, Apple a lansat macOS Catalina 10.15.4 o actualizare suplimentară pentru a remedia problemele, dar se pare că actualizarea provoacă mai multe probleme care duc la blocarea mașinilor Mac. Citiți acest articol pentru a afla mai multe