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 ecc. È 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 CentOS 7 . 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 yum -y install nginx
Avvia Nginx e abilita l'avvio automatico all'avvio.
sudo systemctl start nginx
sudo systemctl enable nginx
PHP 7 non è disponibile nel repository YUM predefinito, ma possiamo usare il repository Remi per ottenere e installare gli ultimi build di PHP 7. Innanzitutto, aggiungi e abilita il repository 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
Installa l'ultima versione di PHP 7 insieme ai moduli PHP richiesti da 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
Modifica il file di configurazione PHP predefinito.
sudo nano /etc/php.ini
Trova le seguenti righe. Sblocca e apporta le modifiche come mostrato.
date.timezone = Asia/Kolkata
;Replace "Asia/Kolkata" with your appropriate timezone
memory_limit = 512M
cgi.fix_pathinfo=0
Modifica il file di configurazione PHP-FPM.
sudo nano /etc/php-fpm.d/www.conf
Per impostazione predefinita, PHP-FPM è configurato per funzionare con Apache e per ascoltare la porta 9000
. Dovremo cambiare l'utente e il gruppo, così come il file socket Unix su cui verrà eseguito. Trova le seguenti righe e apporta le modifiche necessarie come mostrato.
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
Avvia PHP-FPM e abilitalo all'avvio.
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
Fornire la proprietà del file socket PHP-FPM all'utente Nginx.
sudo chown nginx:nginx /var/run/php-fpm/php-fpm.sock
Installa MariaDB
MariaDB è un fork open source di MySQL. Installa MariaDB.
sudo yum -y install mariadb mariadb-server
Avviare MariaDB e abilitare l'avvio automatico all'avvio.
sudo systemctl start mariadb
sudo systemctl enable mariadb
L'installazione predefinita di MariaDB include alcuni database di test e utenti anonimi. Prima di configurare il database, è necessario prima proteggere il server MariaDB. Puoi proteggerlo eseguendo lo mysql_secure_installation
script.
sudo mysql_secure_installation
Ti verrà chiesta la password di root di MariaDB corrente. Per impostazione predefinita, non esiste una password di root in una nuova installazione di MariaDB. Premere il Enter
tasto per procedere. Imposta una password complessa per l'utente root del tuo server MariaDB e rispondi Y
a tutte le altre domande poste. Le domande poste sono autoesplicative.
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 CentOS contiene una versione obsoleta di Node.js, quindi sarà necessario aggiungere il repository Nodesource al sistema per ottenere l'ultima versione.
sudo curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
Installa Node.js e Git.
sudo yum -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
php -r "unlink('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.3 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 l' pwgen
utilità eseguendo sudo yum -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 Organization
Username (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/conf.d/orocrm.conf
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:/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;
}
Assicurati di cambiare il crm.example.com
con il tuo vero nome di dominio. 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.
Controllare il file di configurazione Nginx per eventuali errori.
sudo nginx -t
L'output dovrebbe essere simile al seguente.
[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
Fornire la proprietà dei file OrOCRM all'utente Nginx.
sudo chown -R nginx:nginx /usr/share/nginx/orocrm
Riavvia Nginx per applicare la nuova configurazione.
sudo systemctl restart nginx
Se stai eseguendo un firewall sul tuo server, dovrai configurare il firewall per impostare un'eccezione per il servizio HTTP. Consenti a Nginx di connettersi dall'esterno della rete.
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-service=https
sudo firewall-cmd --reload
Ora puoi accedere all'applicazione all'indirizzo http://crm.example.com
. Accedi utilizzando il nome utente e la password dell'amministratore che 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 yum -y install supervisor
Modifica il file di configurazione del supervisore.
sudo nano /etc/supervisord.conf
Aggiungi le seguenti righe alla fine del 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=nginx
redirect_stderr=true
Avvia e abilita Supervisor per l'avvio automatico all'avvio.
sudo systemctl start supervisord
sudo systemctl enable supervisord
È possibile visualizzare lo stato dei processi eseguendo quanto segue.
sudo supervisorctl status
Dovresti vedere che i processi sono in esecuzione.
[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 è 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 .