Come installare SuiteCRM con Nginx su CentOS 7

SuiteCRM è un software CRM (Customer Relationship Management) open source basato su PHP. È il fork del popolare software CRM SugarCRM, ed è diventato più popolare dopo che il team di quest'ultimo ha deciso di interrompere lo sviluppo della versione gratuita. SuiteCRM è stato nominato come miglior software CRM open source presso BOSSIE 2015 e 2016.

In this tutorial, we will show you how to install and configure SuiteCRM using Nginx as the Web server. The CRM software will run under the LEMP stack with HTTPS enabled. And for this purpose, we'll be using CentOS 7 as the main OS.

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

  • CentOS 7 Server
  • Privilegi di root

Passo 1 - Installa il server Web Nginx

Il primo passo che dobbiamo fare per connettere il server e installare lo stack di base per SuiteCRM. Connettersi al server tramite SSH utilizzando il seguente comando:

ssh [protetto da email]

Dopo aver effettuato il collegamento come utente root, è necessario 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.

Installare il repository EPEL usando il comando yum nel modo seguente:

yum -y installa epel-release

Ora possiamo installare il server Web Nginx sul sistema.

yum -y installa nginx

Se l'installazione è completa, avviare il servizio e abilitarlo per l'esecuzione automatica all'avvio utilizzando il comando systemctl come mostrato di seguito.

systemctl start nginx
systemctl abilita nginx

Nginx web server is now installed, and by default, it's running on port 80. Check it using netstat or curl commands.

netstat -plntu
arricciatura -I localhost

Make sure port 80 is on the 'LISTEN' status, and the curl command gives 200 HTTP status code in its output.

Controlla se Nginx è in ascolto sulle porte corrette

Passo 2 - Installa e configura PHP-FPM

In this step, we will install and configure PHP-FPM version 7 on the CentOS 7 server. By default, centOS doesn't provide repository for the new PHP version 7. So we need to add a different repository for PHP-FPM 7 installation.

Add new PHP 7 repository 'webtatic' to the system using the rpm command.

sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Ora installa pacchetti ed estensioni PHP 7 usando il comando yum come mostrato sotto.

sudo yum install -y php71w-fpm php71w-cli php71w-comune php71w-imap php71w-gd php71w-mbstring php71w-mcrypt php71w-mysql php71w-xml

If the installation is complete, edit the default 'php.ini' configuration file using vim.

vim /etc/php.ini

Modifica la dimensione massima del file di caricamento per l'installazione di SuiteCRM su 100MB. Per lo meno, SuiteCRM ha bisogno di più di 6MB.

upload_max_filesize = 100M

Decommentare la seguente riga CGI e modificare il valore in 0.

cgi.fix_pathinfo = 0

For the session path configuration, uncomment the line and change the path to '/var/lib/session' as shown below.

session.save_path = "/ var / lib / php / session"

That's it. Save the changes and exit vim.

Now create a new directory for the session path and change the ownership permissions of the directory to 'nginx' user and group.

mkdir -p / var / lib / php / session
chown -R nginx: nginx / var / lib / php / session

Next, we need to edit the php-fpm configuration. For this, go to the '/etc/php-fpm.d' directory and edit the configuration file www.conf.

cd /etc/php-fpm.d/
vim www.conf

Now change user and group line to 'nginx'.

utente = nginx group = nginx

Invece di utilizzare la porta di sistema, PHP-FPM verrà eseguito con il file socket unix.

Change the 'listen' line:

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 e esci dall'editor.

Ora avvia il servizio PHP-FPM e aggiungilo per avviarlo automaticamente all'avvio.

systemctl avvia php-fpm
systemctl abilita php-fpm

Con questo, PHP-FPM è installato ed esegue il file socket.

Puoi verificarlo usando il comando netstat:

netstat -pl | grep php

Assicurati di vedere il file php-fpm.sock.

Configura PHP-FPM

Passo 3 - Installa e configura MariaDB

In questo passaggio installeremo MariaDB, quindi lo avvieremo e lo abiliteremo per avviarlo ogni volta all'avvio del sistema. Infine, creeremo un nuovo database e un 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 ad avviare il tempo di avvio usando i comandi sottostanti.

systemctl start mariadb
systemctl abilita mariadb

So MariaDB is now installed and running. Now, we need to configure the root password using 'mysql_secure_installation' command.

mysql_secure_installation

Ti verrà chiesto della configurazione, digita "S" e premi "Invio".

Imposta la password di root? [S / n] Y Nuova password: reinserisci nuova password: rimuovi gli utenti anonimi? [S / n] S Disabilitare il login di root da remoto? [S / n] Y Rimuovere il database di test e accedervi? [Y / n] Y Ricarica le tabelle dei privilegi adesso? [S / n] Y

Quindi la password di root di MariaDB è stata configurata.

Next, we need to create a new database and a new user for SuiteCRM installation. For this, log in to the MySQL shell with user 'root' and your password.

mysql -u root -p

Create a new database named 'suitecrm_db' and a new user 'crmadmin' with password 'hakase-labs123'. All this can be done using the mysql queries below.

CREATE DATABASE suitecrm_db;
CREA UTENTE 'crmadmin' @ 'localhost' IDENTIFICATO DA 'hakase-labs123';
CONCEDERE TUTTI I PRIVILEGI SU suitecrm_db. * A 'crmadmin' @ 'localhost';
FLUSH PRIVILEGES;

Quindi la configurazione del database per l'installazione di SuiteCRM è stata completata.

