Búsqueda de sitios web

Cómo instalar Odoo 16 en CentOS 7 | RHEL 7 |


Esta guía lo guiará a través de los pasos para instalar y configurar Odoo en CentOS 7| RHEL 7. Odoo es un software empresarial popular con una gama de aplicaciones empresariales como CRM, POS, creador de sitios web, gestión de almacenes, gestión de proyectos, comercio electrónico, marketing, facturación y contabilidad, fabricación, entre muchas otras. Todas estas aplicaciones están perfectamente integradas y se administran desde una consola web.

Al momento de escribir este artículo, la última versión de Odoo disponible para descargar y usar es Odoo v16. En el resto de este artículo, instalaremos y configuraremos Odoo en CentOS 7/RHEL 7. Usaremos la base de datos PostgreSQL y Nginx como proxy frontend para Odoo que se ejecuta en CentOS 7.

Paso 1: agregar el repositorio EPEL

Agregue el repositorio EPEL a CentOS 7 ejecutando el comando.

sudo yum -y install epel-release vim bash-completion

Ponga SELinux en modo permisivo.

sudo setenforce 0
sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

Después de agregar el repositorio EPEL, le recomiendo que actualice su sistema.

sudo yum -y update

Paso 2: Instale el servidor de base de datos PostgreSQL

Después de agregar el repositorio EPEL, instale el servidor de base de datos PostgreSQL en CentOS 7. Al momento de escribir este artículo, la última versión de PostgreSQL es la versión 14. Instálelo usando nuestra guía.

  • Cómo instalar PostgreSQL 13 en CentOS 7

Paso 3: instale Python 3 y wkhtmltopdf

En este paso realizaremos la instalación de Python 3.9 y el paquete wkhtmltopdf.

Instale Python 3.9 en CentOS 7/RHEL 7

Siga nuestra guía en el siguiente enlace para instalar

  • Instale Python 3.9 en CentOS 8/CentOS 7

Después de la instalación, verifique la versión de Python 3 instalada:

$ python3.9 --version
Python 3.9.9

$ pip3.9 --version
pip 21.2.4 from /usr/local/lib/python3.9/site-packages/pip (python 3.9)

Establecer enlace simbólico de Python 3

$ sudo ln -fs /usr/local/bin/python3.9 /usr/bin/python3

$ python3 -V
Python 3.9.17

Odoo utiliza wkhtmltopdf para generar informes en formato PDF. La versión recomendada de wkhtmltopdf para instalar es 0.12.5 y está disponible en la página de descarga de wkhtmltopdf, en la sección de archivo.

sudo yum -y install https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm

Confirmar la versión instalada.

$ wkhtmltopdf --version
wkhtmltopdf 0.12.5 (with patched qt)

Paso 4: Instale Odoo en CentOS 7 | RHEL 7

Instale todas las herramientas de desarrollo necesarias:

sudo yum -y install gcc git wget nodejs libxslt-devel bzip2-devel openldap-devel freetype-devel libjpeg-devel

Instalar el paquete de desarrollo PosgtreSQL

sudo yum -y  install centos-release-scl
sudo yum -y install postgresql13-devel

Cree un usuario de PostgreSQL odoo:

sudo su - postgres -c "createuser -s odoo"

Crear usuario del sistema operativo utilizado por odoo

sudo useradd -m -U -r -d /opt/odoo -s /bin/bash odoo

Cambiar a usuario de odoo:

sudo su - odoo

Descargue Odoo en el directorio /opt/odoo desde el repositorio de Github

git clone https://www.github.com/odoo/odoo --depth 1 --branch 16.0 /opt/odoo/odoo

Cree el entorno virtual Python para Odoo usando los siguientes comandos:

cd /opt/odoo
python3.9 -m venv odoo-venv

Activar el entorno virtual

source odoo-venv/bin/activate

Actualizar RUTA:

echo 'PATH=$PATH:/usr/pgsql-13/bin/'|tee -a ~/.bashrc
source ~/.bashrc
echo $PATH

Instale los módulos requeridos en el archivo de requisitos

pip3.9 install --upgrade pip
pip3.9 install -r odoo/requirements.txt

