GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment installer SuiteCRM avec Nginx sur CentOS 7

SuiteCRM est un logiciel open source CRM (Customer Relationship Management) basé sur PHP. Il s'agit d'un fork du logiciel CRM populaire SugarCRM, et est devenu plus populaire après que l'équipe derrière ce dernier ait décidé d'arrêter le développement de la version gratuite. SuiteCRM a été nommé meilleur logiciel CRM open source aux BOSSIE 2015 et 2016.

Dans ce tutoriel, nous allons vous montrer comment installer et configurer SuiteCRM en utilisant Nginx comme serveur Web. Le logiciel CRM fonctionnera sous la pile LEMP avec HTTPS activé. Et à cette fin, nous utiliserons CentOS 7 comme système d'exploitation principal.

Ce que nous allons faire

  1. Installer le serveur Web Nginx
  2. Installer et configurer PHP-FPM
  3. Installer et configurer MariaDB
  4. Télécharger et configurer SuiteCRM
  5. Installer SuiteCRM via le programme d'installation Web
  6. Configuration finale

Prérequis

  • Serveur CentOS 7
  • Privilèges root

Étape 1 - Installer le serveur Web Nginx

La première étape que nous devons faire pour connecter le serveur et installer la pile de base pour SuiteCRM. Connectez-vous au serveur via SSH à l'aide de la commande suivante :

ssh [email protected]

Après s'être connecté en tant qu'utilisateur root, nous devons installer un référentiel tiers sur notre système. Plus précisément, nous devons installer le référentiel EPEL (Extra Package for Enterprise Linux) sur le système avant d'installer Nginx.

Installez le référentiel EPEL à l'aide de la commande yum de la manière suivante :

yum -y install epel-release

Nous pouvons maintenant installer le serveur Web Nginx sur le système.

yum -y install nginx

Si l'installation est terminée, démarrez le service et activez-le pour qu'il s'exécute automatiquement au démarrage à l'aide de la commande systemctl comme indiqué ci-dessous.

systemctl start nginx
systemctl enable nginx

Le serveur Web Nginx est maintenant installé et, par défaut, il s'exécute sur le port 80. Vérifiez-le à l'aide des commandes netstat ou curl.

netstat -plntu
curl -I localhost

Assurez-vous que le port 80 est sur le statut 'LISTEN' et que la commande curl donne le code de statut HTTP 200 dans sa sortie.

Étape 2 - Installer et configurer PHP-FPM

Dans cette étape, nous allons installer et configurer PHP-FPM version 7 sur le serveur CentOS 7. Par défaut, centOS ne fournit pas de référentiel pour la nouvelle version PHP 7. Nous devons donc ajouter un référentiel différent pour l'installation de PHP-FPM 7.

Ajoutez le nouveau référentiel PHP 7 "webtatic" au système à l'aide de la commande rpm.

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

Installez maintenant les packages et les extensions PHP 7 à l'aide de la commande yum comme indiqué ci-dessous.

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

Si l'installation est terminée, modifiez le fichier de configuration par défaut "php.ini" à l'aide de vim.

vim /etc/php.ini

Modifiez la taille maximale du fichier de téléchargement pour l'installation de SuiteCRM à 100 Mo. À tout le moins, SuiteCRM a besoin de plus de 6 Mo.

upload_max_filesize = 100M

Décommentez la ligne CGI suivante et changez la valeur en 0.

cgi.fix_pathinfo=0

Pour la configuration du chemin de session, décommentez la ligne et changez le chemin en '/var/lib/session' comme indiqué ci-dessous.

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

C'est ça. Enregistrez les modifications et quittez vim.

Créez maintenant un nouveau répertoire pour le chemin de la session et modifiez les autorisations de propriété du répertoire en utilisateur et groupe "nginx".

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

Ensuite, nous devons modifier la configuration de php-fpm. Pour cela, allez dans le répertoire '/etc/php-fpm.d' et éditez le fichier de configuration www.conf.

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

Changez maintenant la ligne d'utilisateur et de groupe en 'nginx'.

user = nginx
group = nginx

Au lieu d'utiliser le port système, PHP-FPM s'exécutera sous le fichier socket unix.

Modifiez la ligne "écouter" :

listen = /var/run/php-fpm/php-fpm.sock

