Comment installer le logiciel CRM à code source ouvert EspoCRM sur Debian 9

Dans ce guide, nous allons te montrer comment installer et configurer la dernière version du logiciel EspoCRM sur Debian 9 au sommet d’une pile LAMP, afin de créer une plateforme de gestion de la relation client en ligne gratuite pour ton entreprise.

EspoCRM est une plateforme de gestion de la relation client (CRM) open source flexible et facile à utiliser, conçue pour être rapide, simple et personnalisable. Le logiciel est principalement écrit dans le langage de programmation PHP et peut être facilement déployé sous Linux au-dessus d’un serveur Web Apache ou Nginx, du langage de programmation PHP et du système de gestion de base de données MySQL ou MariaDB. EspoCRM prend en charge un grand nombre de langues et peut être déployé dans les centres d’appels, les banques, l’éducation, les soins de santé, le tourisme, la vente au détail, l’immobilier ou le commerce électronique.

Exigences

  • Installation minimale sur une machine virtuelle ou un serveur physique du système d’exploitation Debian 9
  • Des privilèges de compte root ou un compte avec des privilèges root via la commande sudo (accès local via la console ou accès distant via SSH)
  • Une des NIC du serveur configurée avec une adresse IP statique
  • Un nom de domaine public enregistré pour que tu puisses effectuer l’installation via l’interface Web et accéder au site Web de l’application. Dans les intranets, tu peux accéder à l’application via un domaine local ou via l’adresse IP de ton serveur
  • Un serveur de messagerie configuré dans tes locaux ou un accès à un service de messagerie public, tel que Gmail, Outlook, Yahoo !

Pré-requis

Tout d’abord, connecte-toi à la console de ton serveur Debian et assure-toi d’avoir mis à jour les dépôts du système, le noyau et les paquets de logiciels en envoyant les commandes suivantes.

apt update
apt upgrade

Ensuite, configure le nom d’hôte de la machine en exécutant la commande suivante. Veille à remplacer la valeur du nom d’hôte utilisée dans cette rubrique par ta propre notation.

hostnamectl set-hostname www.mycrm.org

Exécute les commandes ci-dessous pour vérifier si le nom d’hôte de la machine a été correctement configuré.

hostnamectl
cat /etc/hostname
hostname –s
hostname –f

Enfin, redémarre le serveur Debian afin d’appliquer correctement les mises à jour du noyau et les modifications du nom d’hôte.

systemctl reboot

Ensuite, tu dois installer le paquet de logiciels LAMP dans le système Debian. Dans un premier temps, installe le serveur Web Apache et un interpréteur de passerelle de traitement PHP ainsi que tous les modules PHP nécessaires au bon fonctionnement de l’application en exécutant la commande suivante dans ta console de serveur.

apt install apache2 libapache2-mod-php7.0 php7.0 php7.0-gd php7.0-opcache php7.0-mbstring php7.0-xml php7.0-json php7.0-zip php7.0-curl php7.0-imap php7.0-soap php7.0-mcrypt php-mailparse

Ensuite, installe un backend de base de données RDBMS. Dans ce guide, nous allons configurer l’application EspoCRM pour utiliser la base de données MariaDB comme backend. Exécute la commande suivante pour installer la base de données MariaDB et le module PHP nécessaire pour accéder à la base de données MySQL.

apt install mariadb-server php7.0-mysql mariadb-client

Après avoir installé Apache, la base de données MySQL et PHP, ouvre le fichier de configuration par défaut de PHP pour l’éditer et modifier les variables PHP suivantes comme décrit ci-dessous. Assure-toi qu’au départ, tu fais une sauvegarde du fichier de configuration PHP.

cp /etc/php/7.0/apache2/php.ini{,.backup}
nano /etc/php/7.0/apache2/php.ini

Recherche, édite et modifie les variables suivantes dans le fichier de configurationphp.ini:

file_uploads = On
default_charset = UTF-8
memory_limit = 256M
post_max_size = 50M
upload_max_filesize = 50M
memory_limit = 256M
max_input_time = 180
max_execution_time = 180
zend.assertions = 0
date.timezone = Europe/London

Remplace la time.zone en fonction de ton heure physique en consultant la liste des fuseaux horaires fournie par la documentation PHP à l’adresse suivante : http://php.net/manual/en/timezones.php.

Afin d’augmenter la vitesse de chargement des pages de ton application via le plugin OPCache disponible en PHP7, insère les lignes de code OPCache suivantes au bas du fichier de configuration de l’interpréteur PHP, sous l’instruction [opcache] comme détaillé ci-dessous :

opcache.enable=1 
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

Ferme le php.ini et vérifie si les variables ont été correctement ajoutées, ce que tu peux faire en lançant la commande ci-dessous.

grep opcache /etc/php/7.0/apache2/php.ini| grep -v ";"

Ensuite, ajoute la règle d’application de pare-feu UFW suivante dans ton système, afin d’autoriser le trafic HTTP à traverser le pare-feu, en lançant la commande suivante.

ufw allow WWW

ou

ufw allow 80/tcp

Certains sysadmins préfèrent les règles brutes d’iptables pour gérer les règles du pare-feu dans le serveur Debian. Dans le cas d’iptables, lance les commandes ci-dessous pour installer le pare-feu et ajouter les règles suivantes pour autoriser le trafic entrant des ports 80 et 22 (en cas de connexions distantes SSH) afin que tu puisses accéder au système et parcourir l’application via un navigateur Web.

apt-get install -y iptables-persistent
iptables -I INPUT -p tcp --destination-port 80 -j ACCEPT
iptables -I INPUT -p tcp --destination-port 22 -j ACCEPT
netfilter-persistent save
systemctl restart netfilter-persistent
systemctl status netfilter-persistent
systemctl enable netfilter-persistent.service

Enfin, ouvre un navigateur et visite l’adresse IP de ta machine Debian ou ton nom de domaine via le protocole HTTP. Si tu ne connais pas l’adresse IP de ta machine, exécute la commande ifconfig ou ip a pour obtenir l’adresse IP de ton serveur. Si la connexion au serveur Web est établie, tu devrais pouvoir afficher la page Web par défaut du serveur Web Apache dans ton navigateur.

http://your_domain.tld

À l’étape suivante, active les modules Apache rewrite et deflate SSL nécessaires au bon fonctionnement d’EspoCRM, en lançant la commande ci-dessous.

a2enmod rewrite deflate ssl

Le module SSL nécessite que tu actives également le fichier de configuration SSL par défaut afin de visiter l’application via le protocole HTTPS. Le protocole HTTPS est utilisé pour sécuriser le trafic entre le serveur et les clients. Exécute la commande suivante pour activer le fichier de configuration SSL du site Apache.

a2ensite default-ssl.conf

Ensuite, ouvre le fichier de configuration du site SSL par défaut d’Apache avec un éditeur de texte et insère les lignes de code suivantes après la directive DocumentRoot comme indiqué dans l’exemple ci-dessous, afin d’activer les règles placées dans le fichier .htaccess. Le fichier .htaccess est généralement situé en haut du webroot de ton domaine.

nano /etc/apache2/sites-enabled/default-ssl.conf

Extrait du fichier de configuration du site SSL :

<Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>

Tu dois aussi ouvrir le fichier/etc/apache2/sites-enabled/000-default.conf pour le modifier et ajouter les mêmes règles de réécriture d’URL que celles insérées dans le fichier de configuration SSL. Ajoute les lignes de code après la déclaration DocumentRoot comme indiqué dans l’exemple ci-dessous.

<Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>

Enfin, redémarre le démon Apache pour appliquer toutes les règles configurées jusqu’à présent et visiter ton domaine via le protocole HTTPS. Comme tu utilises les paires de certificats auto-signés automatiquement émis par Apache lors de l’installation, certificat qui n’est pas fiable par le navigateur, un avertissement d’erreur de connexion non sécurisée devrait s’afficher dans le navigateur. Accepte l’avertissement pour accepter le certificat non fiable et continuer à être redirigé vers la page Web par défaut d’Apache.

systemctl restart apache2

https://yourdomain.tld

Avertissement concernant le certificat auto-signé SSL

Si tu prévois d’exposer ta plateforme EspoCRM pour la production sur Internet, tu devrais envisager d’acheter un certificat émis par une autorité de certification de confiance ou d’obtenir une paire de certificats gratuits de Let’s Encrypt CA, afin que les clients puissent visiter l’application sans que des erreurs s’affichent dans leur navigateur.

Si l’application de pare-feu UFW bloque les connexions réseau entrantes sur le port HTTPS, tu dois ajouter une nouvelle règle pour autoriser le trafic HTTPS à passer par le pare-feu en lançant la commande suivante.

ufw allow HTTPS

ou

ufw allow 443/tcp

