Android

Hur man installerar odoo 12 på ubuntu 18.04

How To Install Odoo 12 on Ubuntu 18.04

How To Install Odoo 12 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.

Odoo kan installeras på flera olika sätt. Det enklaste och snabbaste sättet att installera Odoo är att använda sina officiella APT-förvar.

Denna handledning täcker stegen som krävs för att installera och konfigurera Odoo 12 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 för Odoo med namnet odoo12 med hemkatalogen /opt/odoo12 med följande kommando:

sudo useradd -m -d /opt/odoo12 -U -r -s /bin/bash odoo12 Du kan använda valfritt namn för din Odoo-användare så länge du skapar en PostgreSQL-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 som är odoo12 :

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

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 virtuell Python-miljö.

Innan du börjar med installationsprocessen, ändra till användaren "odoo12":

sudo su - odoo12

Börja med att klona Odoo 12-källkoden från GitHub-förvaret:

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

När källkoden har laddats ner, skapar du en ny virtuell Python-miljö för Odoo 12-installationen:

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

Aktivera sedan miljön med följande kommando:

source odoo-venv/bin/activate

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

pip3 install wheel pip3 install -r odoo/requirements.txt Om du stöter på kompilationsfel under installationen, se till att du installerade alla nödvändiga beroenden som listas i avsnittet Before you begin .

Deaktivera miljön med följande kommando:

deactivate

Skapa en ny katalog för anpassade tillägg:

mkdir /opt/odoo12/odoo-custom-addons

Byt tillbaka till din sudo-användare:

exit

Skapa sedan en konfigurationsfil genom att kopiera den medföljande provkonfigurationsfilen:

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

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

sudo nano /etc/odoo12.conf /etc/odoo12.conf

; 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 Glöm inte att ändra my_admin_passwd till något säkrare.

Skapa en Systemd-enhetsfil

För att köra Odoo som en tjänst måste vi skapa en serviceenhetsfil i /etc/systemd/system/ katalogen.

Öppna din textredigerare och klistra in följande konfiguration:

sudo nano /etc/systemd/system/odoo12.service /etc/systemd/system/odoo12.service

Description=Odoo12 Requires=postgresql.service After=network.target postgresql.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 WantedBy=multi-user.target

Meddela systemdokumentet att en ny enhetsfil finns och starta Odoo-tjänsten genom att köra:

sudo systemctl daemon-reload sudo systemctl start odoo12

Kontrollera servicestatusen med följande kommando:

sudo systemctl status odoo12

Utgången ska se ut som nedan för att indikera att Odoo-tjänsten är aktiv och kör.

* 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

Aktivera att Odoo-tjänsten ska startas automatiskt vid starttid:

sudo systemctl enable odoo12

sudo journalctl -u odoo12

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 SSL Termination Proxy

Se till att du har uppfyllt följande förutsättningar innan du fortsätter med detta avsnitt:

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

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 kommer att betjäna 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).

Att använda en omvänd proxy ger dig många fördelar som belastningsbalansering, SSL-avslutning, caching, komprimering, servering av statisk innehåll och mer.

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.

Öppna din textredigerare och skapa följande fil:

sudo nano /etc/nginx/sites-enabled/example.com /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

Därefter måste vi berätta för Odoo att vi kommer att använda proxy. För att göra det, öppna konfigurationsfilen och lägg till följande rad:

/etc/odoo12.conf

proxy_mode = True

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

sudo systemctl restart odoo12

Just nu är din server konfigurerad och du kan komma åt din Odoo-instans på: https://example.com

Ä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. 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 lyssna endast på det lokala gränssnittet.

I den här guiden konfigurerar vi Odoo att lyssna endast på 127.0.0.1 . Öppna konfigurationen lägg till följande två rader i slutet av filen:

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

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/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

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

sudo systemctl restart odoo12

Resten av systemresurserna kommer att användas av andra tjänster som körs på detta system. 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

Denna handledning ledde dig genom installationen av Odoo 12 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