Fijación error de instalación de psycopg2

Si encuentra un mensaje de error como este:

Collecting psycopg2==2.8.6
  Using cached psycopg2-2.8.6.tar.gz (383 kB)
  Preparing metadata (setup.py) ... error
  ERROR: Command errored out with exit status 1:
    command: /opt/odoo/odoo-venv/bin/python3 -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-f56d763j/psycopg2_b01a674969b842af93ecce0951e28bcb/setup.py'"'"'; __file__='"'"'/tmp/pip-install-f56d763j/psycopg2_b01a674969b842af93ecce0951e28bcb/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-j47tvfky

Descomentar

$ vim odoo/requirements.txt
#psycopg2==2.7.7; sys_platform != 'win32' and python_version < '3.8'
#psycopg2==2.8.6; sys_platform == 'win32' or python_version >= '3.8'

Luego instale el módulo psycopg2-binary y otros requisitos:

pip3.9 install psycopg2-binary===2.8.6
pip3.9 install -r odoo/requirements.txt

Después de las instalaciones desactive y salga del entorno virtual:

(odoo-venv) [odoo@centos ~]$ deactivate
[odoo@centos ~]$ exit
logout

Paso 5: Configurar la instancia de Odoo en CentOS 7 | RHEL 7

Cree una carpeta para complementos personalizados:

sudo mkdir /opt/odoo/odoo-custom-addons

Dar permisos de usuario de odoo al directorio creado

sudo chown odoo:odoo /opt/odoo/odoo-custom-addons

Cree un directorio para almacenar registros de odoo:

sudo mkdir /var/log/odoo
sudo touch /var/log/odoo/odoo.log
sudo chown -R odoo:odoo /var/log/odoo

Crear archivo de configuración de Odoo

$ sudo vim /etc/odoo.conf
[options]
; This is the password that allows database operations:
admin_passwd = OdooAdminPassw0rd
db_host = False
db_port = False
db_user = odoo
db_password = False
xmlrpc_port = 8069
; longpolling_port = 8072
logfile = /var/log/odoo/odoo.log
logrotate = True
addons_path = /opt/odoo/odoo/addons,/opt/odoo/odoo-custom-addons

Establecer permiso de archivo

sudo chown odoo:odoo /etc/odoo.conf
sudo chmod 640 /etc/odoo.conf

Paso 6: crear el archivo de unidad systemd

Cree un archivo systemd en el servicio odoo

sudo tee /etc/systemd/system/odoo.service<<EOF
[Unit]
Description=Odoo Service Unit

[Service]
Type=simple
User=odoo
Group=odoo
SyslogIdentifier=odoo
PermissionsStartOnly=true
ExecStart=/opt/odoo/odoo-venv/bin/python3 /opt/odoo/odoo/odoo-bin -c /etc/odoo.conf
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target
EOF

Recargar el demonio systemd

sudo systemctl daemon-reload

Iniciar servicio odoo

sudo systemctl start odoo.service
sudo systemctl enable odoo.service

Confirme que el puerto 8069 esté vinculado.

$ sudo ss -tunelp | grep 8069
tcp    LISTEN     0      128       *:8069                  *:*                   users:(("python3",pid=20896,fd=4)) uid:996 ino:59302 sk:ffff88d9b5ee1f00 <->

Ahora puedes acceder a la consola web de Odoo en su página de inicio:

http://{hostname_or_ip_address}:8069

Paso 7: Configurar Nginx Proxy (sin SSL): no recomendado

Instalar Nginx en CentOS 7

sudo yum -y install nginx
sudo systemctl enable --now nginx

Cree un nuevo archivo de configuración para odoo.

sudo vim /etc/nginx/conf.d/odoo.conf

Modifique este fragmento de configuración para que se ajuste a su configuración.

# Odoo Upstreams
upstream odooserver {
 server 127.0.0.1:8069;
}

