GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So stellen Sie Odoo 12 auf Ubuntu 18.04 bereit

Odoo ist die beliebteste All-in-One-Unternehmenssoftware der Welt. Es bietet eine Reihe von Geschäftsanwendungen, darunter CRM, Website, E-Commerce, Rechnungsstellung, Buchhaltung, Fertigung, Lager, Projektmanagement, Inventar und vieles mehr, die alle nahtlos integriert sind.

Odoo kann auf verschiedene Arten installiert werden. Der einfachste und schnellste Weg, Odoo zu installieren, ist die Verwendung der offiziellen APT-Repositories.

Wenn Sie mehr Flexibilität haben möchten, z. B. mehrere Odoo-Versionen auf demselben System ausführen möchten, können Sie entweder Docker und Docker Compose verwenden oder Odoo in einer virtuellen Umgebung installieren.

Dieses Tutorial behandelt die erforderlichen Schritte zum Installieren und Konfigurieren von Odoo 12 für die Produktion mit Git-Quelle und virtueller Python-Umgebung auf einem Ubuntu 18.04-System.

Bevor Sie anfangen #

Melden Sie sich als sudo-Benutzer bei Ihrem Ubuntu-Rechner an und aktualisieren Sie das System auf die neuesten Pakete:

sudo apt update && sudo apt upgrade

Installieren Sie Git, Pip, Node.js und die Tools, die zum Erstellen von Odoo-Abhängigkeiten erforderlich sind:

sudo apt install git python3-pip build-essential wget python3-dev python3-venv python3-wheel libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools node-less

Odoo-Benutzer # erstellen

Erstellen Sie einen neuen Systembenutzer für Odoo mit dem Namen odoo12 mit Heimatverzeichnis /opt/odoo12 mit dem folgenden Befehl:

sudo useradd -m -d /opt/odoo12 -U -r -s /bin/bash odoo12
Sie können einen beliebigen Namen für Ihren Odoo-Benutzer verwenden, solange Sie einen PostgreSQL-Benutzer mit demselben Namen erstellen.

Installieren und konfigurieren Sie PostgreSQL #

Installieren Sie das PostgreSQL-Paket aus den Standard-Repositories von Ubuntu:

sudo apt install postgresql

Sobald die Installation abgeschlossen ist, erstellen Sie einen PostgreSQL-Benutzer mit demselben Namen wie der zuvor erstellte Systembenutzer, in unserem Fall ist das odoo12 :

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

Installieren Sie Wkhtmltopdf #

Die wkhtmltox Paket bietet eine Reihe von Open-Source-Befehlszeilentools, die HTML in PDF und verschiedene Bildformate rendern können. Um PDF-Berichte zu drucken, benötigen Sie wkhtmltopdf Werkzeug. Die empfohlene Version für Odoo ist 0.12.x die nicht in den offiziellen Ubuntu 18.04-Repositories verfügbar ist.

Laden Sie das Paket mit dem folgenden wget-Befehl herunter:

wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.bionic_amd64.deb

Sobald der Download abgeschlossen ist, installieren Sie das Paket, indem Sie Folgendes eingeben:

sudo apt install ./wkhtmltox_0.12.5-1.bionic_amd64.deb

Installieren und konfigurieren Sie Odoo #

Wir werden Odoo aus dem GitHub-Repository in einer isolierten virtuellen Python-Umgebung installieren.

Bevor Sie mit der Installation beginnen, wechseln Sie zum Benutzer „odoo12“:

sudo su - odoo12

Klonen Sie zunächst den Quellcode von Odoo 12 aus dem Odoo GitHub-Repository:

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

Erstellen Sie nach dem Herunterladen des Quellcodes eine neue virtuelle Python-Umgebung für die Odoo 12-Installation:

cd /opt/odoo12python3 -m venv odoo-venv

Als nächstes aktivieren Sie die Umgebung mit dem folgenden Befehl:

source odoo-venv/bin/activate

Installieren Sie alle erforderlichen Python-Module mit pip3:

pip3 install wheelpip3 install -r odoo/requirements.txt
Wenn während der Installation Kompilierungsfehler auftreten, vergewissern Sie sich, dass Sie alle erforderlichen Abhängigkeiten installiert haben, die im Abschnitt Before you begin aufgeführt sind Sektion.

Deaktivieren Sie die Umgebung mit dem folgenden Befehl:

deactivate

Erstellen Sie ein neues Verzeichnis für die benutzerdefinierten Addons:

mkdir /opt/odoo12/odoo-custom-addons

Wechseln Sie zurück zu Ihrem sudo-Benutzer:

exit

Erstellen Sie als Nächstes eine Konfigurationsdatei, indem Sie die enthaltene Beispielkonfigurationsdatei kopieren:

sudo cp /opt/odoo12/odoo/debian/odoo.conf /etc/odoo12.conf

Öffnen Sie die Datei und bearbeiten Sie sie wie folgt:

sudo nano /etc/odoo12.conf
/etc/odoo12.conf
[options]
; This is the password that allows database operations:
admin_passwd = my_admin_passwd
db_host = False
db_port = False
db_user = odoo12
db_password = False
addons_path = /opt/odoo12/odoo/addons,/opt/odoo12/odoo-custom-addons
Vergessen Sie nicht, das my_admin_passwd zu ändern zu etwas Sichererem.

Erstellen Sie eine Systemd-Unit-Datei #

Um Odoo als Dienst auszuführen, müssen wir eine Service-Unit-Datei in /etc/systemd/system/ erstellen Verzeichnis.

Öffnen Sie Ihren Texteditor und fügen Sie die folgende Konfiguration ein:

sudo nano /etc/systemd/system/odoo12.service
/etc/systemd/system/odoo12.service
[Unit]
Description=Odoo12
Requires=postgresql.service
After=network.target postgresql.service

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

[Install]
WantedBy=multi-user.target

Benachrichtigen Sie systemd, dass eine neue Unit-Datei existiert, und starten Sie den Odoo-Dienst, indem Sie Folgendes ausführen:

sudo systemctl daemon-reloadsudo systemctl start odoo12

Überprüfen Sie den Dienststatus mit dem folgenden Befehl:

sudo systemctl status odoo12

Die Ausgabe sollte in etwa so aussehen, was anzeigt, dass der Odoo-Dienst aktiv ist und ausgeführt wird.

