OroCRM è un'applicazione CRM (Customer Relationship Manager) gratuita e open source basata su OroPlatform. OroPlatform è un software di piattaforma applicativa aziendale open source completamente personalizzabile. OroPlatform ti offre tutte le funzionalità necessarie per creare un'applicazione personalizzata. OroCRM è realizzato utilizzando il framework PHP Symfony e memorizza i suoi dati nel server di database MySQL / MariaDB. Si tratta di un'applicazione CRM di livello enterprise che offre moltissime funzionalità. Si integra anche con molte applicazioni di terze parti come Magento Store, MailChimp, Zendesk e molte altre. È multilingue e ha un'interfaccia utente completamente reattiva, che ti offre la possibilità di gestirlo anche tramite dispositivi mobili.
Prerequisiti
In questo tutorial, useremo crm.example.com
come nome di dominio puntato al server. Sostituisci tutte le occorrenze di crm.example.com
con il tuo vero nome di dominio.
Aggiorna il tuo sistema di base usando la guida Come aggiornare Ubuntu 16.04 . Dopo aver aggiornato il sistema, procedere con l'installazione delle dipendenze richieste.
Installa Nginx e PHP 7
OroCRM può essere installato su qualsiasi server Web di produzione che supporta PHP. OroCRM supporta tutte le versioni di PHP successive alla 7.0. In questo tutorial, utilizzeremo Nginx con PHP-FPM e PHP 7.1.
Installa Nginx.
sudo apt -y install nginx
Avvia Nginx e abilita l'avvio automatico all'avvio.
sudo systemctl start nginx
sudo systemctl enable nginx
PHP 7.1 non è disponibile nel apt
repository predefinito . Innanzitutto, aggiungi il repository PPA per PHP.
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
Installa PHP 7.1 insieme ai moduli PHP richiesti da OroCRM.
sudo apt update
sudo apt -y install php7.1 php7.1-fpm php7.1-common php7.1-curl php7.1-gd php7.1-intl php7.1-json php7.1-mbstring php7.1-mcrypt php7.1-mysql php7.1-xml php7.1-xml php7.1-zip php7.1-tidy php7.1-soap php7.1-opcache
Modifica il file di configurazione PHP caricato.
sudo nano /etc/php/7.1/cli/php.ini
Trova le seguenti righe. Sblocca e apporta le modifiche come mostrato.
date.timezone = Asia/Kolkata
;Replace "Asia/Kolkata" with your appropriate timezone
cgi.fix_pathinfo=0
Avvia PHP-FPM e abilitalo all'avvio.
sudo systemctl start php7.1-fpm
sudo systemctl enable php7.1-fpm
Installa MariaDB
MariaDB è un fork open source di MySQL. Aggiungi repository MariaDB 10.2.
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://kartolo.sby.datautama.net.id/mariadb/repo/10.2/ubuntu xenial main'
Installa MariaDB.
sudo apt -y update
sudo apt -y install mariadb-server
Avviare MariaDB e abilitare l'avvio automatico all'avvio.
sudo systemctl start mariadb
sudo systemctl enable mariadb
Crea il database per OroCRM
Esegui l'accesso alla shell MySQL come utente root eseguendo.
mysql -u root -p
Fornire la password per l'utente root MariaDB per accedere.
Eseguire le seguenti query per creare un database e un utente del database per l'installazione di 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;
È possibile sostituire il nome del database oro_data
e il nome utente in oro_user
base alla propria scelta. Assicurati di passare StrongPassword
a una password molto sicura .
Installa Node.js e Composer
OroCRM richiede anche il runtime JavaScript Node.js. Node.js verrà utilizzato da OroCRM per compilare JavaScript, che viene utilizzato per creare l'interfaccia utente dell'applicazione. Il repository predefinito di Ubuntu contiene una versione obsoleta di Node.js, quindi sarà necessario aggiungere il repository Nodesource al proprio sistema per ottenere la versione più recente.
sudo curl --silent --location https://deb.nodesource.com/setup_8.x | sudo bash -
Installa Node.js e Git.
sudo apt -y install nodejs git
Git verrà utilizzato per clonare il repository OroCRM da Internet. Dovrai anche installare Composer. Composer è uno strumento di gestione delle dipendenze per le applicazioni PHP. Poiché OroCRM è scritto nel framework Symfony, è necessario Composer per installare le dipendenze e l'applicazione.
Installa Composer.
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
Sposta Composer nella /usr/bin
directory in modo che possa essere eseguito da qualsiasi parte del sistema.
sudo mv composer.phar /usr/bin/composer
Fornisci il permesso di esecuzione al compositore.
sudo chmod +x /usr/bin/composer
Installa OroCRM
Esistono molti modi per scaricare OroCRM sul tuo server. Il modo più appropriato per ottenere la versione più aggiornata è clonare il repository tramite Git.
Clona il repository OroCRM.
cd /usr/share/nginx/
sudo git clone -b 2.4 https://github.com/oroinc/crm-application.git orocrm
Copia il parameters
file di esempio nel file predefinito parameters
utilizzato da OroCRM.
cd orocrm
sudo cp app/config/parameters.yml.dist app/config/parameters.yml
Prima di poter procedere oltre, sarà necessario aggiornare il parameters.yml
file per fornire informazioni sul database e via e-mail.
sudo nano app/config/parameters.yml
Trova le seguenti righe.
database_driver: pdo_mysql
database_host: 127.0.0.1
database_port: ~
database_name: oro_crm
database_user: root
database_password: ~
Aggiorna la configurazione sopra in base al database che hai creato per memorizzare i dati OroCRM. Nel nostro caso, dovrebbe apparire così.
database_driver: pdo_mysql
database_host: 127.0.0.1
database_port: 3306
database_name: oro_data
database_user: oro_user
database_password: StrongPassword
Se hai un server SMTP pronto e desideri utilizzare immediatamente le funzionalità di invio e-mail, puoi aggiornare le impostazioni del mailer come mostrato.
mailer_transport: smtp
mailer_host: mail.example.com
mailer_port: 456
mailer_encryption: ssl
mailer_user: [email protected]
mailer_password: EMailPassword
Se non disponi di un server di posta pronto, puoi saltarlo per ora lasciando i valori esistenti. Puoi sempre modificare la configurazione della posta elettronica tramite la dashboard.
Imposta una stringa casuale secret
sostituendola ThisTokenIsNotSoSecretChangeIt
. È necessaria una stringa casuale per codificare i dati della sessione. Una stringa di esempio sarà simile a questa.
secret: uxvpXHhDxCFc9yU1hV1fMwjSoyVUzGh4WBMBBBa3XEgrRUF5OuB2h8iNl9JRDqcd
È possibile generare una stringa casuale utilizzando l' pwgen
utilità. Installa pwgen
eseguendo sudo apt -y install pwgen
. Per generare una stringa casuale, esegui pwgen -s 64 1
.
Salvare il file ed uscire dall'editor. Installa le dipendenze PHP richieste tramite compositore.
sudo composer install --prefer-dist --no-dev
L'utilizzo --no-dev
garantirà che Composer installi solo le dipendenze richieste per eseguire il server Web in modalità di produzione. Lo script richiederà alcuni minuti per scaricare e installare le dipendenze PHP richieste.
Installa l'applicazione.
sudo php app/console oro:install --env=prod
Questo costruirà la cache web e scriverà il database. Il --env=prod
parametro viene fornito per installare l'applicazione in modalità di produzione. L'installazione procederà solo se tutte le dipendenze richieste sono installate e configurate.
Durante l'installazione, ti verranno poste alcune domande per la configurazione dell'account amministratore. Le domande sono le seguenti.
Administration setup.
Application URL (http://localhost): http://crm.example.com
Organization name (OroCRM): My Org
Username (admin): admin
Email: [email protected]
First name: John
Last name: Doe
Password:
Load sample data (y/n): y
Fornire le informazioni. Caricare i dati di esempio per valutare il prodotto prima di utilizzarlo per la produzione.
Riscalda la cache della documentazione API:
sudo php app/console oro:api:doc:cache:clear
Configurazione di Nginx, Firewall e autorizzazioni
Creare un file di blocco del server Nginx per servire l'applicazione agli utenti.
sudo nano /etc/nginx/sites-available/orocrm
Popolare il file.
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:/run/php/php7.1-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;
}
Assicurati di modificare il crm.example.com
nome del tuo dominio attuale. La configurazione sopra include anche la configurazione richiesta per la compressione GZip e la memorizzazione nella cache del browser. La compressione Gzip comprime i dati prima di inviarli al browser. L'abilitazione della memorizzazione nella cache del browser memorizza le risorse statiche nella cache Web del computer client. La volta successiva che l'utente accede al sito, la maggior parte del contenuto statico viene caricato dalla cache Web dell'utente. Questi due metodi aumentano notevolmente la velocità dell'applicazione.
Abilita il sito.
sudo ln -s /etc/nginx/sites-available/orocrm /etc/nginx/sites-enabled/orocrm
Controllare il file di configurazione Nginx per eventuali errori.
sudo nginx -t
L'output dovrebbe essere simile al seguente.
user@vultr:/usr/share/nginx/orocrm$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Fornire la proprietà dei file OroCRM all'utente Nginx.
sudo chown -R www-data:www-data /usr/share/nginx/orocrm
Riavvia Nginx per applicare la nuova configurazione.
sudo systemctl restart nginx
Ora puoi accedere all'applicazione all'indirizzo http://crm.example.com
. Accedi utilizzando l'amministratore username
e password
hai impostato durante l'installazione.
Imposta attività pianificate e lavori in background
Per eseguire automaticamente le attività pianificate è possibile aggiungere una voce di lavoro Cron. Aprire crontab
.
sudo crontab -e
Aggiungi la seguente riga al file.
*/1 * * * * /usr/bin/php /usr/share/nginx/orocrm/app/console oro:cron --env=prod > /dev/null
Questo eseguirà il processo cron ogni minuto in modo che le attività pianificate come le code di posta elettronica vengano elaborate prima.
Sarà inoltre necessario impostare Supervisor per eseguire il servizio Coda messaggi. È necessario che almeno un processo sia sempre in esecuzione affinché un consumatore elabori i messaggi. Un consumatore può normalmente interrompere il processo del messaggio in molti modi. Per garantire che il servizio funzioni continuamente, utilizzeremo il servizio di supervisore. Configureremo Supervisor per eseguire quattro processi in parallelo. Se uno qualsiasi dei quattro processi viene interrotto per qualsiasi motivo, il supervisore proverà a riavviarlo.
Installa supervisore.
sudo apt -y install supervisor
Creare un nuovo file di configurazione del supervisore.
sudo nano /etc/supervisor/conf.d/orocrm.conf
Aggiungi le seguenti righe al file.
[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=www-data
redirect_stderr=true
Avvia e abilita Supervisor per l'avvio automatico all'avvio.
sudo systemctl restart supervisor
sudo systemctl enable supervisor
È possibile visualizzare lo stato dei processi eseguendo quanto segue.
sudo supervisorctl status
Dovresti vedere che i processi sono in esecuzione.
user@vultr:/usr/share/nginx/orocrm$ sudo supervisorctl status
oro_message_consumer:oro_message_consumer_00 RUNNING pid 20809, uptime 0:00:01
oro_message_consumer:oro_message_consumer_01 RUNNING pid 20808, uptime 0:00:01
oro_message_consumer:oro_message_consumer_02 RUNNING pid 20807, uptime 0:00:01
oro_message_consumer:oro_message_consumer_03 RUNNING pid 20806, uptime 0:00:01
OroCRM è ora installato sul tuo server. Ora puoi utilizzare l'applicazione per gestire le attività di routine della tua organizzazione. Per ulteriori informazioni su OroCRM, è possibile visitare il sito Web ufficiale .