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 et bien d'autres. 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 Ubuntu 16.04 . 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 apt -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.1 n'est pas disponible dans le apt
référentiel par défaut . Tout d'abord, ajoutez le référentiel PPA pour PHP.
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
Installez PHP 7.1 avec les modules PHP requis par OroCRM.
sudo apt update
sudo apt -y install php7.1 php7.1-fpm php7.1-common php7.1-curl php7.1-gd php7.1-intl php7.1-json php7.1-mbstring php7.1-mcrypt php7.1-mysql php7.1-xml php7.1-xml php7.1-zip php7.1-tidy php7.1-soap php7.1-opcache
Modifiez le fichier de configuration PHP chargé.
sudo nano /etc/php/7.1/cli/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
cgi.fix_pathinfo=0
Démarrez PHP-FPM et activez-le au démarrage.
sudo systemctl start php7.1-fpm
sudo systemctl enable php7.1-fpm
Installer MariaDB
MariaDB est un fork open source de MySQL. Ajoutez le référentiel MariaDB 10.2.
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://kartolo.sby.datautama.net.id/mariadb/repo/10.2/ubuntu xenial main'
Installez MariaDB.
sudo apt -y update
sudo apt -y install mariadb-server
Démarrez MariaDB et activez-le pour démarrer automatiquement au démarrage.
sudo systemctl start mariadb
sudo systemctl enable mariadb
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 d'Ubuntu 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://deb.nodesource.com/setup_8.x | sudo bash -
Installez Node.js et Git.
sudo apt -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
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.4 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 pwgen
en exécutant sudo apt -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 Org
Username (admin): 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/sites-available/orocrm
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:/run/php/php7.1-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 changer le crm.example.com
pour 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.
Activez le site.
sudo ln -s /etc/nginx/sites-available/orocrm /etc/nginx/sites-enabled/orocrm
Recherchez d'éventuelles erreurs dans le fichier de configuration Nginx.
sudo nginx -t
La sortie doit ressembler à ce qui suit.
user@vultr:/usr/share/nginx/orocrm$ 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 www-data:www-data /usr/share/nginx/orocrm
Redémarrez Nginx pour appliquer la nouvelle configuration.
sudo systemctl restart nginx
Vous pouvez maintenant accéder à l'application sur http://crm.example.com
. Connectez-vous en utilisant l'administrateur username
et password
vous avez défini 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 apt -y install supervisor
Créez un nouveau fichier de configuration Supervisor.
sudo nano /etc/supervisor/conf.d/orocrm.conf
Ajoutez les lignes suivantes au 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=www-data
redirect_stderr=true
Démarrez et activez Supervisor pour qu'il démarre automatiquement au démarrage.
sudo systemctl restart supervisor
sudo systemctl enable supervisor
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:/usr/share/nginx/orocrm$ sudo supervisorctl status
oro_message_consumer:oro_message_consumer_00 RUNNING pid 20809, uptime 0:00:01
oro_message_consumer:oro_message_consumer_01 RUNNING pid 20808, uptime 0:00:01
oro_message_consumer:oro_message_consumer_02 RUNNING pid 20807, uptime 0:00:01
oro_message_consumer:oro_message_consumer_03 RUNNING pid 20806, uptime 0:00:01
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 .