* odoo12.service - Odoo12
   Loaded: loaded (/etc/systemd/system/odoo12.service; disabled; vendor preset: enabled)
   Active: active (running) since Tue 2018-10-09 14:15:30 PDT; 3s ago
 Main PID: 24334 (python3)
    Tasks: 4 (limit: 2319)
   CGroup: /system.slice/odoo12.service
           `-24334 /opt/odoo12/odoo-venv/bin/python3 /opt/odoo12/odoo/odoo-bin -c /etc/odoo12.conf

Aktivieren Sie den automatischen Start des Odoo-Dienstes beim Booten:

sudo systemctl enable odoo12

Wenn Sie die vom Odoo-Dienst protokollierten Nachrichten sehen möchten, können Sie den folgenden Befehl verwenden:

sudo journalctl -u odoo12

Testen Sie die Installation #

Öffnen Sie Ihren Browser und geben Sie Folgendes ein:http://<your_domain_or_IP_address>:8069

Vorausgesetzt, die Installation ist erfolgreich, wird ein Bildschirm ähnlich dem folgenden angezeigt:

Konfigurieren Sie Nginx als SSL-Terminierungsproxy #

Stellen Sie sicher, dass Sie die folgenden Voraussetzungen erfüllt haben, bevor Sie mit diesem Abschnitt fortfahren:

  • Domänenname, der auf Ihre öffentliche Server-IP verweist. In diesem Tutorial verwenden wir example.com .
  • Nginx installiert.
  • SSL-Zertifikat für Ihre Domain. Sie können ein kostenloses SSL-Zertifikat von Let’s Encrypt installieren.

Der standardmäßige Odoo-Webserver bedient Datenverkehr über HTTP. Um unsere Odoo-Bereitstellung sicherer zu machen, werden wir Nginx als SSL-Terminierungsproxy konfigurieren, der den Datenverkehr über HTTPS bedient.

Der SSL-Terminierungsproxy ist ein Proxyserver, der die SSL-Verschlüsselung/-Entschlüsselung übernimmt. Das bedeutet, dass unser Terminierungs-Proxy (Nginx) eingehende TLS-Verbindungen (HTTPS) verarbeitet und entschlüsselt und die unverschlüsselten Anfragen an unseren internen Dienst (Odoo) weiterleitet, sodass der Datenverkehr zwischen Nginx und Odoo nicht verschlüsselt wird (HTTP).

Die Verwendung eines Reverse-Proxys bietet Ihnen viele Vorteile wie Load Balancing, SSL-Terminierung, Caching, Komprimierung, Bereitstellung statischer Inhalte und mehr.

In diesem Beispiel konfigurieren wir die SSL-Terminierung, die HTTP-zu-HTTPS-Umleitung, die WWW-zu-Nicht-WWW-Umleitung, cachen die statischen Dateien und aktivieren die GZip-Komprimierung.

Öffnen Sie Ihren Texteditor und erstellen Sie die folgende Datei:

sudo nano /etc/nginx/sites-enabled/example.com.conf
/etc/nginx/sites-enabled/example.com.conf
# Odoo servers
upstream odoo {
 server 127.0.0.1:8069;
}

upstream odoochat {
 server 127.0.0.1:8072;
}

# HTTP -> HTTPS
server {
    listen 80;
    server_name www.example.com example.com;

    include snippets/letsencrypt.conf;
    return 301 https://example.com$request_uri;
}

# WWW -> NON WWW
server {
    listen 443 ssl http2;
    server_name www.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;
    include snippets/letsencrypt.conf;

    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name 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;

    # SSL parameters
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;
    include snippets/letsencrypt.conf;

    # 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;
}
Vergessen Sie nicht, example.com durch Ihre Odoo-Domain zu ersetzen und den richtigen Pfad zu den SSL-Zertifikatsdateien festzulegen. Die in dieser Konfiguration verwendeten Snippets werden in dieser Anleitung erstellt.

Wenn Sie fertig sind, starten Sie den Nginx-Dienst neu mit:

sudo systemctl restart nginx

Als nächstes müssen wir Odoo mitteilen, dass wir Proxy verwenden werden. Öffnen Sie dazu die Konfigurationsdatei und fügen Sie die folgende Zeile hinzu:

/etc/odoo12.conf
proxy_mode = True

Starten Sie den Odoo-Dienst neu, damit die Änderungen wirksam werden:

sudo systemctl restart odoo12

An diesem Punkt ist Ihr Server konfiguriert und Sie können auf Ihre Odoo-Instanz zugreifen unter:https://example.com

Ändern Sie die Bindungsschnittstelle #

Dieser Schritt ist optional, aber eine gute Sicherheitspraxis.

Standardmäßig lauscht der Odoo-Server auf allen Schnittstellen auf Port 8069. Wenn Sie den direkten Zugriff auf Ihre Odoo-Instanz deaktivieren möchten, können Sie entweder den Port 8069 blockieren für alle öffentlichen Schnittstellen oder zwingen Sie Odoo, nur auf der lokalen Schnittstelle zu lauschen.

In dieser Anleitung werden wir Odoo so konfigurieren, dass es nur auf 127.0.0.1 lauscht . Öffnen Sie die Konfiguration und fügen Sie am Ende der Datei die folgenden zwei Zeilen hinzu:

/etc/odoo12.conf
xmlrpc_interface = 127.0.0.1
netrpc_interface = 127.0.0.1

Speichern Sie die Konfigurationsdatei und starten Sie den Odoo-Server neu, damit die Änderungen wirksam werden:

sudo systemctl restart odoo12

Multiprocessing aktivieren #

Standardmäßig arbeitet Odoo im Multithreading-Modus. Für Produktionsbereitstellungen wird empfohlen, auf den Multiprocessing-Server umzusteigen, da er die Stabilität erhöht und die Systemressourcen besser nutzt. Um Multiprocessing zu aktivieren, müssen wir die Odoo-Konfiguration bearbeiten und eine Anzahl von Worker-Prozessen ungleich Null festlegen.

Die Anzahl der Worker wird basierend auf der Anzahl der CPU-Kerne im System und dem verfügbaren RAM-Speicher berechnet.

Gemäß der offiziellen Odoo-Dokumentation verwenden wir zur Berechnung der Worker-Anzahl und der erforderlichen RAM-Speichergröße die folgenden Formeln und Annahmen:

Arbeiterzahlberechnung

  • theoretische maximale Anzahl an Workern =(system_cpus * 2) + 1
  • 1 Worker kann ~=6 gleichzeitige Benutzer bedienen
  • Cron-Worker benötigen auch CPU

Berechnung der RAM-Speichergröße

  • Wir gehen davon aus, dass 20 % aller Anfragen schwere Anfragen sind, während 80 % leichtere Anfragen sind. Schwere Anforderungen verwenden etwa 1 GB RAM, während leichtere etwa 150 MB RAM verwenden
  • Benötigter Arbeitsspeicher =number_of_workers * ( (light_worker_ratio * light_worker_ram_estimation) + (heavy_worker_ratio * heavy_worker_ram_estimation) )

Wenn Sie nicht wissen, wie viele CPUs Sie auf Ihrem System haben, können Sie den folgenden Befehl verwenden:

grep -c ^processor /proc/cpuinfo

Nehmen wir an, wir haben ein System mit 4 CPU-Kernen, 8 GB RAM-Speicher und 30 gleichzeitigen Odoo-Benutzern.

  • 30 users / 6 = **5** (5 ist die theoretische Anzahl der benötigten Arbeiter)
  • (4 * 2) + 1 = **9** (9 ist die theoretische maximale Anzahl von Arbeitern)

Basierend auf der obigen Berechnung können wir 5 Worker + 1 Worker für den Cron-Worker verwenden, was insgesamt 6 Worker sind.

Berechnen Sie den RAM-Speicherverbrauch basierend auf der Anzahl der Worker:

  • RAM = 6 * ((0.8*150) + (0.2*1024)) ~= 2 GB of RAM

Die obige Berechnung zeigt uns, dass unsere Odoo-Installation etwa 2 GB RAM benötigt.

Um in den Multiprocessing-Modus zu wechseln, öffnen Sie die Konfigurationsdatei und hängen Sie die folgenden Zeilen an:

/etc/odoo12.conf
limit_memory_hard = 2684354560
limit_memory_soft = 2147483648
limit_request = 8192
limit_time_cpu = 600
limit_time_real = 1200
max_cron_threads = 1
workers = 5

Starten Sie den Odoo-Dienst neu, damit die Änderungen wirksam werden:

sudo systemctl restart odoo12

Die restlichen Systemressourcen werden von anderen Diensten verwendet, die auf diesem System ausgeführt werden. In dieser Anleitung haben wir Odoo zusammen mit PostgreSQL und Nginx auf demselben Server installiert und abhängig von Ihrer Einrichtung können Sie auch andere Dienste auf Ihrem Server ausführen.


Ubuntu
  1. So installieren Sie Odoo 10 auf Ubuntu 16.04

  2. So installieren Sie Odoo 12 auf Ubuntu 16.04

  3. So installieren Sie Odoo 13 auf Ubuntu 18.04

  4. So installieren Sie Odoo 13 auf Ubuntu 20.04

  5. So installieren Sie Odoo 15 auf Ubuntu 22.04

So installieren Sie Odoo auf Ubuntu 18.04 LTS

So installieren Sie Odoo auf Ubuntu 20.04 LTS

So installieren Sie Odoo 13 unter Ubuntu

So installieren Sie Odoo auf Ubuntu 18.04

So installieren Sie Odoo auf Ubuntu 20.04

So installieren Sie Odoo 12 auf Ubuntu 20.04