Configuració d'OpenERP (Odoo) 9 amb Nginx a RHEL/CentOS i Debian/Ubuntu


Odoo, abans conegut com a OpenERP, és un programari empresarial basat en web ERP de planificació de recursos empresarials de codi obert escrit en Python que inclou un conjunt d'aplicacions web dissenyades per a totes les empreses, com ara creadors de llocs web, mòduls de comerç electrònic, facturació i comptabilitat, recursos humans, Punt de venda, gestió de relacions amb clients, mòdul d'inventari, xat en directe i moltes altres aplicacions i funcions.

Aquest tutorial us guiarà sobre com instal·lar la darrera versió estable d'Odoo (versió 9) en un sistema basat en RHEL/CentOS/Fedora o Debian/Ubuntu amb un servidor Nginx per actuar com a servidor intermediari invers a la interfície per accedir al web. interfície de manera més ràpida, segura i des dels ports de navegació web estàndard, sense necessitat de carregar els usuaris per utilitzar els ports de redirecció del navegador.

Pas 1: instal·leu i assegureu-vos la base de dades PostgreSQL

1. Abans de començar a procedir amb la instal·lació d'Odoo, primer assegureu-vos que el vostre sistema s'envia amb paquets proporcionats pels dipòsits d'Epel per instal·lar la base de dades PostgreSQL de fons.

Assegureu-vos també que el servidor estigui actualitzat amb els darrers paquets i pedaços de seguretat emetent les ordres següents:

----------- 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. A continuació, seguiu endavant i instal·leu el servidor de bases de dades PostgreSQL, que és la base de dades predeterminada que utilitza Odoo per emmagatzemar informació.

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

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

Inicialitzar la base de dades PostgreSQL.

# postgresql-setup initdb	

Ara, finalment, inicieu la base de dades PostgreSQL emetent l'ordre següent:

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

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

Com a pas addicional per assegurar l'usuari predeterminat de PostgreSQL, que té una contrasenya en blanc, emet l'ordre següent amb privilegis de root per canviar la contrasenya:

sudo -u postgres psql
postgres=# \password postgres

Pas 2: instal·leu Odoo 9 – OpenERP

3. Per instal·lar Odoo 9 des del dipòsit oficial, primer creeu un nou fitxer de dipòsit yum per a Odoo amb el contingut següent:

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

Afegiu l'extracte següent al fitxer 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

A Debian/Ubuntu, emet l'ordre següent per afegir els dipòsits d'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. A continuació, instal·leu el programari Odoo 9 des de binaris.

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

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

A continuació, inicieu-lo i comproveu l'estat del dimoni emetent les ordres següents:

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

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

Com a pas addicional, podeu verificar el port d'escolta del servei Odoo executant l'ordre ss o netstat:

# ss -tulpn
OR
# netstat -tulpn

Per defecte, Odoo escolta les connexions de xarxa al port 8069/TCP.

Pas 3: configureu Odoo des de la interfície web

5. Per configurar Odoo, engegueu un navegador i accediu a la interfície web d'Odoo a l'URI següent:

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

6. A continuació, se us demanarà que creeu una nova base de dades per a Odoo i que configureu una contrasenya segura per al compte d'administrador.

7. Un cop creada la base de dades, se us redirigirà al panell web d'administració on podreu instal·lar més aplicacions i configurar el vostre ERP. De moment, deixeu l'aplicació per defecte i tanqueu la sessió.

8. Un cop tornat a la pantalla d'inici de sessió, premeu l'enllaç Gestiona bases de dades i Establiu una contrasenya mestra per tal de protegir el gestor de bases de dades d'Odoo.

9. Un cop hàgiu assegurat el gestor de bases de dades d'Odoo, podeu iniciar sessió a la vostra aplicació i començar a configurar-la més amb les vostres aplicacions i configuració necessàries.

Pas 4: accediu a Odoo des de Nginx Frontend

Podeu configurar el sistema perquè els usuaris puguin accedir al panell web d'Odoo mitjançant el servidor intermediari invers Nginx. Això pot facilitar que els usuaris naveguin més ràpidament per la interfície web d'Odoo, a causa d'alguns emmagatzematge en memòria cau de la interfície de Nginx, als ports HTTP estàndard sense necessitat d'introduir manualment el port http 8069 als seus navegadors.

Per configurar aquesta configuració primer, heu d'instal·lar i configurar Nginx al vostre sistema mitjançant els passos següents.

10. Primer instal·leu el servidor web Nginx amb l'ordre següent:

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

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

11. A continuació, obriu el fitxer de configuració principal de Nginx amb un editor de text i inseriu el bloc següent després de la línia que especifica la ubicació arrel del document Nginx.

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

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

Afegiu el següent fragment de configuració al fitxer 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;

A més, comenteu la instrucció ubicació de Nginx col·locant un # davant de les línies següents. Utilitzeu la captura de pantalla següent com a guia.

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

12. Després d'haver fet tots els canvis anteriors, reinicieu el dimoni Nginx però no abans d'executar l'ordre getenforce per comprovar si Selinux està habilitat a la vostra màquina.

En cas que la política estigui configurada com a Aplicada, desactiveu-la emetent les ordres següents:

# setenforce 0
# getenforce

Per desactivar completament Selinux, obriu el fitxer /etc/selinux/config amb un editor de text i configureu la línia SELINUX com a desactivada.

Si no voleu desactivar completament la política de Seliux i només voleu relaxar les regles per atorgar un servidor intermediari Nginx amb accés permissiu al sòcol de xarxa, executeu l'ordre següent:

# setsebool httpd_can_network_connect on -P
# getsebool -a | grep httpd 

A continuació, reinicieu el dimoni Nginx per reflectir els canvis fets anteriorment:

# systemctl restart nginx
OR
# service nginx restart

13. Aquest següent pas és una característica opcional de seguretat i implica el canvi del sòcol de xarxa que està escoltant l'aplicació Odoo, canviant l'adreça d'enllaç de totes les interfícies (o adreça) només a localhost.

Aquest canvi només s'ha de fer juntament amb el servidor intermediari invers Nginx a causa del fet que vincular l'aplicació a localhost només implica que Odoo no serà accessible des dels usuaris de la LAN o d'altres xarxes.

Per activar aquest canvi, obriu el fitxer /etc/odoo/openerp-server.conf i editeu la línia xmlrpc_interface per vincular-lo a localhost només com es suggereix a la captura de pantalla següent.

xmlrpc_interface = 127.0.0.1

Per reflectir els canvis, reinicieu el servei Odoo executant l'ordre següent:

# systemctl restart odoo.service
OR
# service odoo restart

14. En cas que la vostra màquina tingui una línia de defensa de xarxa proporcionada pel tallafoc, emeteu les ordres següents per obrir els ports del tallafoc al món exterior per al servidor intermediari 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. Això és! Ara podeu accedir amb èxit a la vostra aplicació ERP Odoo visitant l'adreça IP o el nom de domini del vostre servidor.

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

16. Per executar els serveis automàticament després d'un reinici del sistema, emeteu l'ordre següent per habilitar tots els dimonis de tot el sistema amb un sol cop.

------------ 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

NOTA: Per als informes PDF, heu de descarregar i instal·lar manualment els paquets binaris wkhtmltopdf per a la vostra pròpia distribució visitant l'enllaç següent Instal·la wkhtmltopdf per convertir la pàgina HTML a PDF.