SuiteCRM è un software open source CRM (Customer Relationship Management) basato su PHP. È un fork del popolare software CRM SugarCRM ed è diventato più popolare dopo che il team dietro quest'ultimo ha deciso di interrompere lo sviluppo della versione gratuita. SuiteCRM è stato nominato miglior software CRM open source a BOSSIE 2015 e 2016.
In questo tutorial, ti mostreremo come installare e configurare SuiteCRM utilizzando Nginx come server Web. Il software CRM verrà eseguito sotto lo stack LEMP con HTTPS abilitato. E a questo scopo, utilizzeremo CentOS 7 come sistema operativo principale.
Cosa faremo
- Installa il server Web Nginx
- Installa e configura PHP-FPM
- Installa e configura MariaDB
- Scarica e configura SuiteCRM
- Installa SuiteCRM tramite il programma di installazione Web
- Configurazione finale
Prerequisiti
- Server CentOS 7
- Privilegi di root
Passaggio 1:installazione del server Web Nginx
Il primo passaggio che dobbiamo fare per connettere il server e installare lo stack di base per SuiteCRM. Connettiti al server tramite SSH utilizzando il seguente comando:
ssh [email protected]
Dopo la connessione come utente root, dobbiamo installare un repository di terze parti sul nostro sistema. In particolare, è necessario installare il repository EPEL (Extra Package for Enterprise Linux) sul sistema prima di installare Nginx.
Installa il repository EPEL usando il comando yum nel modo seguente:
yum -y install epel-release
Ora possiamo installare il server web Nginx sul sistema.
yum -y install nginx
Se l'installazione è completa, avvia il servizio e abilitalo all'esecuzione automatica all'avvio utilizzando il comando systemctl come mostrato di seguito.
systemctl start nginx
systemctl enable nginx
Il server web Nginx è ora installato e, per impostazione predefinita, è in esecuzione sulla porta 80. Verificalo utilizzando i comandi netstat o curl.
netstat -plntu
curl -I localhost
Assicurati che la porta 80 sia nello stato "LISTEN" e che il comando curl fornisca 200 codici di stato HTTP nel suo output.
Fase 2 - Installa e configura PHP-FPM
In questo passaggio, installeremo e configureremo PHP-FPM versione 7 sul server CentOS 7. Per impostazione predefinita, centOS non fornisce un repository per la nuova versione PHP 7. Quindi è necessario aggiungere un repository diverso per l'installazione di PHP-FPM 7.
Aggiungi il nuovo repository PHP 7 'webtatic' al sistema usando il comando rpm.
sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Ora installa i pacchetti e le estensioni di PHP 7 usando il comando yum come mostrato di seguito.
sudo yum install -y php71w-fpm php71w-cli php71w-common php71w-imap php71w-gd php71w-mbstring php71w-mcrypt php71w-mysql php71w-xml
Se l'installazione è completa, modifica il file di configurazione predefinito 'php.ini' usando vim.
vim /etc/php.ini
Modificare la dimensione massima del file di caricamento per l'installazione di SuiteCRM a 100 MB. Come minimo, SuiteCRM ha bisogno di più di 6 MB.
upload_max_filesize = 100M
Decommenta la seguente riga CGI e cambia il valore in 0.
cgi.fix_pathinfo=0
Per la configurazione del percorso della sessione, decommenta la riga e cambia il percorso in '/var/lib/session' come mostrato di seguito.
session.save_path = "/var/lib/php/session"
Questo è tutto. Salva le modifiche ed esci da vim.
Ora crea una nuova directory per il percorso della sessione e cambia i permessi di proprietà della directory in utente e gruppo 'nginx'.
mkdir -p /var/lib/php/session
chown -R nginx:nginx /var/lib/php/session
Successivamente, dobbiamo modificare la configurazione php-fpm. Per questo, vai nella directory '/etc/php-fpm.d' e modifica il file di configurazione www.conf.
cd /etc/php-fpm.d/
vim www.conf
Ora cambia la riga utente e gruppo in 'nginx'.
user = nginx
group = nginx
Invece di utilizzare la porta di sistema, PHP-FPM verrà eseguito nel file socket unix.
Cambia la riga 'ascolta':
listen = /var/run/php-fpm/php-fpm.sock
Imposta l'autorizzazione per il file socket Unix e la proprietà del file socket come mostrato di seguito.
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
Questo è tutto. Salva le modifiche ed esci dall'editor.
Ora avvia il servizio PHP-FPM e aggiungilo per avviarlo automaticamente all'avvio.
systemctl start php-fpm
systemctl enable php-fpm
Con questo, PHP-FPM viene installato ed esegue il file socket.
Puoi verificarlo utilizzando il comando netstat:
netstat -pl | grep php
Assicurati di vedere il file php-fpm.sock.
Fase 3 - Installa e configura MariaDB
In questo passaggio, installeremo MariaDB, quindi lo avvieremo e lo consentiremo per l'avvio ogni volta all'avvio del sistema. Infine, creeremo un nuovo database e un nuovo utente per l'installazione di SuiteCRM.
Installa mariadb dal repository CentOS usando il seguente comando yum.
yum install -y mariadb mariadb-server
Avvia il servizio MariaDB e abilitalo per avviare il tempo di avvio utilizzando i comandi seguenti.
systemctl start mariadb
systemctl enable mariadb
Quindi MariaDB è ora installato e funzionante. Ora dobbiamo configurare la password di root usando il comando 'mysql_secure_installation'.
mysql_secure_installation
Ti verrà chiesto della configurazione, digita 'Y' e premi 'Invio'.
Set root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
Quindi la password di root di MariaDB è stata configurata.
Successivamente, dobbiamo creare un nuovo database e un nuovo utente per l'installazione di SuiteCRM. Per questo, accedi alla shell MySQL con l'utente 'root' e la tua password.
mysql -u root -p
Crea un nuovo database chiamato 'suitecrm_db' e un nuovo utente 'crmadmin' con password 'hakase-labs123'. Tutto questo può essere fatto utilizzando le query MySQL di seguito.
CREATE DATABASE suitecrm_db;
CREATE USER 'crmadmin'@'localhost' IDENTIFIED BY 'hakase-labs123';
GRANT ALL PRIVILEGES ON suitecrm_db.* TO 'crmadmin'@'localhost';
FLUSH PRIVILEGES;
Quindi la configurazione del database per l'installazione di SuiteCRM è stata completata.
Passaggio 4 - Scarica e configura SuiteCRM
In questo passaggio, eseguiremo alcune attività per l'installazione di SuiteCRM. Scaricheremo il codice sorgente di SuiteCRM, configureremo Firewalld, genereremo nuovo SSL Letsencrypt e configureremo l'host virtuale nginx per SuiteCRM. Allora cominciamo.
Scarica SuiteCRM
Se non lo sei già, installa git sul tuo sistema usando il comando yum qui sotto.
yum -y install git
Ora vai nella directory '/opt' e scarica il codice SuiteCRM usando il comando git come mostrato di seguito.
cd /opt/
git clone https://github.com/salesagility/SuiteCRM.git suitecrm
Successivamente, crea una directory cache, modifica i permessi per alcuni file e directory nella directory suitecrm, quindi cambia il proprietario di tutto il codice suitecrm in utente e gruppo 'nginx'.
cd /opt/suitecrm
mkdir -p /opt/suitecrm/cache
chmod -R 775 cache custom modules themes data upload config_override.php
chown nginx:nginx -R /opt/suitecrm
Quindi il codice suiteCRM è stato scaricato sul server nella directory '/opt/suitecrm/'.
Configura Firewalld
Se non hai Firewalld in esecuzione sul tuo server, installalo usando il comando seguente.
yum -y install firewalld
Avvia il servizio e abilitalo all'esecuzione all'avvio.
systemctl start firewalld
systemctl enable firewalld
Successivamente, dobbiamo aprire nuove porte HTTP e HTTPS. Viene utilizzato per l'accesso a SuiteCRM. Esegui i seguenti comandi firewall-cmd per questo.
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
Ora ricarica le regole firewalld usando il seguente comando.
firewall-cmd --reload
Quindi ora, nuove porte HTTP e HTTPS sono state aggiunte al Firewalld. Se vuoi vedere i dettagli della configurazione, esegui il comando seguente.
firewall-cmd --list-all
Genera nuovo SSL Letsencrypt
In questo tutorial, utilizzeremo SSL per l'accesso a SuiteCRM. E a tale scopo utilizzeremo i certificati SSL gratuiti diletsencrypt.
Per generare nuovi certificati SSL Letencrypt, dobbiamo prima installare lo strumento di comando Letencrypt 'certbot' sul nostro sistema. È disponibile nel repository CentOS. Installa certbot usando il seguente comando yum.
yum -y install certbot
Al termine dell'installazione di certbot, genera il file del certificato SSL per il nome di dominio suiteCRM 'suitecrm.hakase-labs.co'.
Esegui il comando seguente per generare file di certificato SSL.
certbot certonly --standalone -d suitecrm.hakase-labs.co
Ti verrà chiesto l'indirizzo email per la notifica di rinnovo:digita la tua email e premi Invio per continuare.
Per i TOS di Letsencrypt, digitare "A" per accettare e premere nuovamente Invio. E per la query sull'indirizzo email di condivisione, digita "N" e premi Invio.
Al termine della generazione del certificato, otterrai il risultato come di seguito.
I nuovi file di certificato vengono generati nella directory '/etc/letsencrypt/live/domain.com'.
Configura l'host virtuale SuiteCRM Nginx
Vai alla directory di configurazione di Nginx '/etc/nginx' e crea un nuovo file suitecrm.conf nella directory conf.d usando l'editor Vim.
cd /etc/nginx/
vim conf.d/suitecrm.conf
Lì, incolla l'host virtuale SuiteCRM Nginx di seguito.
# Server Config - hakase-labs
server {
listen 80;
server_name suitecrm.hakase-labs.co;
# Automatically redirect to HTTPS
return 301 https://$host$request_uri;
}
# Nginx SSL for SuiteCRM
server {
server_name suitecrm.hakase-labs.co;
# Enable http2
listen 443 http2 ssl;
# SSL Config
ssl_certificate /etc/letsencrypt/live/suitecrm.hakase-labs.co/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/suitecrm.hakase-labs.co/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
client_max_body_size 50M;
index index.php index.html index.htm;
root /opt/suitecrm;
location / {
root /opt/suitecrm;
index index.php index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
error_log /var/log/nginx/suitecrm.irsyadf.me.error.log;
location = /50x.html {
root /usr/share/nginx/html;
}
## Images and static content is treated different
location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|xml|svg|wgoff2)$ {
access_log off;
expires max;
root /opt/suitecrm;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
Questo è tutto. Salva la modifica ed esci da Vim.
Ora prova la configurazione di nginx e assicurati che non ci siano errori. Fatto ciò, riavvia il servizio.
nginx -t
systemctl restart nginx
Con questo, la configurazione di nginx per l'installazione di SuiteCRM è stata completata.
Fase 5 - Programma di installazione Web di SuiteCRM
Apri il tuo browser Web e visita il nome di dominio SuiteCRM:'suitecrm.hakase-labs.co'.
Verrai reindirizzato alla connessione HTTPS install.php e otterrai la pagina sulla licenza GNU AFFERO. Seleziona la casella "Accetto" e fai clic su "Avanti".
Nella pagina dell'ambiente di sistema, assicurati che tutti i risultati siano "OK".
E fai clic su "Avanti" per continuare.
Poi arriva la configurazione dell'amministratore e del database. Digita le informazioni sul database, come dbname, dbuser e dbpassword. Per la configurazione dell'amministratore, digita il tuo nome utente, email e password.
Scorri fino in fondo e fai clic su "Avanti" per continuare l'installazione di SuiteCRM.
Attendi qualche istante, al termine dell'installazione, e verrai reindirizzato alla pagina di accesso come mostrato di seguito.
In questa pagina, digita l'utente amministratore e la password, quindi premi il pulsante "Accedi".
E otterrai la dashboard di SuiteCRM come mostrato di seguito.
Quindi SuiteCRM è stato installato.
Fase 6 - Configurazione finale
In quest'ultimo passaggio, dobbiamo aggiungere la configurazione al cronjob.
Fondamentalmente, dobbiamo creare un nuovo cron come utente e gruppo nginx.
sudo crontab -e -u nginx
E incolla la seguente configurazione.
* * * * * cd /opt/suitecrm; php -f cron.php > /dev/null 2>&1
Salva ed esci.
Questo è tutto. L'installazione di SuiteCRM con il server web Nginx su CentOS 7 è stata completata.