server {
    listen 80;
    server_name erp.computingforgeeks.com;
    access_log /var/log/nginx/odoo_access.log;
    error_log /var/log/nginx/odoo_error.log;


    # Proxy settings
    proxy_read_timeout 720s;
    proxy_connect_timeout 720s;
    proxy_send_timeout 720s;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;

    # Request for root domain
    location / {
       proxy_redirect off;
       proxy_pass http://odooserver;
    }

    # Cache static files
    location ~* /web/static/ {
        proxy_cache_valid 200 90m;
        proxy_buffering on;
        expires 864000;
        proxy_pass http://odooserver;
    }

    # Gzip
    gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
    gzip on;
}

Reemplace erp.computingforgeeks con su nombre de dominio y luego valide el archivo de configuración de Nginx.

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Si todo parece bien, reinicie Nginx.

sudo systemctl restart nginx

Paso 6: Configurar Nginx Proxy (con certificado SSL): recomendado

Si su servidor tiene una IP pública, puede crear un registro DNS A para que su dominio apunte al servidor Odoo y solicite el certificado SSL Let's Encrypt gratuito.

Instalar Nginx en CentOS 7

sudo yum -y install nginx
sudo systemctl enable --now nginx

Instale la herramienta certbot-auto.

sudo yum -y install epel-release
sudo yum -y install certbot python2-certbot-nginx

Detenga el servicio Nginx.

sudo systemctl stop nginx

Obtenga certificados SSL Let's Encrypt para su dominio.

export DOMAIN="erp.computingforgeeks.com"
export EMAIL="[email "
sudo /usr/bin/certbot certonly --standalone -d ${DOMAIN} --preferred-challenges http --agree-tos -n -m ${EMAIL} --keep-until-expiring

La ruta a los archivos de certificado se muestra en la sección “NOTAS IMPORTANTES”.

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/erp.computingforgeeks.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/erp.computingforgeeks.com/privkey.pem
   Your cert will expire on 2020-01-19. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot-auto
   again. To non-interactively renew *all* of your certificates, run
   "certbot-auto renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Cree cron para renovar el certificado.

$ sudo crontab -e
15 3 * * * /usr/bin/certbot renew --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx"

Cree el archivo de configuración de Nginx.

sudo vim /etc/nginx/conf.d/odoo.conf

Pegue lo siguiente en el archivo y modifíquelo para adaptarlo a su entorno.

# Odoo Upstreams
upstream odooserver {
 server 127.0.0.1:8069;
}

# http to https redirection
server {
    listen 80;
    server_name erp.computingforgeeks.com;
    return 301 https://erp.computingforgeeks.com$request_uri;
}

server {
    listen 443 ssl;
    server_name erp.computingforgeeks.com;
    access_log /var/log/nginx/odoo_access.log;
    error_log /var/log/nginx/odoo_error.log;
   
   # SSL
    ssl_certificate /etc/letsencrypt/live/erp.computingforgeeks.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/erp.computingforgeeks.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/erp.computingforgeeks.com/chain.pem;


    # Proxy settings
    proxy_read_timeout 720s;
    proxy_connect_timeout 720s;
    proxy_send_timeout 720s;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;

    # Request for root domain
    location / {
       proxy_redirect off;
       proxy_pass http://odooserver;
    }

    # Cache static files
    location ~* /web/static/ {
        proxy_cache_valid 200 90m;
        proxy_buffering on;
        expires 864000;
        proxy_pass http://odooserver;
    }

    # Gzip Compression
    gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
    gzip on;
}

Valide sus configuraciones de Nginx.

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Reinicie Nginx.

sudo systemctl restart nginx

Paso 7: acceda a Odoo en Debian 10 Linux

Acceda a la página web de Odoo en su nombre de dominio desde una web: https://DNShostname.

En la primera página, establezca el nombre de la base de datos, la dirección de correo electrónico del usuario administrador y la contraseña para el usuario administrador.

Utilice el menú Aplicaciones para instalar otras aplicaciones de Odoo.

Ejemplo :

Ahí tienes. Odoo se ha instalado en el servidor CentOS 7 Linux. Explore más funciones y aplicaciones de Odoo disponibles para su instalación. La siguiente página a visitar es la documentación oficial de Odoo.

Para la familia Debian, consulte:

  • Instalar Odoo en Ubuntu
  • Instalar Odoo en Debian

Artículos relacionados: