Kako instalirati OroCRM na CentOS 7

OroCRM je besplatna aplikacija otvorenog koda Customer Relationship Manager (CRM) izgrađena na OroPlatformu. OroPlatform je potpuno prilagodljiv softver platforme poslovnih aplikacija otvorenog koda. OroPlatform vam pruža sve značajke koje su potrebne za izradu prilagođene aplikacije. OroCRM je izgrađen pomoću PHP Symfony okvira i pohranjuje svoje podatke u MySQL/MariaDB poslužitelj baze podataka. To je CRM aplikacija spremna za poduzeća koja nudi mnoštvo značajki. Također se integrira s mnogim aplikacijama trećih strana kao što su Magento Store, MailChimp, Zendesk itd. Višejezičan je i ima potpuno responzivno korisničko sučelje, koje vam pruža mogućnost upravljanja njime i pomoću mobilnih uređaja.

Preduvjeti

  • Instanca poslužitelja Vultr CentOS 7.
  • Korisnik sudoa .

U ovom vodiču koristit ćemo crm.example.comkao ime domene usmjereno na poslužitelj. Zamijenite sva pojavljivanja crm.example.comsa svojim stvarnim imenom domene.

Ažurirajte svoj osnovni sustav pomoću vodiča Kako ažurirati CentOS 7 . Nakon što se vaš sustav ažurira, nastavite s instaliranjem potrebnih ovisnosti.

Instalirajte Nginx i PHP 7

OroCRM se može instalirati na bilo koji proizvodni web poslužitelj koji podržava PHP. OroCRM podržava sve verzije PHP-a starije od 7.0. U ovom vodiču koristit ćemo Nginx s PHP-FPM i PHP 7.1.

Instalirajte Nginx.

sudo yum -y install nginx

Pokrenite Nginx i omogućite mu automatsko pokretanje pri pokretanju.

sudo systemctl start nginx
sudo systemctl enable nginx

PHP 7 nije dostupan u zadanom YUM repozitoriju, ali možemo koristiti Remi spremište za dobivanje i instaliranje najnovijih verzija PHP-a 7. Prvo dodajte i omogućite Remi spremište.

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

Instalirajte najnoviju verziju PHP-a 7 zajedno s PHP modulima koje zahtijeva 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

Uredite zadanu PHP konfiguracijsku datoteku.

sudo nano /etc/php.ini

Pronađite sljedeće retke. Dekomentirajte i izvršite izmjene kao što je prikazano.

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

memory_limit = 512M
cgi.fix_pathinfo=0

Uredite PHP-FPM konfiguracijsku datoteku.

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

Prema zadanim postavkama, PHP-FPM je konfiguriran za rad s Apacheom i za slušanje porta 9000. Morat ćemo promijeniti korisnika i grupu, kao i Unix socket datoteku na kojoj će se izvoditi. Pronađite sljedeće retke i izvršite potrebne promjene kao što je prikazano.

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

Pokrenite PHP-FPM i omogućite mu pokretanje pri pokretanju.

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

Omogućite vlasništvo nad PHP-FPM datotekom socketa korisniku Nginxa.

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

Instalirajte MariaDB

MariaDB je fork MySQL otvorenog koda. Instalirajte MariaDB.

sudo yum -y install mariadb mariadb-server

Pokrenite MariaDB i omogućite mu automatsko pokretanje pri pokretanju.

sudo systemctl start mariadb
sudo systemctl enable mariadb

Zadana instalacija MariaDB-a dolazi s nekoliko testnih baza podataka i anonimnim korisnicima. Prije konfiguriranja baze podataka, morat ćete prvo osigurati MariaDB poslužitelj. Možete ga osigurati pokretanjem mysql_secure_installationskripte.

sudo mysql_secure_installation

Od vas će se tražiti trenutna MariaDB root lozinka. Prema zadanim postavkama, u novoj instalaciji MariaDB-a nema root lozinke. Pritisnite Entertipku za nastavak. Postavite jaku lozinku za root korisnika vašeg MariaDB poslužitelja i odgovorite Yna sva ostala postavljena pitanja. Postavljena pitanja su sama po sebi razumljiva.

Napravite bazu podataka za OroCRM

Prijavite se na MySQL ljusku kao root korisnik pokretanjem.

mysql -u root -p

Navedite lozinku za MariaDB root korisnika za prijavu.

Pokrenite sljedeće upite za stvaranje baze podataka i korisnika baze podataka za instalaciju OroCRM-a.

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;

