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