Pour le pare-feu iptables, ajoute la règle suivante pour autoriser le trafic entrant du port 443 dans le pare-feu afin que tu puisses naviguer sur le nom de domaine. Enregistre et redémarre le service iptables afin d’appliquer les règles après le redémarrage du système.

iptables -I INPUT -p tcp --destination-port 443 -j ACCEPT
netfilter-persistent save
systemctl restart netfilter-persistent
systemctl status netfilter-persistent

Enfin, crée un fichier d’information PHP dans le chemin du webroot de ton domaine en exécutant la commande suivante.

echo '<?php phpinfo(); ?>'| tee /var/www/html/info.php

Vérifie les paramètres PHP et la configuration du fuseau horaire en visitant le fichier script PHP info depuis un navigateur à l’URL suivante, comme illustré dans l’image ci-dessous. Fais défiler l’écran jusqu’au réglage de ladate pour vérifier la configuration du fuseau horaire de PHP.

https://domain.tld/info.php

À l’étape suivante, connecte-toi à la console du serveur MySQL et au compte root MariaDB sécurisé en exécutant les commandes ci-dessous. Saisis exit pour quitter la console de la base de données.

mysql -h localhost
Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 2

Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1

 

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> utiliser mysql ;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

 

Database changed

MariaDB [(none)]> utiliser mysql ; MariaDB [mysql]> mettre à jour l’utilisateur, définir plugin= » où utilisateur=’root’ ;

Query OK, 1 row affected (0.00 sec)

Rows matched: 1  Changed: 1  Warnings: 0

MariaDB [mysql]> supprimer les privilèges ;

Query OK, 0 rows affected (0.00 sec)

 

MariaDB [mysql]> exit

Bye

Exécute également le scriptmysql_secure_installation afin de sécuriser davantage le démon MariaDB. Lors de l’exécution du script, tu devras répondre à une série de questions destinées à sécuriser la base de données MariaDB, telles que : changer le mot de passe root MySQL, supprimer les utilisateurs anonymes, désactiver les connexions root à distance et supprimer la base de données de test. Tape « oui » pour toutes les questions posées, comme l’illustre l’extrait ci-dessous.

mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB

      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

 

In order to log into MariaDB to secure it, we'll need the current

password for the root user.  If you've just installed MariaDB, and

you haven't set the root password yet, the password will be blank,

so you should just press enter here.

 

Enter current password for root (enter for none):

OK, successfully used password, moving on...

 

Setting the root password ensures that nobody can log into the MariaDB

root user without the proper authorisation.

 

You already have a root password set, so you can safely answer 'n'.

Change the root password? [Y/n] y

New password:

Re-enter new password:

Password updated successfully!

Reloading privilege tables..

 ... Success!

 

By default, a MariaDB installation has an anonymous user, allowing anyone

to log into MariaDB without having to have a user account created for

them.  This is intended only for testing, and to make the installation

go a bit smoother.  You should remove them before moving into a

production environment.

 

Remove anonymous users? [Y/n] y

 ... Success!

 

Normally, root should only be allowed to connect from 'localhost'.  This

ensures that someone cannot guess at the root password from the network.

 

Disallow root login remotely? [Y/n] y

 ... Success!

 

By default, MariaDB comes with a database named 'test' that anyone can

access.  This is also intended only for testing, and should be removed

before moving into a production environment.

 

Remove test database and access to it? [Y/n] y

 - Dropping test database...

 ... Success!

 - Removing privileges on test database...

 ... Success!

 

Reloading the privilege tables will ensure that all changes made so far

will take effect immediately.

 

Reload privilege tables now? [Y/n] y

 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB

installation should now be secure.

Thanks for using MariaDB!

Vérifie le problème de sécurité du serveur MariaDB en essayant de te connecter à la base de données via la console sans mot de passe root. L’accès à la base de données doit être refusé si aucun mot de passe n’est fourni pour le compte root, comme illustré dans l’extrait de commande ci-dessous :

mysql -h localhost -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Essaie maintenant de te connecter à la base de données avec un mot de passe root. Tu devrais pouvoir accéder à la console MySQL, comme le montre l’extrait de commande ci-dessous :

mysql -h localhost -u root -p
Enter password:

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 15

Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> exit

Bye

Installer EspoCRM

Après avoir configuré correctement le serveur HTTP Apache, le démon MariaDB et l’interpréteur PHP, tu peux installer l’application EspoCRM sur ton système Debian. Exécute la commande suivante afin d’installer les utilitaires de ligne de commande qui y sont mentionnés.

apt install wget bash-completion zip unzip curl

