GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come installare SuiteCRM con Nginx su CentOS 7

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

  1. Installa il server Web Nginx
  2. Installa e configura PHP-FPM
  3. Installa e configura MariaDB
  4. Scarica e configura SuiteCRM
  5. Installa SuiteCRM tramite il programma di installazione Web
  6. 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.


Cent OS
  1. Come installare Nginx su CentOS 7

  2. Come installare WordPress con Nginx su CentOS 7

  3. Installa Nginx con ngx_pagespeed su CentOS 7

  4. Come installare phpMyAdmin con Nginx su CentOS 7 / RHEL 7

  5. Come installare Sitemagic CMS su CentOS 7 – Con Nginx

Come installare Nginx su CentOS

Come installare Nginx con ngx_pagespeed su CentOS

Come installare Nginx con PHP-FastCGI su CentOS 6

Come installare Magento con Nginx su CentOS 7

Come installare Laravel con Nginx su CentOS 8

Come installare Nginx su CentOS 7?