Preduvjeti
Instalirajte Nginx i PHP 7
Instalirajte MariaDB
Instalirajte Node.js i Composer
Instalirajte OroCRM
Konfiguriranje Nginxa, vatrozida i dopuštenja
Postavite zakazane zadatke i pozadinske poslove
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 .