Naziv baze podataka oro_datai korisničko ime možete zamijeniti oro_userpo svom izboru. Svakako promijenite StrongPasswordu vrlo jaku lozinku.

Instalirajte Node.js i Composer

OroCRM također zahtijeva Node.js JavaScript runtime. Node.js će OroCRM koristiti za kompajliranje JavaScripta, koji se koristi za izgradnju korisničkog sučelja aplikacije. Zadano spremište CentOS-a sadrži zastarjelu verziju Node.js, stoga ćete morati dodati spremište Nodesource u svoj sustav kako biste dobili najnoviju verziju.

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

Instalirajte Node.js i Git.

sudo yum -y install nodejs git

Git će se koristiti za kloniranje OroCRM repozitorija s interneta. Također ćete morati instalirati Composer. Composer je alat za upravljanje ovisnostima za PHP aplikacije. Budući da je OroCRM napisan u Symfony okviru, trebat će vam Composer za instalaciju ovisnosti i aplikacije.

Instalirajte Composer.

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

Premjestite Composer u /usr/bindirektorij tako da se može izvršiti s bilo kojeg mjesta u sustavu.

sudo mv composer.phar /usr/bin/composer

Skladatelju dajte dopuštenje za izvršenje.

sudo chmod +x /usr/bin/composer

Instalirajte OroCRM

Postoji mnogo načina za preuzimanje OroCRM-a na vaš poslužitelj. Najprikladniji način da dobijete najažurniju verziju je kloniranje spremišta putem Gita.

Klonirajte OroCRM spremište.

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

Kopirajte parametersdatoteku primjera u zadanu parametersdatoteku koju koristi OroCRM.

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

Prije nego što nastavite dalje, morat ćete ažurirati parameters.ymldatoteku kako biste pružili podatke iz baze podataka i e-pošte.

sudo nano app/config/parameters.yml

Pronađite sljedeće retke.

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

Ažurirajte gornju konfiguraciju prema bazi podataka koju ste stvorili za pohranu podataka OroCRM. U našem slučaju to bi trebalo izgledati ovako.

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

Ako imate spreman SMTP poslužitelj i želite odmah koristiti značajke slanja e-pošte, možete ažurirati postavke mailera kao što je prikazano.

mailer_transport:  smtp
mailer_host:       mail.example.com
mailer_port:       456
mailer_encryption: ssl
mailer_user:       mails@example.com
mailer_password:   EMailPassword

Ako nemate spreman poslužitelj e-pošte, za sada ga možete preskočiti ostavljajući postojeće vrijednosti. Konfiguraciju e-pošte uvijek možete promijeniti putem nadzorne ploče.

Postavite nasumični niz secretzamjenom ThisTokenIsNotSoSecretChangeIt. Za kodiranje podataka sesije potreban je nasumični niz. Primjer niza će izgledati ovako.

secret:            uxvpXHhDxCFc9yU1hV1fMwjSoyVUzGh4WBMBBBa3XEgrRUF5OuB2h8iNl9JRDqcd

Pomoću pwgenuslužnog programa možete generirati nasumični niz . Instalirajte pwgenuslužni program pokretanjem sudo yum -y install pwgen. Da biste generirali nasumični niz, pokrenite pwgen -s 64 1.

Spremite datoteku i izađite iz uređivača. Instalirajte potrebne PHP ovisnosti putem skladatelja.

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: mail@example.com
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

Izradite blok datoteku Nginx poslužitelja za posluživanje aplikacije korisnicima.

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

Popunite datoteku.

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

Provjerite jeste li promijenili crm.example.comsvoj stvarni naziv domene. Gornja konfiguracija također uključuje konfiguraciju potrebnu za GZip kompresiju i predmemoriju preglednika. Gzip kompresija komprimira podatke prije nego što ih pošalje pregledniku. Omogućavanje predmemorije preglednika pohranjuje statičke resurse u web predmemoriju klijentskog računala. Sljedeći put kada korisnik pristupi web-mjestu, većina statičkog sadržaja učitava se iz korisnikove web predmemorije. Ove dvije metode dramatično povećavaju brzinu aplikacije.

Provjerite ima li u konfiguracijskoj datoteci Nginx bilo kakvih pogrešaka.

sudo nginx -t

Izlaz bi trebao izgledati ovako.

[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

Omogućite vlasništvo nad OrOCRM datotekama korisniku Nginxa.

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

Ponovno pokrenite Nginx da biste primijenili novu konfiguraciju.

sudo systemctl restart nginx

Ako koristite vatrozid na svom poslužitelju, morat ćete konfigurirati vatrozid da postavi iznimku za HTTP uslugu. Dopustite Nginxu da se poveže izvan mreže.

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

Sada možete pristupiti aplikaciji na http://crm.example.com. Prijavite se koristeći administratorsko korisničko ime i lozinku koje ste postavili tijekom instalacije.

Postavite zakazane zadatke i pozadinske poslove

Za automatsko pokretanje planiranih zadataka možete dodati unos Cron posla. Otvori crontab.

sudo crontab -e

Dodajte sljedeći redak u datoteku.

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

Ovo će pokrenuti cron posao svake minute tako da se planirani zadaci kao što su redovi e-pošte obrađuju što je prije moguće.

Također ćete morati postaviti Supervisora ​​za pokretanje usluge reda čekanja poruka. Potrebno je da se u svakom trenutku izvodi barem jedan proces kako bi potrošač obradio poruke. Potrošač može normalno prekinuti proces poruke na mnogo načina. Kako bismo osigurali kontinuirano funkcioniranje usluge, koristit ćemo uslugu Supervizor. Konfigurirat ćemo Supervisor da izvodi četiri procesa paralelno. Ako je bilo koji od četiri procesa zaustavljen iz bilo kojeg razloga, Supervizor će ga pokušati ponovno pokrenuti.

Instalirajte Supervisor.

sudo yum -y install supervisor

Uredite konfiguracijsku datoteku Supervisora.

sudo nano /etc/supervisord.conf

Dodajte sljedeće retke na kraj datoteke.

[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

Pokrenite i omogućite Supervisoru da se automatski pokrene prilikom pokretanja.

sudo systemctl start supervisord
sudo systemctl enable supervisord

Status procesa možete vidjeti tako da pokrenete sljedeće.

sudo supervisorctl status

Trebali biste vidjeti da su procesi pokrenuti.

[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 je sada instaliran na vašem poslužitelju. Sada možete koristiti aplikaciju za upravljanje rutinskim zadacima svoje organizacije. Da biste saznali više o OroCRM-u, možete posjetiti njegovu službenu web stranicu .

Ostavite komentar

Uspon strojeva: primjene AI u stvarnom svijetu

Uspon strojeva: primjene AI u stvarnom svijetu

Umjetna inteligencija nije u budućnosti, ovdje je upravo u sadašnjosti. U ovom blogu Pročitajte kako su aplikacije umjetne inteligencije utjecale na različite sektore.

DDOS napadi: kratak pregled

DDOS napadi: kratak pregled

Jeste li i vi žrtva DDOS napada i zbunjeni ste metodama prevencije? Pročitajte ovaj članak kako biste riješili svoje upite.

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Možda ste čuli da hakeri zarađuju mnogo novca, ali jeste li se ikada zapitali kako zarađuju toliki novac? raspravimo.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Želite li vidjeti revolucionarne izume Googlea i kako su ti izumi promijenili život svakog čovjeka danas? Zatim čitajte na blogu kako biste vidjeli Googleove izume.

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Koncept samovozećih automobila koji će krenuti na ceste uz pomoć umjetne inteligencije san je koji već neko vrijeme imamo. No, unatoč nekoliko obećanja, nigdje ih nema. Pročitajte ovaj blog kako biste saznali više…

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Kako se znanost razvija velikom brzinom, preuzimajući mnoge naše napore, raste i rizik da se podvrgnemo neobjašnjivoj Singularnosti. Pročitajte što bi za nas mogla značiti singularnost.

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Pročitajte blog kako biste na najjednostavniji način upoznali različite slojeve u arhitekturi velikih podataka i njihove funkcionalnosti.

Evolucija pohrane podataka – Infografika

Evolucija pohrane podataka – Infografika

Metode pohrane podataka su se razvijale možda od rođenja podataka. Ovaj blog pokriva evoluciju pohrane podataka na temelju infografike.

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

U ovom digitalnom svijetu, pametni kućni uređaji postali su ključni dio života. Evo nekoliko nevjerojatnih prednosti pametnih kućnih uređaja o tome kako naš život čine vrijednim življenja i jednostavnijim.

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Nedavno je Apple izdao macOS Catalina 10.15.4 dodatak ažuriranju kako bi riješio probleme, ali čini se da ažuriranje uzrokuje više problema koji dovode do zalijevanja mac strojeva. Pročitajte ovaj članak da biste saznali više