Recherche de site Web

Configuration d'OpenERP (Odoo) 9 avec Nginx sur RHEL/CentOS et Debian/Ubuntu


Odoo, anciennement connu sous le nom de OpenERP, est un logiciel d'entreprise Web Open Source Enterprise Resource Planning ERP écrit en Python et livré avec une suite de logiciels Web. des applications conçues pour chaque entreprise, telles que les créateurs de sites Web, les modules de commerce électronique, la facturation et la comptabilité, les ressources humaines, le point de vente, la gestion de la relation client, le module d'inventaire, le chat en direct et de nombreuses autres applications et fonctionnalités.

Ce tutoriel vous expliquera comment installer la dernière version stable de Odoo (version 9) sur un RHEL/CentOS/Fedora ou < Systèmes basés surDebian/Ubuntu avec serveur Nginx pour agir comme un proxy inverse dans le frontend afin d'accéder à l'interface Web plus rapidement, en toute sécurité et à partir des ports de navigation Web standard, sans avoir besoin de obliger les utilisateurs à utiliser les ports de redirection du navigateur.

Étape 1 : Installer et sécuriser la base de données PostgreSQL

1. Avant de commencer l'installation de Odoo, assurez-vous d'abord que votre système est livré avec les packages fournis par les référentiels Epel afin d'installer la base de données backend PostgreSQL .

Assurez-vous également que le serveur est à jour avec les derniers packages et correctifs de sécurité en exécutant les commandes ci-dessous :

----------- On RedHat/CentOS based systems ----------- 
yum update
yum install -y epel-release

----------- On Debian/Ubuntu based systems ----------- 
apt-get update && sudo apt-get upgrade # On Debian 

2. Ensuite, installez le serveur de base de données PostgreSQL, qui est la base de données par défaut utilisée par Odoo pour stocker les informations.

----------- On RedHat/CentOS based systems -----------
yum install postgresql-server

----------- On Debian/Ubuntu based systems -----------
apt-get install postgresql postgresql-client

Initialisez la base de données PostgreSQL.

postgresql-setup initdb	

Maintenant, démarrez enfin la base de données PostgreSQL en exécutant la commande ci-dessous :

----------- On SystemD systems -----------
systemctl start postgresql

----------- On SysVinit systems -----------
service postgresql start

Comme étape supplémentaire pour sécuriser l'utilisateur par défaut de PostgreSQL, qui a un mot de passe vide, exécutez la commande ci-dessous avec les privilèges root afin de modifier le mot de passe :

sudo -u postgres psql
postgres=# \password postgres

Étape 2 : Installer Odoo 9 – OpenERP

3. Afin d'installer Odoo 9 à partir du référentiel officiel, créez d'abord un nouveau fichier de référentiel yum pour Odoo avec le contenu suivant :

Sur les systèmes CentOS/RHEL

vi /etc/yum.repos.d/odoo.repo

Ajoutez l'extrait suivant au fichier odoo.repo.

[odoo-nightly]
name=Odoo Nightly repository
baseurl=http://nightly.odoo.com/9.0/nightly/rpm/
enabled=1
gpgcheck=1
gpgkey=https://nightly.odoo.com/odoo.key

Sur les systèmes Debian/Ubuntu

Sur Debian/Ubuntu, exécutez la commande suivante pour ajouter les dépôts Odoo :

wget -O - https://nightly.odoo.com/odoo.key | apt-key add -
echo "deb http://nightly.odoo.com/9.0/nightly/deb/ ./" >> /etc/apt/sources.list

4. Installez ensuite le logiciel Odoo 9 à partir des binaires.

----------- On RedHat/CentOS based systems -----------
yum install odoo

----------- On Debian/Ubuntu based systems -----------
apt-get update && sudo apt-get install odoo

Ensuite, démarrez-le et vérifiez l'état du démon en exécutant les commandes ci-dessous :

----------- On SystemD systems -----------
systemctl start odoo
systemctl status odoo

----------- On SysVinit systems -----------
service odoo start
service odoo status

Comme étape supplémentaire, vous pouvez vérifier le port d'écoute du service Odoo en exécutant la commande ss ou netstat :

ss -tulpn
OR
netstat -tulpn

Par défaut, Odoo écoute les connexions réseau sur le port 8069/TCP.

Étape 3 : Configurer Odoo depuis l'interface Web

5. Afin de configurer davantage Odoo, lancez un navigateur et accédez à l'interface Web d'Odoo à l'URI suivant :

http://host-or-IP-address:8069/

6. Ensuite, vous serez invité à créer une nouvelle base de données pour Odoo et à définir un mot de passe fort pour le compte administrateur.

7. Une fois la base de données créée, vous serez redirigé vers le panneau Web d'administration où vous pourrez continuer à installer des applications et configurer votre ERP. Pour le moment, laissez l'application par défaut et déconnectez-vous.

