OroCRM est une application gratuite et open source Customer Relationship Manager (CRM) basée sur OroPlatform. OroPlatform est un logiciel de plateforme d'application d'entreprise open source entièrement personnalisable. OroPlatform vous fournit toutes les fonctionnalités nécessaires pour créer une application personnalisée. OroCRM est construit en utilisant le framework PHP Symfony et stocke ses données dans le serveur de base de données MySQL / MariaDB. Il s'agit d'une application CRM prête pour l'entreprise offrant des tonnes de fonctionnalités. Il s'intègre également à de nombreuses applications tierces telles que Magento Store, MailChimp, Zendesk etc. Il est multilingue et possède une interface utilisateur entièrement réactive, qui vous offre également la possibilité de le gérer à l'aide d'appareils mobiles.
Conditions préalables
Dans ce didacticiel, nous utiliserons crm.example.com
le nom de domaine pointé vers le serveur. Remplacez toutes les occurrences de crm.example.com
par votre nom de domaine réel.
Mettez à jour votre système de base à l'aide du guide Comment mettre à jour CentOS 7 . Une fois votre système mis à jour, procédez à l'installation des dépendances requises.
Installez Nginx et PHP 7
OroCRM peut être installé sur n'importe quel serveur Web de production prenant en charge PHP. OroCRM prend en charge toutes les versions de PHP supérieures à 7.0. Dans ce tutoriel, nous utiliserons Nginx avec PHP-FPM et PHP 7.1.
Installez Nginx.
sudo yum -y install nginx
Démarrez Nginx et activez-le pour démarrer automatiquement au démarrage.
sudo systemctl start nginx
sudo systemctl enable nginx
PHP 7 n'est pas disponible dans le référentiel YUM par défaut, mais nous pouvons utiliser le référentiel Remi pour obtenir et installer les dernières versions de PHP 7. Tout d'abord, ajoutez et activez le référentiel Remi.
sudo rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum -y install yum-utils
sudo yum-config-manager --enable remi-php71
Installez la dernière version de PHP 7 ainsi que les modules PHP requis par OroCRM.
sudo yum -y install php php-fpm php-ctype php-curl php-fileinfo php-gd php-intl php-json php-mbstring php-mcrypt php-mysql php-pcre php-simplexml php-tokenizer php-xml php-zip php-tidy php-soap php-opcache php-posix
Modifiez le fichier de configuration PHP par défaut.
sudo nano /etc/php.ini
Trouvez les lignes suivantes. Décommentez et apportez les modifications comme indiqué.
date.timezone = Asia/Kolkata
;Replace "Asia/Kolkata" with your appropriate timezone
memory_limit = 512M
cgi.fix_pathinfo=0
Modifiez le fichier de configuration PHP-FPM.
sudo nano /etc/php-fpm.d/www.conf
Par défaut, PHP-FPM est configuré pour s'exécuter avec Apache et pour écouter le port 9000
. Nous devrons changer l'utilisateur et le groupe, ainsi que le fichier socket Unix sur lequel il s'exécutera. Recherchez les lignes suivantes et apportez les modifications nécessaires comme indiqué.
user = nginx
group = nginx
;listen = 127.0.0.1:9000
;Comment out or remove the above line and add the following line.
listen = /var/run/php-fpm/php-fpm.sock
listen.owner = nobody
listen.group = nobody
Démarrez PHP-FPM et activez-le au démarrage.
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
Fournir la propriété du fichier socket PHP-FPM à l'utilisateur Nginx.
sudo chown nginx:nginx /var/run/php-fpm/php-fpm.sock
Installer MariaDB
MariaDB est un fork open source de MySQL. Installez MariaDB.
sudo yum -y install mariadb mariadb-server
Démarrez MariaDB et activez-le pour démarrer automatiquement au démarrage.
sudo systemctl start mariadb
sudo systemctl enable mariadb
L'installation par défaut de MariaDB est livrée avec quelques bases de données de test et des utilisateurs anonymes. Avant de configurer la base de données, vous devez d'abord sécuriser le serveur MariaDB. Vous pouvez le sécuriser en exécutant le mysql_secure_installation
script.
sudo mysql_secure_installation
Le mot de passe root de MariaDB vous sera demandé. Par défaut, il n'y a pas de mot de passe root dans une nouvelle installation MariaDB. Appuyez sur la Enter
touche pour continuer. Définissez un mot de passe fort pour l'utilisateur root de votre serveur MariaDB et répondez Y
à toutes les autres questions posées. Les questions posées sont explicites.
Créer la base de données pour OroCRM
Connectez-vous au shell MySQL en tant qu'utilisateur root en exécutant.
mysql -u root -p
Fournissez le mot de passe pour que l'utilisateur root MariaDB se connecte.
Exécutez les requêtes suivantes pour créer une base de données et un utilisateur de base de données pour l'installation d'OroCRM.
CREATE DATABASE oro_data;
CREATE USER 'oro_user'@'localhost' IDENTIFIED BY 'StrongPassword';
GRANT ALL PRIVILEGES ON oro_data.* TO 'oro_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Vous pouvez remplacer le nom oro_data
et le nom d' utilisateur de la base de données oro_user
selon votre choix. Assurez-vous de changer StrongPassword
pour un mot de passe très fort.
Installer Node.js et Composer
OroCRM nécessite également le runtime JavaScript Node.js. Node.js sera utilisé par OroCRM pour compiler le JavaScript, qui est utilisé pour construire l'interface utilisateur de l'application. Le référentiel par défaut de CentOS contient une version obsolète de Node.js, vous devrez donc ajouter le référentiel Nodesource à votre système pour obtenir la dernière version.
sudo curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
Installez Node.js et Git.
sudo yum -y install nodejs git
Git sera utilisé pour cloner le référentiel OroCRM à partir d'Internet. Vous devrez également installer Composer. Composer est un outil de gestion des dépendances pour les applications PHP. Parce qu'OroCRM est écrit dans le framework Symfony, vous aurez besoin de Composer pour installer les dépendances et l'application.
Installez Composer.
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
Déplacez Composer vers le /usr/bin
répertoire afin qu'il puisse être exécuté de n'importe où dans le système.
sudo mv composer.phar /usr/bin/composer
Fournissez l'autorisation d'exécution au compositeur.
sudo chmod +x /usr/bin/composer
Installer OroCRM
Il existe de nombreuses façons de télécharger OroCRM sur votre serveur. Le moyen le plus approprié pour obtenir la version la plus récente est de cloner le référentiel via Git.
Clonez le référentiel OroCRM.
cd /usr/share/nginx/
sudo git clone -b 2.3 https://github.com/oroinc/crm-application.git orocrm
Copiez l'exemple de parameters
fichier dans le parameters
fichier par défaut utilisé par OroCRM.
cd orocrm
sudo cp app/config/parameters.yml.dist app/config/parameters.yml
Avant de poursuivre, vous devrez mettre à jour le parameters.yml
fichier pour fournir des informations sur la base de données et les e-mails.
sudo nano app/config/parameters.yml
Trouvez les lignes suivantes.
database_driver: pdo_mysql
database_host: 127.0.0.1
database_port: ~
database_name: oro_crm
database_user: root
database_password: ~
Mettez à jour la configuration ci-dessus en fonction de la base de données que vous avez créée pour stocker les données OroCRM. Dans notre cas, cela devrait ressembler à ceci.
database_driver: pdo_mysql
database_host: 127.0.0.1
database_port: 3306
database_name: oro_data
database_user: oro_user
database_password: StrongPassword
Si vous avez un serveur SMTP prêt et que vous souhaitez utiliser immédiatement les fonctions d'envoi d'e-mails, vous pouvez mettre à jour les paramètres de l'expéditeur comme indiqué.
mailer_transport: smtp
mailer_host: mail.example.com
mailer_port: 456
mailer_encryption: ssl
mailer_user: [email protected]
mailer_password: EMailPassword
Si vous n'avez pas de serveur de messagerie prêt, vous pouvez le sauter pour l'instant en laissant les valeurs existantes. Vous pouvez toujours modifier la configuration des e-mails via le tableau de bord.
Définissez une chaîne aléatoire en secret
remplaçant ThisTokenIsNotSoSecretChangeIt
. Une chaîne aléatoire est requise pour coder les données de session. Un exemple de chaîne ressemblera à ceci.
secret: uxvpXHhDxCFc9yU1hV1fMwjSoyVUzGh4WBMBBBa3XEgrRUF5OuB2h8iNl9JRDqcd
Vous pouvez générer une chaîne aléatoire à l'aide de l' pwgen
utilitaire. Installez l' pwgen
utilitaire en exécutant sudo yum -y install pwgen
. Pour générer une chaîne aléatoire, exécutez pwgen -s 64 1
.
Enregistrez le fichier et quittez l'éditeur. Installez les dépendances PHP requises via composer.
sudo composer install --prefer-dist --no-dev
L'utilisation --no-dev
garantit que Composer installe uniquement les dépendances requises pour exécuter le serveur Web en mode production. Le script prendra quelques minutes pour télécharger et installer les dépendances PHP requises.
Installez l'application.
sudo php app/console oro:install --env=prod
Cela va créer le cache Web et écrire la base de données. Le --env=prod
paramètre est fourni pour installer l'application en mode production. L'installation ne se poursuivra que si toutes les dépendances requises sont installées et configurées.
Pendant l'installation, il vous sera demandé quelques questions pour configurer le compte administrateur. Les questions sont les suivantes.
Administration setup.
Application URL (http://localhost): http://crm.example.com
Organization name (OroCRM): My Organization
Username (admin):
Email: [email protected]
First name: John
Last name: Doe
Password:
Load sample data (y/n): y
Fournissez les informations. Chargez les données d'exemple pour évaluer le produit avant de l'utiliser pour la production.
Réchauffez le cache de documentation de l'API:
sudo php app/console oro:api:doc:cache:clear
Configuration de Nginx, du pare-feu et des autorisations
Créez un fichier de blocage de serveur Nginx pour servir l'application aux utilisateurs.
sudo nano /etc/nginx/conf.d/orocrm.conf
Remplissez le fichier.
server {
server_name crm.example.com;
root /usr/share/nginx/orocrm/web;
location / {
# try to serve file directly, fallback to app.php
try_files $uri /app.php$is_args$args;
}
location ~ ^/(app|app_dev|config|install)\.php(/|$) {
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS off;
}
# Enable Gzip compression
gzip on;
gzip_buffers 16 8k;
gzip_comp_level 5;
gzip_disable "msie6";
gzip_min_length 1000;
gzip_http_version 1.0;
gzip_proxied any;
gzip_types text/plain application/javascript application/x-javascript text/javascript text/xml text/css image/svg+xml;
gzip_vary on;
# Enable browser caching
# One week for javascript and css
location ~* \.(?:css|js) {
expires 1w;
access_log off;
add_header Cache-Control public;
}
# Three weeks for media: images, fonts, icons, video, audio etc.
location ~* \.(?:jpg|jpeg|gif|png|ico|tiff|woff|eot|ttf|svg|svgz|mp4|ogg|ogv|webm|swf|flv)$ {
expires 3w;
access_log off;
add_header Cache-Control public;
}
error_log /var/log/nginx/orocrm_error.log;
access_log /var/log/nginx/orocrm_access.log;
}
Assurez-vous de modifier le crm.example.com
avec votre nom de domaine réel. La configuration ci-dessus comprend également la configuration requise pour la compression GZip et la mise en cache du navigateur. La compression Gzip compresse les données avant de les envoyer au navigateur. L'activation de la mise en cache du navigateur stocke les ressources statiques dans le cache Web de l'ordinateur client. La prochaine fois que l'utilisateur accède au site, la plupart du contenu statique est chargé à partir du cache Web de l'utilisateur. Ces deux méthodes augmentent considérablement la vitesse de l'application.
Recherchez d'éventuelles erreurs dans le fichier de configuration Nginx.
sudo nginx -t
La sortie doit ressembler à ce qui suit.
[user@vultr ~]$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Fournissez la propriété des fichiers OrOCRM à l'utilisateur Nginx.
sudo chown -R nginx:nginx /usr/share/nginx/orocrm
Redémarrez Nginx pour appliquer la nouvelle configuration.
sudo systemctl restart nginx
Si vous exécutez un pare-feu sur votre serveur, vous devrez configurer le pare-feu pour définir une exception pour le service HTTP. Autorisez Nginx à se connecter depuis l'extérieur du réseau.
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-service=https
sudo firewall-cmd --reload
Vous pouvez maintenant accéder à l'application sur http://crm.example.com
. Connectez-vous à l'aide du nom d'utilisateur et du mot de passe administrateur que vous avez définis lors de l'installation.
Configuration des tâches planifiées et des travaux en arrière-plan
Pour exécuter automatiquement les tâches planifiées, vous pouvez ajouter une entrée de tâche Cron. Ouvrez crontab
.
sudo crontab -e
Ajoutez la ligne suivante au fichier.
*/1 * * * * /usr/bin/php /usr/share/nginx/orocrm/app/console oro:cron --env=prod > /dev/null
Cela exécutera le travail cron toutes les minutes afin que les tâches planifiées telles que les files d'attente de messagerie soient traitées le plus tôt possible.
Vous devrez également configurer Supervisor pour exécuter le service Message Queue. Il est nécessaire qu'au moins un processus soit en cours d'exécution à tout moment pour qu'un consommateur traite les messages. Un consommateur peut normalement interrompre le processus de message de plusieurs manières. Pour nous assurer que le service fonctionne en continu, nous utiliserons le service Superviseur. Nous allons configurer Supervisor pour exécuter quatre processus en parallèle. Si l'un des quatre processus est arrêté pour une raison quelconque, le superviseur tentera de le redémarrer.
Installez Supervisor.
sudo yum -y install supervisor
Modifiez le fichier de configuration du superviseur.
sudo nano /etc/supervisord.conf
Ajoutez les lignes suivantes à la fin du fichier.
[program:oro_message_consumer]
command=/usr/bin/php /usr/share/nginx/orocrm/app/console --env=prod --no-debug oro:message-queue:consume
process_name=%(program_name)s_%(process_num)02d
numprocs=4
autostart=true
autorestart=true
startsecs=0
user=nginx
redirect_stderr=true
Démarrez et activez Supervisor pour qu'il démarre automatiquement au démarrage.
sudo systemctl start supervisord
sudo systemctl enable supervisord
Vous pouvez afficher l'état des processus en exécutant ce qui suit.
sudo supervisorctl status
Vous devez voir que les processus sont en cours d'exécution.
[user@vultr ~]$ sudo supervisorctl status
oro_message_consumer:oro_message_consumer_00 RUNNING pid 13596, uptime 0:02:13
oro_message_consumer:oro_message_consumer_01 RUNNING pid 13595, uptime 0:02:13
oro_message_consumer:oro_message_consumer_02 RUNNING pid 13594, uptime 0:02:13
oro_message_consumer:oro_message_consumer_03 RUNNING pid 13593, uptime 0:02:13
OroCRM est maintenant installé sur votre serveur. Vous pouvez désormais utiliser l'application pour gérer les tâches de routine de votre organisation. Pour en savoir plus sur OroCRM, vous pouvez visiter son site officiel .