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.