À l’étape suivante, visite la page de téléchargement officielle d’EspoCRM à l’adresse https://www.espocrm.com/download/ et récupère la dernière archive compressée du paquet zip dans ton système via l’utilitaire wget. La version actuelle d’EspoCRM au moment de la rédaction de ce tutoriel est la suivante EspoCRM-5.0.3

wget https://www.espocrm.com/downloads/EspoCRM-5.0.3.zip
ls

Une fois le téléchargement de l’archive zip terminé, extrais le fichier de l’archive zip dans ton répertoire de travail actuel et liste les fichiers extraits en exécutant les commandes suivantes. Les fichiers d’installation de l’application se trouvent dans le répertoire EspoCRM-5.0.3 .

unzip EspoCRM-5.0.3.zip
ls
ls -al EspoCRM-5.0.3

Ensuite, assure-toi de supprimer les fichiers index.html et info.php du répertoire webroot :

rm /var/www/html/index.html
rm /var/www/html/info.php

Copie tous les fichiers situés dans le répertoire extrait dans le chemin de la racine du document de ton serveur Web en lançant la commande suivante. Veille aussi à copier le fichier caché .htaccess dans le chemin webroot.

cp -rf EspoCRM-5.0.3/* /var/www/html/
cp EspoCRM-5.0.3/.htaccess /var/www/html/

Ensuite, exécute les commandes suivantes afin d’accorder au compte Apache www-data des droits d’écriture complets sur le chemin de la racine web. Utilise la commandels pour répertorier les permissions des fichiers installés dans EspoCRM et situés dans le répertoire /var/www/html/.

chown -R www-data:www-data /var/www/html/
ls –al /var/www/html/

Ensuite, connecte-toi à la console de la base de données MariaDB et crée une base de données EspoCRM. Utilise un nom descriptif pour la base de données et crée un utilisateur avec un mot de passe fort pour gérer cette base de données. Remplace le nom de la base de données, l’utilisateur et le mot de passe utilisés dans cet exemple par tes propres valeurs. Les commandes utilisées pour cette étape sont présentées dans l’extrait ci-dessous.

mysql –u root -p
Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 2

Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1

 

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> crée la base de données espocrm_db ;

Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> accorde tous les privilèges sur espocrm_db.* à ‘crm_user’@’localhost’ identifié par ‘password1234’ ;

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> vide les privilèges ;

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit

Bye

Maintenant, ouvre un navigateur et navigue sur l’adresse IP ou le nom de domaine de ton serveur via le protocole HTTPS afin de procéder au processus d’installation de la plateforme EspoCRM. Sur le premier écran d’installation, le programme d’installation d’EspoCRM affiche un message de bienvenue et une liste dans laquelle tu peux sélectionner la langue d’installation. Sélectionne la langue qui te convient dans la liste présentée et clique sur le bouton Start pour lancer le processus d’installation, comme le montre l’image ci-dessous.

https://yourdomain.tld

Écran de bienvenue d'EspoCRM

Dans l’écran suivant, lis les déclarations du contrat de licence et coche la case« J’accepte le contrat » et clique sur le bouton Suivant pour passer à l’étape suivante.

Accepter le contrat de licence

Dans l’écran d’installation suivant, configure les paramètres de connexion à la base de données MySQL. Indique l’adresse hôte de la base de données MySQL (127.0.0.1 ou localhost), le nom de la base de données, le nom d’utilisateur et le mot de passe configurés pour l’application EspoCRM. Après avoir rempli tous les champs obligatoires de la base de données, clique sur le bouton Suivant pour passer à l’étape suivante de l’installation. Utilise la capture d’écran ci-dessous comme guide pour effectuer cette étape.

Détails de la base de données

Dans l’écran suivant, le programme d’installation d’EspoCRM va vérifier les configurations de l’environnement de ton serveur afin de déterminer si toutes les variables MySQL recommandées et les modules et paramètres PHP sont correctement configurés. Si toutes les configurations sont passées, clique sur le bouton Installer pour lancer le processus d’installation d’EspoCRM.

Paramètres recommandés

À l’étape suivante, ajoute un compte administrateur pour EspoCRM et configure un mot de passe fort pour ce compte administrateur. Lorsque tu as terminé, clique sur le bouton Suivant pour poursuivre le processus d’installation.

Définis un nom d'utilisateur et un mot de passe

Ensuite, configure les paramètres du système EspoCRM en sélectionnant le format de date et le format d’heure appropriés. Choisis également le paramètre de fuseau horaire approprié à ton application en sélectionnant le continent/la ville la plus proche dans la liste de fuseaux horaires fournie. Configure le premier jour de la semaine, la devise par défaut de l’application, les séparateurs de milliers et de décimales et la langue du système. Lorsque tous les paramètres ci-dessus sont configurés, clique sur le bouton Suivant pour poursuivre le processus d’installation.

Paramètres de date et d'heure

À l’étape suivante, configure les paramètres du courrier sortant d’EspoCRM. Ajoute un nom pour l’en-tête de courriel « From Name » et l’adresse de contact du compte administrateur. Cette adresse sera utilisée pour envoyer des courriels à des clients extérieurs. Assure-toi également d’ajouter l’adresse du serveur de messagerie, le numéro de port du serveur de messagerie et de cocher la case Auth et de fournir les informations d’authentification du serveur et le niveau de sécurité, si c’est le cas. Lorsque tu as terminé cette étape, clique sur le bouton suivant pour terminer le processus d’installation.

Paramètres SMTP

Une fois que la structure de la base de données a été importée et que tous les paramètres de la plateforme ont été écrits dans le fichier de configuration de l’application, le processus d’installation sera terminé. Le programme d’installation s’affichera pour t’informer que l’installation s’est déroulée avec succès et affichera une note sur la tâche planifiée EspoCRM que tu dois ajouter dans le fichier crontab de ton serveur.

Installation d'EspoCRM terminée

Afin d’accéder à ton application CRM et de la gérer, ouvre un navigateur et navigue vers l’adresse IP ou le nom de domaine de ton serveur via HTTPS. Utilise les informations d’identification configurées pendant le processus d’installation pour te connecter au panneau dorsal d’EspoCRM, comme le montre la capture d’écran ci-dessous.

https://yourdomain.tld

Connecte-toi au dashbaord CRM

Le tableau de bord EspoCRM par défaut ne devrait contenir aucune donnée jusqu’à présent. Un aperçu du tableau de bord initial d’EspoCRM est illustré dans la capture d’écran ci-dessous.

Tableau de bord d'EspoCRM

Pour configurer davantage les paramètres de la plateforme EspoCRM, clique sur l’icône en haut à droite avec trois lignes horizontales et clique sur le lien Administration dans le menu déroulant, comme le montre l’image ci-dessous.

Section administration

Afin de forcer les visiteurs à accéder en toute sécurité à l’interface dorsale d’EspoCRM via le protocole HTTPS qui crypte le trafic entre le serveur et les navigateurs clients, retourne à ton terminal de serveur et modifie le fichier .htaccess situé dans le chemin de la racine du document de ton site Web, en envoyant la commande ci-dessous.

nano /var/www/html/.htaccess

Dans le fichier .htaccess, cherche la ligne<IfModule mod_rewrite.c> et ajoute les règles ci-dessous après RewriteEngine On afin de rediriger automatiquement tout le trafic du domaine vers HTTPS.

# Redirect to HTTPS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]

En haut du fichier, tu peux modifier les paramètres natifs du serveur PHP, comme l’augmentation des valeurs des variables PHP upload_max_filesize et post_max_size, afin de prendre en charge les téléchargements de gros fichiers dans le stockage de l’application. Modifie ces paramètres PHP avec beaucoup de prudence. Assure-toi que ces variables correspondent aux ressources et aux configurations de ton serveur.

# Modify PHP settings
php_value session.use_trans_sid 0
php_value register_globals 1
php_value upload_max_filesize 100M
php_value post_max_size 100M

Ensuite, teste le travail planifié avant de l’ajouter à l’exécution dans le fichier crontab daemon, en lançant la commande ci-dessous. Le travail crontask doit être exécuté avec les privilèges du compte d’exécution du serveur Apache HTTP.

sudo -u www-data /usr/bin/php7.0 -f /var/www/html/cron.php

Enfin, ajoute le travail crontab suivant appartenant au compte Apache www-data, en envoyant la commande ci-dessous.

crontab -u www-data –e

Extrait du fichier crontab :

*    *    *    *    *     /usr/bin/php7.0 -f /var/www/html/cron.php > /dev/null 2>&1

C’est tout ! Tu as réussi à installer et à configurer la plateforme EspoCRM dans Debian 9. Pour d’autres paramètres concernant la plateforme EspoCRM, visite la page de documentation à l’adresse suivante: https://www.espocrm.com/documentation/.

Vous aimerez aussi...