Comment installer OroCRM sur Ubuntu 16.04

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.comle nom de domaine pointé vers le serveur. Remplacez toutes les occurrences de crm.example.compar 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 aptré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_dataet le nom d' utilisateur de la base de données oro_userselon votre choix. Assurez-vous de changer StrongPasswordpour 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/binré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 parametersfichier dans le parametersfichier 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.ymlfichier 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 secretremplaç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' pwgenutilitaire. Installez pwgenen 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-devgarantit 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=prodparamè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.compour 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 usernameet passwordvous 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 .



Leave a Comment

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

Les attaques de ransomware sont en augmentation, mais l'IA peut-elle aider à lutter contre le dernier virus informatique ? L'IA est-elle la réponse ? Lisez ici, sachez que l'IA est un boone ou un fléau

ReactOS : est-ce lavenir de Windows ?

ReactOS : est-ce lavenir de Windows ?

ReactOS, un système d'exploitation open source et gratuit est ici avec la dernière version. Cela peut-il suffire aux besoins des utilisateurs de Windows modernes et faire tomber Microsoft ? Découvrons-en plus sur cet ancien style, mais une expérience de système d'exploitation plus récente.

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Whatsapp a finalement lancé l'application de bureau pour les utilisateurs Mac et Windows. Vous pouvez désormais accéder facilement à Whatsapp depuis Windows ou Mac. Disponible pour Windows 8+ et Mac OS 10.9+

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Lisez ceci pour savoir comment l'intelligence artificielle devient populaire parmi les petites entreprises et comment elle augmente les probabilités de les faire grandir et de donner à leurs concurrents un avantage.

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

Récemment, Apple a publié macOS Catalina 10.15.4, une mise à jour supplémentaire pour résoudre les problèmes, mais il semble que la mise à jour cause davantage de problèmes, ce qui entraîne le bridage des machines mac. Lisez cet article pour en savoir plus

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux d'extraction de données de Big Data

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Notre ordinateur stocke toutes les données d'une manière organisée connue sous le nom de système de fichiers de journalisation. C'est une méthode efficace qui permet à l'ordinateur de rechercher et d'afficher des fichiers dès que vous appuyez sur la recherche.https://wethegeek.com/?p=94116&preview=true

Singularité technologique : un futur lointain de la civilisation humaine ?

Singularité technologique : un futur lointain de la civilisation humaine ?

Alors que la science évolue à un rythme rapide, prenant le pas sur une grande partie de nos efforts, les risques de nous soumettre à une Singularité inexplicable augmentent également. Lisez, ce que la singularité pourrait signifier pour nous.

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques d'analyse des mégadonnées : partie 1

Limpact de lintelligence artificielle dans les soins de santé 2021

Limpact de lintelligence artificielle dans les soins de santé 2021

L'IA dans le domaine de la santé a fait de grands progrès au cours des dernières décennies. Ainsi, l'avenir de l'IA dans les soins de santé continue de croître de jour en jour.