Odoo 14 auf CentOS 8 mit Nginx installieren

Odoo ist ein Open-Source-ERP- und CRM-System, das für die Verwaltung der grundlegenden Unternehmensbedürfnisse wie Material- und Lagerverwaltung, Personalwesen, Finanzen, Buchhaltung, Vertrieb, Inventar und viele andere Unternehmensfunktionen verwendet wird. Es wurde mit Python entwickelt und verwendet PostgreSQL als Datenbank. Die neueste Version Odoo 14 bietet sehr nützliche Funktionen wie einen neuen Website-Builder, neue Business-Intelligence-Tools, neue und verbesserte Inventar- und MRP-Menüs und vieles mehr.

In diesem Beitrag zeigen wir dir, wie du Odoo 14 mit Nginx auf CentOS 8 installierst.

Voraussetzungen

  • Ein Server, auf dem CentOS 8 läuft.
  • Ein gültiger Domainname, der auf die IP deines Servers zeigt.
  • Ein Root-Passwort ist auf dem Server konfiguriert.

Erste Schritte

Bevor du beginnst, musst du Python, wkhtmltopdf und andere erforderliche Abhängigkeiten auf deinem System installieren. Führe den folgenden Befehl aus, um sie alle zu installieren:

dnf install python3 redhat-rpm-config libxslt-devel bzip2-devel openldap-devel python3-devel git gcc libjpeg-devel freetype-devel curl unzip -y
dnf install https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox-0.12.5-1.centos8.x86_64.rpm

Sobald alle Abhängigkeiten installiert sind, kannst du mit dem nächsten Schritt fortfahren.

PostgreSQL installieren und konfigurieren

Odoo verwendet PostgreSQL als Datenbank-Backend. Daher musst du es auf deinem System installieren. Führe den folgenden Befehl aus, um PostgreSQL zu installieren:

dnf install postgresql postgresql-server postgresql-contrib -y

Sobald PostgreSQL installiert ist, initialisiere die Datenbank mit dem folgenden Befehl:

postgresql-setup initdb

Du solltest die folgende Ausgabe sehen:

WARNING: using obsoleted argument syntax, try --help
WARNING: arguments transformed to: postgresql-setup --initdb --unit postgresql
 * Initializing database in '/var/lib/pgsql/data'
 * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log

Starte als Nächstes den PostgreSQL-Dienst und aktiviere ihn so, dass er beim Neustart des Systems gestartet wird:

systemctl start postgresql
systemctl enable postgresql

Als Nächstes erstellst du einen neuen Benutzer für odoo mit folgendem Befehl:

su - postgres -c "createuser -s odoo14"

Sobald du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.

Odoo 14 installieren

Es wird empfohlen, Odoo als eigenständigen Benutzer zu installieren und auszuführen. Mit dem folgenden Befehl kannst du einen neuen Benutzer für Odoo anlegen:

useradd -m -U -r -d /opt/odoo14 -s /bin/bash odoo14

Hinweis: Odoo-Benutzer und PostgreSQL-Benutzer müssen identisch sein.

Als Nächstes wechselst du den Benutzer zu Odoo 14 und lädst die neueste Version von Odoo 14 mit dem folgenden Befehl herunter:

su - odoo14
git clone https://www.github.com/odoo/odoo --depth 1 --branch 14.0 /opt/odoo14/odoo14

Sobald der Download abgeschlossen ist, wechselst du in das Verzeichnis odoo14 und erstellst mit dem folgenden Befehl eine neue virtuelle Python-Umgebung:

cd /opt/odoo14
python3 -m venv odooenv

Als Nächstes aktivierst du die virtuelle Umgebung mit dem folgenden Befehl:

source odooenv/bin/activate

Als Nächstes installierst du weitere Python-Abhängigkeiten mit dem folgenden Befehl:

(odooenv) [odoo14@centos8 ~]$ pip3 install wheel
(odooenv) [odoo14@centos8 ~]$ pip3 install -r odoo14/requirements.txt

Als Nächstes deaktivierst du die virtuelle Umgebung und beendest den Odoo-Benutzer mit dem folgenden Befehl:

(odooenv) [odoo14@centos8 ~]$ deactivate
exit

Wenn du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.

Odoo 14 konfigurieren

Als Nächstes musst du ein Verzeichnis erstellen, in dem Odoo 14 Addons gespeichert werden. Du kannst es mit dem folgenden Befehl erstellen:

mkdir /opt/odoo14/odoo14-custom-addons

Als Nächstes musst du dem Addons-Verzeichnis die richtigen Eigentumsrechte zuweisen:

chown -R odoo14:odoo14 /opt/odoo14/odoo14-custom-addons

Als Nächstes legst du ein Log-Verzeichnis und eine Log-Datei für Odoo 14 an und legst die richtigen Eigentumsverhältnisse fest:

mkdir /var/log/odoo14
touch /var/log/odoo14/odoo14.log
chown -R odoo14: /var/log/odoo14/

Als Nächstes erstellst du eine Konfigurationsdatei für Odoo 14:

nano /etc/odoo14.conf

Füge die folgenden Zeilen hinzu:

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

Speichere und schließe die Datei, wenn du fertig bist.

Erstellen einer Systemd Unit-Datei für Odoo 14

Als Nächstes musst du eine systemd-Dienstdatei erstellen, um den Odoo 14-Dienst zu verwalten. Du kannst sie mit dem folgenden Befehl erstellen:

nano /etc/systemd/system/odoo14.service