Crea il database SuiteCRM

Passo 4 - Scarica e configura SuiteCRM

In this step, we will do some tasks for SuiteCRM installation. We will download the SuiteCRM source code, configure Firewalld, Generate new SSL Letsencrypt, and configure the nginx virtual host for SuiteCRM. So let's begin.

Scarica SuiteCRM

Se non lo è già, installa git sul tuo sistema usando il comando yum qui sotto.

yum -y installa git

Now go to the '/opt' directory and download SuiteCRM code using git command as shown below.

cd / opt /
git clone https://github.com/salesagility/SuiteCRM.git suitecrm

Scarica SuiteCRM

After that, create a cache directory, change permissions for some files and directories in the suitecrm directory, and then change the owner of all suitecrm code to 'nginx' user and group.

cd / opt / suitecrm
mkdir -p / opt / suitecrm / cache
chmod -R 775 cache moduli personalizzati temi caricamento dati config_override.php
nginx chown: nginx -R / opt / suitecrm

So the suiteCRM code has been downloaded onto the server on '/opt/suitecrm/' directory.

Creare articoli

Configura Firewalld

Se Firewalld non è in esecuzione sul server, installarlo utilizzando il seguente comando.

yum -y installa firewalld

Avviare il servizio e abilitarlo per l'esecuzione al momento dell'avvio.

systemctl start firewalld
systemctl enable firewalld

Next, we need to open new ports HTTP and HTTPS. It's used for SuiteCRM access. Run the following firewall-cmd commands for this.

firewall-cmd --add-service = http --permanent
firewall-cmd --add-service = https --permanent

Ora ricarica le regole di firewalld usando il seguente comando.

firewall-cmd --reload

Configura il firewall

Così ora, nuove porte HTTP e HTTPS sono state aggiunte a Firewalld. Se si desidera visualizzare la configurazione dei dettagli, eseguire il comando seguente.

firewall-cmd --list-all

Elenca le impostazioni del firewall

Genera nuovo SSL Letsencrypt

In questo tutorial, utilizzeremo SSL per l'accesso SuiteCRM. E useremo certificati SSL gratuiti da Letencrypt per quello scopo.

To generate new SSL letsencrypt certificates, we need to first install the letsencrypt command tool 'certbot' to our system. It's available in the CentOS repository. Install certbot using the following yum command.

yum -y installa certbot

When the certbot installation is complete, generate SSL certificate file for suiteCRM domain name 'suitecrm.hakase-labs.co'.

Eseguire il comando seguente per generare i file del certificato SSL.

certbot certonly --standalone -d suitecrm.hakase-labs.co

You will be asked about the email address for renewing notification - type your email and press Enter to continue.

For the Letsencrypt TOS, type 'A' to agree and press Enter again. And for the share email address query, type 'N' and press Enter.

Crea un certificato SSL

Una volta completata la generazione del certificato, otterrai il risultato come di seguito.

Certificato SSL creato con successo

New certificate files are generated in the '/etc/letsencrypt/live/domain.com' directory.

Configura l'host virtuale NCR di SuiteCRM

Go to the Nginx configuration directory '/etc/nginx', and create a new file suitecrm.conf file in the conf.d directory using Vim editor.

cd / etc / nginx /
vim conf.d / suitecrm.conf

Lì, incolla qui sotto l'host virtuale SuiteCRM Nginx.

# 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;
}
}

That's it. Save the change and exit Vim.

Ora prova la configurazione di nginx e assicurati che non ci siano errori. Fatto ciò, riavviare il servizio.

nginx -t
systemctl restart nginx

Con questo, la configurazione di nginx per l'installazione di SuiteCRM è stata completata.

Configura Nginx per SuiteCRM

Passo 5 - Programma di installazione Web SuiteCRM

Open your Web browser and visit the SuiteCRM domain name: 'suitecrm.hakase-labs.co'.

You will be redirected to the HTTPS connection install.php, and you will get the page about GNU AFFERO License. Check the 'I Accept' box and click 'Next'.

Programma di installazione web SuiteCRM

On the system environment page, make sure all the results are 'OK'.

Verifica i prerequisiti

And click 'Next' to continue.

Segue la configurazione dell'amministratore e del database. Inserisci le informazioni del tuo database, come dbname, dbuser e dbpassword. Per la configurazione dell'amministratore, inserisci il tuo nome utente, e-mail e password.

Impostazioni del database

Scorri fino in fondo e fai clic su 'Avanti' per continuare l'installazione di SuiteCRM.

Attendi un momento, al termine dell'installazione, e sarai reindirizzato alla pagina di accesso come mostrato di seguito.

Accesso SuiteCRM

On this page, type the admin user and password, then press the 'Log in' button.

And you'll get the SuiteCRM Dashboard as shown below.

Cruscotto SuiteCRM

Quindi SuiteCRM è stato installato.

Passo 6 - Configurazione finale

In questo ultimo passaggio, dobbiamo aggiungere la configurazione al cronjob.

Fondamentalmente, abbiamo bisogno di creare un nuovo cron come utente e gruppo di nginx.

sudo crontab -e -u nginx

E incollare la seguente configurazione.

* * * * * cd / opt / suitecrm; php -f cron.php> / dev / null 2> & 1

Salva ed esci.

That's it. The SuiteCRM installation with Nginx web server on CentOS 7 has been completed.

Riferimento

Fonte

post correlati

Lascia un Commento

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati dei tuoi commenti.