Android

Sådan implementeres odoo 11 på ubuntu 18.04

Chat eksempel: gennemgang af XML-RPC

Chat eksempel: gennemgang af XML-RPC

Indholdsfortegnelse:

Anonim

Odoo er den mest populære alt-i-en forretningssoftware i verden. Det tilbyder en række forretningsapplikationer, herunder CRM, websted, e-handel, fakturering, regnskab, produktion, lager, projektstyring, inventar og meget mere, alt sammen integreret.

Der er flere måder at installere Odoo på, afhængigt af den krævede brugssag. Den nemmeste og hurtigste måde at installere Odoo er ved at bruge deres officielle APT-lagre.

Denne vejledning dækker de nødvendige trin til installation og konfiguration af Odoo til produktion ved hjælp af Git source og Python virtuelle miljø på et Ubuntu 18.04-system.

Før du begynder

Log ind på din Ubuntu-maskine som sudo-bruger og opdater systemet til de nyeste pakker:

sudo apt update && sudo apt upgrade

Installer Git, Pip, Node.js og de nødvendige værktøjer til at opbygge Odoo-afhængigheder:

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

Opret Odoo-bruger

Opret en ny systembruger og gruppe med hjemmekatalog /opt/odoo , der kører Odoo-tjenesten.

sudo useradd -m -d /opt/odoo -U -r -s /bin/bash odoo Du kan navngive brugeren hvad du vil, bare sørg for at oprette en postgres-bruger med samme navn.

Installer og konfigurer PostgreSQL

Installer PostgreSQL-pakken fra Ubuntu's standardlager:

sudo apt install postgresql

Når installationen er afsluttet, skal du oprette en PostgreSQL-bruger med samme navn som den tidligere oprettede systembruger, i vores tilfælde odoo :

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

Installer Wkhtmltopdf

wkhtmltox pakken indeholder et sæt open source-kommandolinjeværktøjer, der kan gengive HTML til PDF og forskellige billedformater. For at udskrive PDF-rapporter skal du bruge wkhtmltopdf værktøjet. Den anbefalede version til Odoo er 0.12.1 som ikke er tilgængelig i de officielle Ubuntu 18.04-oplagringssteder.

Download pakken ved hjælp af følgende wget-kommando:

wget

Når download er afsluttet, skal du installere pakken ved at skrive:

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

Installer og konfigurer Odoo

Vi installerer Odoo fra GitHub-arkivet i et isoleret virtuelt Python-miljø, så vi kan have mere kontrol over versioner og opdateringer.

Før du starter med installationsprocessen, skal du sørge for at skifte til odoo bruger.

sudo su - odoo

For at bekræfte, at du er logget ind som odoo bruger, kan du bruge følgende kommando:

whoami

Nu kan vi starte med installationsprocessen. Klon først odoo fra GitHub-arkivet:

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

  • Hvis du vil installere en anden Odoo-version, skal du bare ændre versionnummeret efter --branch skiftet. Du kan navngive kataloget, som du vil, for eksempel i stedet for odoo11 kan du bruge navnet på dit domæne.

Sådan opretter du et nyt virtuelt miljø til Odoo 11-forekomstkørsel:

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

aktiver miljøet med følgende kommando:

source odoo11-venv/bin/activate

og installer alle påkrævede Python-moduler med pip3:

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

pip3 er et værktøj til installation og styring af Python-pakker.

Når installationen er afsluttet, deaktiveres miljøet og skift tilbage til din sudo-bruger ved hjælp af følgende kommandoer:

deactivate

exit

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

Derefter skal vi oprette en konfigurationsfil, vi kan enten oprette en ny fra bunden eller kopiere den inkluderede konfigurationsfil:

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

Åbn filen og rediger den som følger:

/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 Glem ikke at ændre my_admin_passwd til noget mere sikkert og justere addons_path hvis du bruger brugerdefinerede moduler.

Opret en systemd-enhedsfil

For at køre odoo som en service opretter vi en fil fra odoo11.service i /etc/systemd/system/ folder med følgende indhold:

/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

Underret systemd om, at vi oprettede en ny enhedsfil og start Odoo-tjenesten ved at udføre:

sudo systemctl daemon-reload sudo systemctl start odoo11

Du kan kontrollere servicestatus med følgende 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

og hvis der ikke er nogen fejl, kan du aktivere Odoo-tjenesten automatisk startes ved starttidspunktet:

sudo systemctl enable odoo11

sudo journalctl -u odoo11

Test installationen

Åbn din browser, og skriv: http://:8069 http://:8069

Forudsat at installationen er vellykket, vises en skærm, der ligner følgende:

Konfigurer Nginx som en SSL-termineringsproxy

  • Du har et domænenavn, der peger på din offentlige server-IP. I denne tutorial vil vi bruge example.com Du har Nginx installeret ved at følge disse instruktioner. Du har et SSL-certifikat installeret til dit domæne. Du kan installere et gratis Let's Encrypt SSL-certifikat ved at følge disse instruktioner.