Füge die folgenden Zeilen ein:

[Unit]
Description=Odoo14
Requires=postgresql.service
After=network.target postgresql.service
[Service]
Type=simple
SyslogIdentifier=odoo14
PermissionsStartOnly=true
User=odoo14
Group=odoo14
ExecStart=/opt/odoo14/odooenv/bin/python3 /opt/odoo14/odoo14/odoo-bin -c /etc/odoo14.conf
StandardOutput=journal+console
[Install]
WantedBy=multi-user.target

Speichere und schließe die Datei und lade dann den systemd-Daemon mit dem folgenden Befehl neu:

systemctl daemon-reload

Als Nächstes startest du den Odoo 14-Dienst und aktivierst ihn mit dem folgenden Befehl, damit er beim Neustart des Systems gestartet wird:

systemctl start odoo14
systemctl enable odoo14

Jetzt kannst du den Status des Odoo 14-Dienstes mit dem folgenden Befehl überprüfen:

systemctl status odoo14

Du solltest die folgende Ausgabe erhalten:

? odoo14.service - Odoo14
   Loaded: loaded (/etc/systemd/system/odoo14.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2021-05-01 06:29:56 EDT; 5s ago
 Main PID: 26505 (python3)
    Tasks: 4 (limit: 25014)
   Memory: 91.8M
   CGroup: /system.slice/odoo14.service
           ??26505 /opt/odoo14/odooenv/bin/python3 /opt/odoo14/odoo14/odoo-bin -c /etc/odoo14.conf

May 01 06:29:56 centos8 systemd[1]: Started Odoo14.

Wenn du fertig bist, kannst du mit dem nächsten Schritt fortfahren.

Nginx für Odoo 14 installieren und konfigurieren

Jetzt ist Odoo 14 installiert und läuft. Jetzt ist es ratsam, Nginx als Reverse Proxy für Odoo zu konfigurieren.

Installiere zunächst das Nginx-Paket mit dem folgenden Befehl:

dnf install nginx -y

Sobald Nginx installiert ist, erstellst du mit dem folgenden Befehl eine neue Konfigurationsdatei für den virtuellen Nginx-Host:

nano /etc/nginx/conf.d/odoo14.conf

Füge die folgenden Zeilen hinzu:

upstream odoo {
 server 127.0.0.1:8069;
}

upstream odoochat {
 server 127.0.0.1:8072;
}

server {
    listen 80;
    server_name odoo.example.com;

    proxy_read_timeout 720s;
    proxy_connect_timeout 720s;
    proxy_send_timeout 720s;

    # Proxy headers
    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;

    # log files
    access_log /var/log/nginx/odoo.access.log;
    error_log /var/log/nginx/odoo.error.log;

    # Handle longpoll requests
    location /longpolling {
        proxy_pass http://odoochat;
    }

    # Handle / requests
    location / {
       proxy_redirect off;
       proxy_pass http://odoo;
    }

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

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

Speichere und schließe die Datei und überprüfe Nginx mit dem folgenden Befehl auf Syntaxfehler:

nginx -t

Du solltest die folgende Ausgabe erhalten:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Starte als Nächstes den Nginx-Dienst und aktiviere ihn so, dass er beim Neustart des Systems startet:

systemctl start nginx
systemctl enable nginx

Du kannst Nginx auch mit dem folgenden Befehl überprüfen:

systemctl status nginx

Du solltest die folgende Ausgabe erhalten:

? nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2021-05-01 06:31:19 EDT; 3s ago
  Process: 26627 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 26625 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 26623 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 26628 (nginx)
    Tasks: 3 (limit: 25014)
   Memory: 5.3M
   CGroup: /system.slice/nginx.service
           ??26628 nginx: master process /usr/sbin/nginx
           ??26629 nginx: worker process
           ??26630 nginx: worker process

May 01 06:31:19 centos8 systemd[1]: Starting The nginx HTTP and reverse proxy server...
May 01 06:31:19 centos8 nginx[26625]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
May 01 06:31:19 centos8 nginx[26625]: nginx: configuration file /etc/nginx/nginx.conf test is successful
May 01 06:31:19 centos8 systemd[1]: Started The nginx HTTP and reverse proxy server.

Als Nächstes bearbeitest du die Konfigurationsdatei von Odoo 14 und aktivierst den Proxy-Modus:

nano /etc/odoo14.conf

Füge die folgende Zeile hinzu:

proxy_mode = True

Speichere und schließe die Datei und starte den Odoo 14-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart odoo14

Firewall konfigurieren

Als Nächstes musst du den Port 80 in der Firewall zulassen. Du kannst ihn mit dem folgenden Befehl zulassen:

firewall-cmd --permanent --add-service=http

Lade dann die Firewall neu, um die Änderungen zu übernehmen:

firewall-cmd --reload

Sobald du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.

Zugriff auf Odoo 14 Dashboard

Öffne nun deinen Webbrowser und rufe das Odoo 14 Webinterface über die URL http://odoo.example.com auf. Du wirst auf die folgende Seite weitergeleitet:

Gib dein Odoo Master-Passwort und die Datenbank ein und klicke auf die Schaltfläche Datenbank erstellen. Auf der folgenden Seite solltest du das Odoo 14 Dashboard sehen:

Fazit

Glückwunsch! Du hast Odoo 14 ERP mit Nginx auf CentOS 8 erfolgreich installiert. Du kannst Odoo jetzt in deiner Produktionsumgebung einsetzen und die Produktivität steigern.

Das könnte dich auch interessieren …