8. Une fois revenu à l'écran de connexion, cliquez sur le lien Gérer les bases de données et définissez un mot de passe principal afin de sécuriser le gestionnaire de base de données Odoo.

9. Une fois que vous avez sécurisé le gestionnaire de base de données Odoo, vous pouvez vous connecter à votre application et commencer à la configurer davantage avec vos applications et paramètres requis.

Étape 4 : Accédez à Odoo depuis l’interface Nginx

Vous pouvez configurer le système pour que les utilisateurs puissent accéder au panneau Web Odoo via le proxy inverse Nginx. Cela peut permettre aux utilisateurs de naviguer plus rapidement dans l'interface Web d'Odoo, grâce à la mise en cache frontale de Nginx, sur les ports HTTP standard sans avoir besoin de saisir manuellement le port http 8069 sur leur navigateur. .

Afin de configurer ce paramètre, vous devez d'abord installer et configurer Nginx sur votre système en suivant les étapes suivantes.

10. Installez d'abord le serveur Web Nginx avec la commande suivante :

----------- On RedHat/CentOS based systems -----------
yum install nginx

----------- On Debian/Ubuntu based systems -----------
apt-get install nginx

11. Ensuite, ouvrez le fichier de configuration principal de Nginx avec un éditeur de texte et insérez le bloc suivant après la ligne qui spécifie l'emplacement racine du document Nginx.

----------- On RedHat/CentOS based systems -----------
vi /etc/nginx/nginx.conf 

----------- On Debian/Ubuntu based systems -----------
nano /etc/nginx/sites-enabled/default

Ajoutez l'extrait de configuration suivant au fichier nginx.conf :

 location / {
        proxy_pass http://127.0.0.1:8069;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

Commentez également l'instruction Nginx location en plaçant un # devant les lignes suivantes. Utilisez la capture d'écran ci-dessous comme guide.

#location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
        #       try_files $uri $uri/ =404;
        #}

12. Après avoir effectué toutes les modifications ci-dessus, redémarrez le démon Nginx mais pas avant d'exécuter la commande getenforce pour vérifier si Selinux est activé sur votre machine.

Sur les systèmes CentOS/RHEL

Si la stratégie est définie sur Enforced, désactivez-la en exécutant les commandes ci-dessous :

setenforce 0
getenforce

Pour désactiver complètement Selinux, ouvrez le fichier /etc/selinux/config avec un éditeur de texte et définissez la ligne SELINUX sur désactivé.

Si vous ne souhaitez pas désactiver complètement la politique Seliux et souhaitez simplement assouplir les règles afin d'accorder au proxy Nginx un accès permissif au socket réseau, exécutez la commande suivante :

setsebool httpd_can_network_connect on -P
getsebool -a | grep httpd 

Ensuite, redémarrez le démon Nginx pour refléter les modifications apportées ci-dessus :

systemctl restart nginx
OR
service nginx restart

13. Cette étape suivante est une fonctionnalité facultative de sécurité et implique le changement de la socket réseau que l'application Odoo écoute, en changeant l'adresse de liaison de toutes les interfaces (ou adresse) en localhost uniquement.

Ce changement doit être effectué uniquement en conjonction avec le proxy inverse Nginx car la liaison de l'application sur localhost implique uniquement qu'Odoo ne sera pas accessible aux utilisateurs du LAN ou d'autres réseaux.

Afin d'activer ce changement, ouvrez le fichier /etc/odoo/openerp-server.conf et modifiez la ligne xmlrpc_interface pour la lier sur localhost uniquement comme suggéré dans la capture d'écran ci-dessous.

xmlrpc_interface = 127.0.0.1

Afin de refléter les modifications, redémarrez le service Odoo en exécutant la commande ci-dessous :

systemctl restart odoo.service
OR
service odoo restart

14. Si votre machine dispose d'une ligne de défense réseau fournie par le pare-feu, exécutez les commandes suivantes afin d'ouvrir les ports du pare-feu vers le monde extérieur pour le proxy Nginx :

----------- On FirewallD based systems -----------
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
----------- On IPTables based systems -----------
iptables -A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
/etc/init.d/iptables save
----------- On UFW Firewall systems -----------
ufw allow http

15. C'est tout ! Vous pouvez désormais accéder avec succès à votre application ERP Odoo en visitant l'adresse IP de votre serveur ou le nom de domaine.

http://192.168.1.40
http://domain.tld

16. Afin d'exécuter automatiquement les services après un redémarrage du système, exécutez la commande suivante pour activer tous les démons du système en une seule fois.

------------ On SystemD Systems ------------  
systemctl enable postgresql.service 
systemctl enable odoo.service
systemctl enable nginx.service
------------ On SysVinit Systems ------------ 

chkconfig postgresql on
chkconfig odoo on
chkconfig nginx on

REMARQUE : pour les rapports PDF, vous devez télécharger et installer manuellement les packages binaires wkhtmltopdf pour votre propre distribution en visitant le lien suivant Installer wkhtmltopdf pour convertir une page HTML en PDF.