Búsqueda de sitios web

Configuración de OpenERP (Odoo) 9 con Nginx en RHEL/CentOS y Debian/Ubuntu


Odoo, anteriormente conocido como OpenERP, es un software empresarial ERP de código abierto para planificación de recursos empresariales basado en web escrito en Python que viene con un conjunto de aplicaciones web. aplicaciones diseñadas para cada negocio, como creadores de sitios web, módulos de comercio electrónico, facturación y contabilidad, recursos humanos, punto de venta, gestión de relaciones con el cliente, módulo de inventario, chat en vivo y muchas otras aplicaciones y funciones.

Este tutorial le guiará sobre cómo instalar la última versión estable de Odoo (versión 9) en un RHEL/CentOS/Fedora o < Sistemas basados en Debian/Ubuntu con servidor Nginx para actuar como proxy inverso en el frontend para acceder a la interfaz web de forma más rápida, segura y desde puertos de navegación web estándar, sin necesidad de carga a los usuarios para que utilicen los puertos de redireccionamiento del navegador.

Paso 1: Instalar y proteger la base de datos PostgreSQL

1. Antes de continuar con la instalación de Odoo, primero asegúrese de que su sistema venga con los paquetes proporcionados por los repositorios de Epel para poder instalar la base de datos backend PostgreSQL. .

También asegúrese de que el servidor esté actualizado con los últimos paquetes y parches de seguridad emitiendo los siguientes comandos:

----------- 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ón, continúe e instale el servidor de base de datos PostgreSQL, que es la base de datos predeterminada utilizada por Odoo para almacenar información.

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

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

Inicialice la base de datos PostgreSQL.

postgresql-setup initdb	

Ahora finalmente inicie la base de datos PostgreSQL emitiendo el siguiente comando:

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

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

Como paso adicional para proteger al usuario predeterminado de PostgreSQL, que tiene una contraseña en blanco, ejecute el siguiente comando con privilegios de root para cambiar la contraseña:

sudo -u postgres psql
postgres=# \password postgres

Paso 2: Instale Odoo 9 – OpenERP

3. Para instalar Odoo 9 desde el repositorio oficial, primero cree un nuevo archivo de repositorio yum para Odoo con el siguiente contenido:

En sistemas CentOS/RHEL

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

Agregue el siguiente extracto al archivo 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

En sistemas Debian/Ubuntu

En Debian/Ubuntu, ejecute el siguiente comando para agregar los repositorios de 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ón, instale el software Odoo 9 desde los archivos binarios.

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

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

A continuación, inícielo y verifique el estado del demonio emitiendo los siguientes comandos:

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

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

Como paso adicional, puede verificar el puerto de escucha del servicio Odoo ejecutando el comando ss o netstat:

ss -tulpn
OR
netstat -tulpn

De forma predeterminada, Odoo escucha las conexiones de red en el puerto 8069/TCP.

Paso 3: Configurar Odoo desde la interfaz web

5. Para seguir configurando Odoo, inicie un navegador y acceda a la interfaz web de Odoo en el siguiente URI:

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

6. A continuación se le pedirá que cree una nueva base de datos para Odoo y establezca una contraseña segura para la cuenta de administrador.

7. Una vez creada la base de datos serás redirigido al panel web de administración donde podrás instalar más aplicaciones y configurar tu ERP. Por el momento deja la aplicación como predeterminada y cierra sesión.

8. Una vez que regrese a la pantalla de inicio de sesión, presione el enlace Administrar bases de datos y establezca una contraseña maestra para proteger el administrador de bases de datos de Odoo.

9. Una vez que haya asegurado el administrador de base de datos de Odoo, puede iniciar sesión en su aplicación y comenzar a configurarla aún más con las aplicaciones y configuraciones requeridas.

Paso 4: acceda a Odoo desde la interfaz de Nginx

Puede configurar el sistema para que los usuarios puedan acceder al panel web de Odoo a través del proxy inverso de Nginx. Esto puede facilitar que los usuarios naveguen más rápido por la interfaz web de Odoo, debido al almacenamiento en caché de la interfaz de Nginx, en puertos HTTP estándar sin la necesidad de ingresar manualmente el puerto http 8069 en sus navegadores. .

Para configurar esta configuración, primero debe instalar y configurar Nginx en su sistema siguiendo los siguientes pasos.

10. Primero instale el servidor web Nginx con el siguiente comando:

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

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

11. A continuación, abra el archivo de configuración principal de Nginx con un editor de texto e inserte el siguiente bloque después de la línea que especifica la ubicación raíz del documento Nginx.

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

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

Agregue el siguiente extracto de configuración al archivo 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;

Además, comente la declaración location de Nginx colocando un # delante de las siguientes líneas. Utilice la siguiente captura de pantalla como guía.

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

12. Después de haber realizado todos los cambios anteriores, reinicie el demonio Nginx, pero no antes de ejecutar el comando getenforce para verificar si Selinux está habilitado en su máquina.

En sistemas CentOS/RHEL

En caso de que la política esté configurada como Enforced, deshabilítela emitiendo los siguientes comandos:

setenforce 0
getenforce

Para deshabilitar completamente Selinux, abra el archivo /etc/selinux/config con un editor de texto y configure la línea SELINUX como deshabilitada.

Si no desea deshabilitar completamente la política de Seliux y solo desea relajar las reglas para otorgar al proxy Nginx acceso permisivo al socket de red, ejecute el siguiente comando:

setsebool httpd_can_network_connect on -P
getsebool -a | grep httpd 

Luego, reinicie el demonio Nginx para reflejar los cambios realizados anteriormente:

systemctl restart nginx
OR
service nginx restart

13. Este siguiente paso es una característica opcional de seguridad e implica el cambio del socket de red que la aplicación Odoo está escuchando, cambiando la dirección de enlace de todas las interfaces (o dirección) a Solo host local.

Este cambio debe realizarse solo en conjunto con el proxy inverso de Nginx debido al hecho de que vincular la aplicación en localhost solo implica que los usuarios dentro de la LAN u otras redes no podrán acceder a Odoo.

Para activar este cambio, abra el archivo /etc/odoo/openerp-server.conf y edite la línea xmlrpc_interface para vincularla en localhost solo como se sugiere en la siguiente captura de pantalla.

xmlrpc_interface = 127.0.0.1

Para reflejar los cambios, reinicie el servicio Odoo ejecutando el siguiente comando:

systemctl restart odoo.service
OR
service odoo restart

14. En caso de que su máquina tenga una línea de defensa de red proporcionada por el firewall, ejecute los siguientes comandos para abrir los puertos del firewall al mundo exterior para el 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. ¡Eso es! Ahora puede acceder con éxito a su aplicación ERP Odoo visitando la dirección IP o el nombre de dominio de su servidor.

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

16. Para ejecutar automáticamente los servicios después de reiniciar el sistema, ejecute el siguiente comando para habilitar todos los demonios en todo el sistema con un solo disparo.

------------ 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: Para informes en PDF, debe descargar e instalar manualmente los paquetes binarios wkhtmltopdf para su propia distribución visitando el siguiente enlace Instalar wkhtmltopdf para convertir una página HTML a PDF.