Définissez l'autorisation pour le fichier de socket Unix et la propriété du fichier de socket comme indiqué ci-dessous.

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

C'est ça. Enregistrez les modifications et quittez l'éditeur.

Démarrez maintenant le service PHP-FPM et ajoutez-le pour qu'il démarre automatiquement au démarrage.

systemctl start php-fpm
systemctl enable php-fpm

Avec cela, PHP-FPM est installé et exécute le fichier socket.

Vous pouvez le vérifier à l'aide de la commande netstat :

netstat -pl | grep php

Assurez-vous de voir le fichier php-fpm.sock.

Étape 3 - Installer et configurer MariaDB

Dans cette étape, nous allons installer MariaDB, puis démarrer et lui permettre de se lancer à chaque démarrage du système. Et enfin, nous allons créer une nouvelle base de données et un nouvel utilisateur pour l'installation de SuiteCRM.

Installez mariadb à partir du référentiel CentOS à l'aide de la commande yum suivante.

yum install -y mariadb mariadb-server

Démarrez le service MariaDB et activez-le pour lancer le temps de démarrage à l'aide des commandes ci-dessous.

systemctl start mariadb
systemctl enable mariadb

Donc MariaDB est maintenant installé et en cours d'exécution. Maintenant, nous devons configurer le mot de passe root à l'aide de la commande 'mysql_secure_installation'.

mysql_secure_installation

On vous posera des questions sur la configuration, tapez 'Y' et appuyez sur 'Entrée'.

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

Le mot de passe root de MariaDB a donc été configuré.

Ensuite, nous devons créer une nouvelle base de données et un nouvel utilisateur pour l'installation de SuiteCRM. Pour cela, connectez-vous au shell MySQL avec l'utilisateur 'root' et votre mot de passe.

mysql -u root -p

Créez une nouvelle base de données nommée 'suitecrm_db' et un nouvel utilisateur 'crmadmin' avec le mot de passe 'hakase-labs123'. Tout cela peut être fait en utilisant les requêtes mysql ci-dessous.

CREATE DATABASE suitecrm_db;
CREATE USER 'crmadmin'@'localhost' IDENTIFIED BY 'hakase-labs123';
GRANT ALL PRIVILEGES ON suitecrm_db.* TO 'crmadmin'@'localhost';
FLUSH PRIVILEGES;

La configuration de la base de données pour l'installation de SuiteCRM est donc terminée.

Étape 4 - Télécharger et configurer SuiteCRM

Dans cette étape, nous effectuerons certaines tâches pour l'installation de SuiteCRM. Nous allons télécharger le code source de SuiteCRM, configurer Firewalld, générer un nouveau SSL Letsencrypt et configurer l'hôte virtuel nginx pour SuiteCRM. Alors commençons.

Télécharger SuiteCRM

Si ce n'est déjà fait, installez git sur votre système à l'aide de la commande yum ci-dessous.

yum -y install git

Allez maintenant dans le répertoire '/opt' et téléchargez le code SuiteCRM en utilisant la commande git comme indiqué ci-dessous.

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

Après cela, créez un répertoire de cache, modifiez les autorisations pour certains fichiers et répertoires dans le répertoire suitecrm, puis changez le propriétaire de tout le code suitecrm en utilisateur et groupe '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

Le code suiteCRM a donc été téléchargé sur le serveur dans le répertoire '/opt/suitecrm/'.

Configurer le pare-feud

Si vous n'avez pas Firewalld en cours d'exécution sur votre serveur, installez-le à l'aide de la commande suivante.

yum -y install firewalld

Démarrez le service et activez-le pour qu'il s'exécute au démarrage.

systemctl start firewalld
systemctl enable firewalld

Ensuite, nous devons ouvrir de nouveaux ports HTTP et HTTPS. Il est utilisé pour l'accès à SuiteCRM. Exécutez les commandes firewall-cmd suivantes pour cela.

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

Maintenant, rechargez les règles du pare-feu à l'aide de la commande suivante.

firewall-cmd --reload

Alors maintenant, de nouveaux ports HTTP et HTTPS ont été ajoutés au pare-feu. Si vous souhaitez voir la configuration détaillée, exécutez la commande ci-dessous.

firewall-cmd --list-all

Générer un nouveau SSL Letsencrypt