Standard Odoo-webserveren betjener trafik via HTTP. For at gøre vores Odoo-implementering mere sikker konfigurerer vi Nginx som en SSL-termineringsproxy, der tjener trafikken over

SSL-termineringsproxy er en proxyserver, der håndterer SSL-kryptering / dekryptering. Dette betyder, at vores termineringsproxy (Nginx) vil håndtere og dekryptere indgående TLS-forbindelser (HTTPS), og den vil videresende de ukrypterede anmodninger til vores interne service (Odoo), så trafikken mellem Nginx og Odoo ikke bliver krypteret (HTTP).

Vi skal fortælle Odoo, at vi vil bruge en proxy, åbne konfigurationsfilen og tilføje følgende linje:

/etc/odoo11.conf

proxy_mode = True

Genstart Odoo-tjenesten for at ændringerne får virkning:

sudo systemctl restart odoo11

Brug af Nginx som proxy giver os flere fordele. I dette eksempel konfigurerer vi SSL Termination, HTTP til HTTPS omdirigering, WWW til ikke-WWW omdirigering, cache de statiske filer og aktiverer 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; } Glem ikke at erstatte eksempel.com med dit Odoo-domæne og indstille den rigtige sti til SSL-certifikatfiler. De kodestykker, der bruges i denne konfiguration, oprettes i denne vejledning.

Når du er færdig, skal du genstarte Nginx-tjenesten med:

sudo systemctl restart nginx

Skift bindingsgrænsefladen

Dette trin er valgfrit, men det er en god sikkerhedspraksis. Som standard lytter Odoo-serveren til port 8069 på alle grænseflader, så hvis du vil deaktivere direkte adgang til din Odoo-forekomst, kan du enten blokere port 8069 for alle offentlige grænseflader eller tvinge Odoo til kun at lytte på den lokale grænseflade.

I denne vejledning vil vi tvinge Odoo til kun at lytte på 127.0.0.1 , åbne Odoo-konfigurationen, tilføj følgende to linjer i slutningen af ​​filen:

/etc/odoo11.conf

xmlrpc_interface = 127.0.0.1 netrpc_interface = 127.0.0.1

Gem konfigurationsfilen, og genstart Odoo-serveren, så ændringerne træder i kraft:

sudo systemctl restart odoo

Aktivér multiprocessering

Som standard fungerer Odoo i multithreading-tilstand. Ved produktionsinstallationer anbefales det at skifte til multiprosessionsserveren, da det øger stabiliteten og udnytter systemressourcerne bedre. For at muliggøre multiprocessering er vi nødt til at redigere Odoo-konfigurationen og indstille et antal arbejdsprocesser, der ikke er nul.

Antallet af arbejdere beregnes ud fra antallet af CPU-kerner i systemet og den tilgængelige RAM-hukommelse.

I henhold til den officielle Odoo-dokumentation til beregning af arbejdstagernes antal og den krævede RAM-hukommelsesstørrelse vil vi bruge følgende formler og antagelser:

Beregning af arbejdstagerantal

  • teoretisk maksimalt antal arbejdstagere = (system_cpus * 2) + 11 arbejdstager kan tjene ~ = 6 samtidige brugereKronearbejdere kræver også CPU

RAM-hukommelsesstørrelsesberegning

  • Vi vil overveje, at 20% af alle anmodninger er tunge anmodninger, mens 80% er lettere. Tunge anmodninger bruger ca. 1 GB RAM, mens de lettere bruger omkring 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

Lad os sige, at vi har et system med 4 CPU-kerner, 8 GB RAM-hukommelse og 30 samtidige Odoo-brugere.

  • 30 users / 6 = **5** (5 er det teoretiske antal arbejdstagere, der er nødvendigt) (4 * 2) + 1 = **9** (9 er det teoretiske maksimale antal arbejdstagere)

Baseret på beregningen ovenfor kan vi bruge 5 arbejdstagere + 1 arbejdstager til cron-arbejdstageren, som i alt er 6 arbejdere.

Beregn RAM-hukommelsesforbruget baseret på antallet af medarbejdere:

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

Beregningen ovenfor viser os, at vores Odoo-installation har brug for omkring 2 GB RAM.

For at skifte til multiprocesseringstilstand skal du åbne konfigurationsfilen og tilføje følgende linjer:

/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

Genstart Odoo-tjenesten for at ændringerne får virkning:

sudo systemctl restart odoo11

Resten af ​​systemressourcerne bruges af andre tjenester, der kører på vores maskine. I denne guide installerede vi Odoo sammen med PostgreSQL og Nginx på en samme server, og afhængigt af dit opsætning kan du muligvis også have andre tjenester, der kører på din server.

Konklusion

Det er det! Denne tutorial ledte dig gennem installationen af ​​Odoo 11 på Ubuntu 18.04 i et Python-virtuelt miljø ved hjælp af Nginx som en omvendt proxy. Du lærte også, hvordan du aktiverer multiprocessering og optimerer Odoo til produktionsmiljø. Du vil måske også tjekke vores tutorial om, hvordan du opretter automatisk daglige sikkerhedskopier af dine Odoo-databaser.

ubuntu odoo postgresql python pip nginx proxy ssl