Android

Sådan implementeres odoo 12 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.

Odoo kan installeres på flere forskellige måder. Den nemmeste og hurtigste måde at installere Odoo er ved at bruge deres officielle APT-lagre.

Denne tutorial dækker de trin, der kræves til installation og konfiguration af Odoo 12 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 til Odoo med navnet odoo12 med hjemmekatalog /opt/odoo12 ved hjælp af følgende kommando:

sudo useradd -m -d /opt/odoo12 -U -r -s /bin/bash odoo12 Du kan bruge ethvert navn til din Odoo-bruger, så længe du opretter en PostgreSQL-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 det er odoo12 :

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

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 Python-virtuelt miljø.

Før du starter med installationsprocessen, skal du skifte til bruger “odoo12”:

sudo su - odoo12

Start med at klone Odoo 12-kildekoden fra GitHub-arkivet:

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

Når kildekoden er downloadet, skal du oprette et nyt virtuelt Python-miljø til Odoo 12-installationen:

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

Derefter skal du aktivere miljøet med følgende kommando:

source odoo-venv/bin/activate

Installer alle nødvendige Python-moduler med pip3:

pip3 install wheel pip3 install -r odoo/requirements.txt Hvis du støder på kompilationsfejl under installationen, skal du sørge for at installere alle de nødvendige afhængigheder, der er anført i afsnittet Before you begin .

Deaktiver miljøet ved hjælp af følgende kommando:

deactivate

Opret en ny mappe til de tilpassede tilføjelser:

mkdir /opt/odoo12/odoo-custom-addons

Skift tilbage til din sudo-bruger:

exit

Opret derefter en konfigurationsfil ved at kopiere den inkluderede prøvekonfigurationsfil:

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

Åbn filen og rediger den som følger:

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 Glem ikke at ændre my_admin_passwd til noget mere sikkert.

Opret en Systemd-enhedsfil

For at køre Odoo som en service er vi nødt til at oprette en serviceenhedsfil i /etc/systemd/system/ directory.

Åbn din teksteditor og indsæt følgende 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

Underret systemd om, at der findes en ny enhedsfil, og start Odoo-tjenesten ved at køre:

sudo systemctl daemon-reload sudo systemctl start odoo12

Kontroller servicestatus med følgende kommando:

sudo systemctl status odoo12

Outputet skal se sådan ud som nedenfor, hvilket indikerer, at Odoo-tjenesten er aktiv og kører.

* 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

Aktivér, at Odoo-tjenesten automatisk startes ved starttidspunktet:

sudo systemctl enable odoo12

sudo journalctl -u odoo12

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 SSL-termineringsproxy

Sørg for, at du har opfyldt følgende forudsætninger, før du fortsætter med dette afsnit:

  • Domænenavn, der peger på din offentlige server-IP. I denne tutorial bruger vi example.com .Nginx installeret.SSL-certifikat til dit domæne. Du kan installere et gratis Let's Encrypt SSL-certifikat.

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).

Brug af en omvendt proxy giver dig en masse fordele såsom belastningsbalancering, SSL-terminering, cache, komprimering, servering af statisk indhold og mere.

I dette eksempel konfigurerer vi SSL Termination, HTTP til HTTPS omdirigering, WWW til ikke-WWW omdirigering, cache de statiske filer og aktiverer GZip-komprimering.

Åbn din teksteditor og opret følgende 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; } 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

Dernæst skal vi fortælle Odoo, at vi vil bruge proxy. For at gøre dette skal du åbne konfigurationsfilen og tilføje følgende linje:

/etc/odoo12.conf

proxy_mode = True

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

sudo systemctl restart odoo12

På dette tidspunkt er din server konfigureret, og du kan få adgang til din Odoo-forekomst på: https://example.com

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. Hvis du vil deaktivere direkte adgang til din Odoo-instans, 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 konfigurerer vi Odoo til kun at lytte på 127.0.0.1 . Åbn konfigurationen, tilføj følgende to linjer i slutningen af ​​filen:

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

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

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

sudo systemctl restart odoo12

Resten af ​​systemressourcerne bruges af andre tjenester, der kører på dette system. 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

Denne tutorial ledte dig gennem installationen af ​​Odoo 12 på Ubuntu 18.04 i et virtuelt Python-miljø med 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