Dans ce didacticiel, nous utiliserons SSL pour l'accès à SuiteCRM. Et nous utiliserons des certificats SSL gratuits de Letsencrypt à cette fin.

Pour générer de nouveaux certificats SSL Letsencrypt, nous devons d'abord installer l'outil de commande Letsencrypt 'certbot' sur notre système. Il est disponible dans le référentiel CentOS. Installez certbot à l'aide de la commande yum suivante.

yum -y install certbot

Une fois l'installation du certbot terminée, générez un fichier de certificat SSL pour le nom de domaine suiteCRM "suitecrm.hakase-labs.co".

Exécutez la commande ci-dessous pour générer des fichiers de certificat SSL.

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

On vous demandera l'adresse e-mail pour renouveler la notification - saisissez votre e-mail et appuyez sur Entrée pour continuer.

Pour le TOS Letsencrypt, tapez 'A' pour accepter et appuyez à nouveau sur Entrée. Et pour la requête d'adresse e-mail de partage, tapez 'N' et appuyez sur Entrée.

Lorsque la génération du certificat est terminée, vous obtiendrez le résultat comme ci-dessous.

De nouveaux fichiers de certificat sont générés dans le répertoire '/etc/letsencrypt/live/domain.com'.

Configurer l'hôte virtuel SuiteCRM Nginx

Accédez au répertoire de configuration Nginx '/etc/nginx' et créez un nouveau fichier suitecrm.conf dans le répertoire conf.d à l'aide de l'éditeur Vim.

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

Là, collez l'hôte virtuel SuiteCRM Nginx ci-dessous.


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

}

C'est ça. Enregistrez la modification et quittez Vim.

Testez maintenant la configuration de nginx et assurez-vous qu'il n'y a pas d'erreur. Une fois cela fait, redémarrez le service.

nginx -t
systemctl restart nginx

Avec cela, la configuration nginx pour l'installation de SuiteCRM est terminée.

Étape 5 - Programme d'installation Web SuiteCRM

Ouvrez votre navigateur Web et visitez le nom de domaine SuiteCRM :'suitecrm.hakase-labs.co'.

Vous serez redirigé vers la connexion HTTPS install.php, et vous obtiendrez la page sur la licence GNU AFFERO. Cochez la case "J'accepte" et cliquez sur "Suivant".

Sur la page de l'environnement système, assurez-vous que tous les résultats sont "OK".

Et cliquez sur "Suivant" pour continuer.

Vient ensuite la configuration de l'administration et de la base de données. Tapez les informations de votre base de données, telles que dbname, dbuser et dbpassword. Pour la configuration de l'administrateur, saisissez votre nom d'utilisateur, votre adresse e-mail et votre mot de passe.

Faites défiler vers le bas et cliquez sur "Suivant" pour continuer l'installation de SuiteCRM.

Attendez un moment, lorsque l'installation est terminée, et vous serez redirigé vers la page de connexion comme indiqué ci-dessous.

Sur cette page, tapez l'utilisateur admin et le mot de passe, puis appuyez sur le bouton "Connexion".

Et vous obtiendrez le tableau de bord SuiteCRM comme indiqué ci-dessous.

SuiteCRM a donc été installé.

Étape 6 - Configuration finale

Dans cette dernière étape, nous devons ajouter la configuration au cronjob.

Fondamentalement, nous devons créer un nouveau cron en tant qu'utilisateur et groupe nginx.

sudo crontab -e -u nginx

Et collez la configuration suivante.

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

Enregistrez et quittez.

C'est ça. L'installation de SuiteCRM avec le serveur Web Nginx sur CentOS 7 est terminée.


Cent OS
  1. Comment installer Nginx sur CentOS 7

  2. Comment installer WordPress avec Nginx sur CentOS 7

  3. Installez Nginx avec ngx_pagespeed sur CentOS 7

  4. Comment installer phpMyAdmin avec Nginx sur CentOS 7 / RHEL 7

  5. Comment installer Sitemagic CMS sur CentOS 7 – Avec Nginx

Comment installer Nginx sur CentOS

Comment installer Nginx avec ngx_pagespeed sur CentOS

Comment installer Nginx avec PHP-FastCGI sur CentOS 6

Comment installer Magento avec Nginx sur CentOS 7

Comment installer Laravel avec Nginx sur CentOS 8

Comment installer Nginx sur CentOS 7 ?