Android

Hur man distribuerar odoo 11 på ubuntu 18.04

How to install Odoo 11 on Ubuntu 18.04

How to install Odoo 11 on Ubuntu 18.04

Innehållsförteckning:

Anonim

Odoo är den mest populära allt-i-ett-affärsprogramvaran i världen. Det erbjuder en rad affärsapplikationer inklusive CRM, webbplats, e-handel, fakturering, redovisning, tillverkning, lager, projektledning, lager och mycket mer, allt sömlöst integrerat.

Det finns flera sätt att installera Odoo beroende på önskat fall. Det enklaste och snabbaste sättet att installera Odoo är att använda sina officiella APT-förvar.

Den här guiden behandlar stegen som krävs för att installera och konfigurera Odoo för produktion med Git-källa och Python virtuella miljö i ett Ubuntu 18.04-system.

Innan du börjar

Logga in på din Ubuntu-maskin som sudo-användare och uppdatera systemet till de senaste paketen:

sudo apt update && sudo apt upgrade

Installera Git, Pip, Node.js och de verktyg som krävs för att bygga Odoo-beroenden:

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

Skapa Odoo-användare

Skapa en ny systemanvändare och grupp med hemkatalog /opt/odoo som kommer att köra Odoo-tjänsten.

sudo useradd -m -d /opt/odoo -U -r -s /bin/bash odoo Du kan namnge användaren vad du vill, bara se till att du skapar en postgres-användare med samma namn.

Installera och konfigurera PostgreSQL

Installera PostgreSQL-paketet från Ubuntu: s standardförvar:

sudo apt install postgresql

När installationen är klar skapar du en PostgreSQL-användare med samma namn som den tidigare skapade systemanvändaren, i vårt fall odoo :

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

Installera Wkhtmltopdf

wkhtmltox paketet innehåller en uppsättning kommandoradsverktyg med öppen källkod som kan återge HTML till PDF och olika bildformat. För att kunna skriva ut PDF-rapporter behöver du wkhtmltopdf verktyget. Den rekommenderade versionen för Odoo är 0.12.1 som inte är tillgänglig i de officiella Ubuntu 18.04-lagringarna.

Ladda ner paketet med följande wget-kommando:

wget

När nedladdningen är klar installerar du paketet genom att skriva:

sudo apt install./wkhtmltox_0.12.1.3-1~bionic_amd64.deb

Installera och konfigurera Odoo

Vi kommer att installera Odoo från GitHub-lagret i en isolerad Python-virtuell miljö så att vi kan ha mer kontroll över versioner och uppdateringar.

Innan du börjar med installationsprocessen, se till att du byter till odoo användare.

sudo su - odoo

För att bekräfta att du är inloggad som odoo användare kan du använda följande kommando:

whoami

Nu kan vi börja med installationsprocessen. Klon först odoo från GitHub-förvaret:

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

  • Om du vill installera en annan Odoo-version ändrar du bara versionsnumret efter --branch Du kan namnge katalogen som du vill, till exempel istället odoo11 du använda namnet på din domän.

Så här skapar du en ny virtuell miljö för Odoo 11-instansskörningen:

cd /opt/odoo python3 -m venv odoo11-venv

aktivera miljön med följande kommando:

source odoo11-venv/bin/activate

och installera alla nödvändiga Python-moduler med pip3:

pip3 install wheel pip3 install -r odoo11/requirements.txt

pip3 är ett verktyg för att installera och hantera Python-paket.

När installationen är klar avaktiverar du miljön och byter tillbaka till din sudo-användare med följande kommandon:

deactivate

exit

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

Därefter måste vi skapa en konfigurationsfil, vi kan antingen skapa en ny från början eller kopiera den medföljande konfigurationsfilen:

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

Öppna filen och redigera den på följande sätt:

/etc/odoo11.conf

; This is the password that allows database operations: admin_passwd = my_admin_passwd db_host = False db_port = False db_user = odoo db_password = False addons_path = /opt/odoo/odoo11/addons; If you are using custom modules; addons_path = /opt/odoo/odoo11/addons, /opt/odoo/odoo11-custom-addons Glöm inte att ändra my_admin_passwd till något säkrare och justera addons_path om du använder anpassade moduler.

Skapa en systemd-enhetsfil

För att köra odoo som en tjänst skapar vi en odoo11.service i /etc/systemd/system/ katalogen med följande innehåll:

/etc/systemd/system/odoo11.service

Description=Odoo11 Requires=postgresql.service After=network.target postgresql.service Type=simple SyslogIdentifier=odoo11 PermissionsStartOnly=true User=odoo Group=odoo ExecStart=/opt/odoo/odoo11-venv/bin/python3 /opt/odoo/odoo11/odoo-bin -c /etc/odoo11.conf StandardOutput=journal+console WantedBy=multi-user.target

Meddela systemdokumentet att vi skapade en ny enhetsfil och startar Odoo-tjänsten genom att köra:

sudo systemctl daemon-reload sudo systemctl start odoo11

Du kan kontrollera servicestatusen med följande kommando:

sudo systemctl status odoo11

● odoo11.service - Odoo11 Loaded: loaded (/etc/systemd/system/odoo11.service; disabled; vendor preset: enabled) Active: active (running) since Thu 2018-05-03 21:23:08 UTC; 3s ago Main PID: 18351 (python3) Tasks: 4 (limit: 507) CGroup: /system.slice/odoo11.service └─18351 /opt/odoo/odoo11-venv/bin/python3 /opt/odoo/odoo11/odoo-bin -c /etc/odoo11.conf

och om det inte finns några fel kan du aktivera Odoo-tjänsten automatiskt att starta vid starttid:

sudo systemctl enable odoo11

sudo journalctl -u odoo11

Testa installationen

Öppna din webbläsare och skriv: http://:8069 http://:8069

Förutsatt att installationen är framgångsrik visas en skärm som liknar följande:

Konfigurera Nginx som en SSL-termineringsproxy

  • Du har ett domännamn som pekar på din offentliga server-IP. I denna handledning kommer vi att använda example.com Du har Nginx installerat genom att följa dessa instruktioner. Du har ett SSL-certifikat installerat för din domän. Du kan installera ett gratis Let's Encrypt SSL-certifikat genom att följa dessa instruktioner.

Standard Odoo-webbservern visar trafik via HTTP. För att göra vår Odoo-distribution säkrare kommer vi att konfigurera Nginx som en SSL-termineringsproxy som tjänar trafiken över

SSL termination proxy är en proxyserver som hanterar SSL-kryptering / dekryptering. Detta innebär att vår termineringsproxy (Nginx) kommer att hantera och dekryptera inkommande TLS-anslutningar (HTTPS), och den kommer att vidarebefordra de okrypterade förfrågningarna till vår interna tjänst (Odoo) så att trafiken mellan Nginx och Odoo inte kommer att krypteras (HTTP).

Vi måste berätta för Odoo att vi kommer att använda en proxy, öppna konfigurationsfilen och lägga till följande rad:

/etc/odoo11.conf

proxy_mode = True

Starta om Odoo-tjänsten så att ändringarna träder i kraft:

sudo systemctl restart odoo11

Att använda Nginx som proxy ger oss flera fördelar. I det här exemplet kommer vi att konfigurera SSL Termination, HTTP till HTTPS omdirigering, WWW till icke-WWW omdirigering, cache de statiska filerna och aktivera GZip-komprimering.

/etc/nginx/sites-enabled/example.com

# 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; 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; # 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; } Glöm inte att ersätta exempel.com med din Odoo-domän och ange rätt sökväg till SSL-certifikatfilerna. De utdrag som används i den här konfigurationen skapas i den här guiden.

När du är klar, starta om Nginx-tjänsten med:

sudo systemctl restart nginx

Ändra bindningsgränssnittet

Detta steg är valfritt, men det är en bra säkerhetspraxis. Som standard lyssnar Odoo-servern på port 8069 på alla gränssnitt, så om du vill inaktivera direkt åtkomst till din Odoo-instans kan du antingen blockera port 8069 för alla offentliga gränssnitt eller tvinga Odoo att bara lyssna på det lokala gränssnittet.

I den här guiden kommer vi att tvinga Odoo att lyssna bara på 127.0.0.1 , öppna Odoo-konfigurationen och lägg till följande två rader i slutet av filen:

/etc/odoo11.conf

xmlrpc_interface = 127.0.0.1 netrpc_interface = 127.0.0.1

Spara konfigurationsfilen och starta om Odoo-servern så att ändringarna träder i kraft:

sudo systemctl restart odoo

Aktivera multiprocessering

Som standard arbetar Odoo i multithreading-läge. För produktionsinstallationer rekommenderas att byta till multiprosessionsservern eftersom det ökar stabiliteten och utnyttjar systemresurserna bättre. För att möjliggöra multiprocessering måste vi redigera Odoo-konfigurationen och ställa in ett antal arbetarprocesser som inte är noll.

Antalet arbetare beräknas baserat på antalet CPU-kärnor i systemet och det tillgängliga RAM-minnet.

Enligt den officiella Odoo-dokumentationen för att beräkna arbetarnas antal och RAM-minnesstorlek kommer vi att använda följande formler och antaganden:

Beräkning av arbetarantal

  • teoretiskt maximalt antal arbetare = (system_cpus * 2) + 11 arbetare kan tjäna ~ = 6 samtidiga användareCronarbetare kräver också CPU

RAM-minnesstorleksberäkning

  • Vi anser att 20% av alla förfrågningar är tunga förfrågningar, medan 80% är lättare. Tunga förfrågningar använder cirka 1 GB RAM medan de lättare använder cirka 150 MB RAMNeeded RAM = number_of_workers * ((light_worker_ratio * light_worker_ram_estimation) + (heavy_worker_ratio * heavy_worker_ram_estimation))

grep -c ^processor /proc/cpuinfo

Låt oss säga att vi har ett system med 4 CPU-kärnor, 8 GB RAM-minne och 30 samtidiga Odoo-användare.

  • 30 users / 6 = **5** (5 är det teoretiska antalet arbetare som behövs) (4 * 2) + 1 = **9** (9 är det teoretiska högsta antalet arbetare)

Baserat på beräkningen ovan kan vi använda 5 arbetare + 1 arbetare för cronarbetaren, som totalt är 6 arbetare.

Beräkna RAM-förbrukningen baserat på antalet arbetare:

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

Beräkningen ovan visar oss att vår Odoo-installation kommer att behöva cirka 2 GB RAM.

Om du vill växla till multiprocesseringsläge öppnar du konfigurationsfilen och lägger till följande rader:

/etc/odoo11.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

Starta om Odoo-tjänsten så att ändringarna träder i kraft:

sudo systemctl restart odoo11

Resten av systemresurserna kommer att användas av andra tjänster som körs på vår maskin. I den här guiden installerade vi Odoo tillsammans med PostgreSQL och Nginx på samma server och beroende på din installation kan du också ha andra tjänster som körs på din server.

Slutsats

Det är allt! Denna handledning ledde dig genom installationen av Odoo 11 på Ubuntu 18.04 i en Python-virtuell miljö med Nginx som en omvänd proxy. Du lärde dig också hur du möjliggör multiprocessering och optimerar Odoo för produktionsmiljö. Du kanske också vill kolla vår handledning om hur du skapar automatisk dagliga säkerhetskopior av dina Odoo-databaser.

ubuntu odoo postgresql python pip nginx proxy ssl