Android

Hvordan distribuere odoo 12 på ubuntu 18.04

How To Install Odoo 12 on Ubuntu 18.04

How To Install Odoo 12 on Ubuntu 18.04

Innholdsfortegnelse:

Anonim

Odoo er den mest populære alt-i-ett-forretningsprogramvaren i verden. Det tilbyr en rekke forretningsapplikasjoner, inkludert CRM, nettsted, e-handel, fakturering, regnskap, produksjon, lager, prosjektstyring, lager og mye mer, alt sømløst integrert.

Odoo kan installeres på flere forskjellige måter. Den enkleste og raskeste måten å installere Odoo er ved å bruke de offisielle APT-lagringene.

Denne opplæringen dekker trinnene som kreves for å installere og konfigurere Odoo 12 for produksjon ved bruk av Git source og Python virtuelle miljø på et Ubuntu 18.04-system.

Før du begynner

Logg inn på Ubuntu-maskinen din som sudo-bruker og oppdater systemet til de nyeste pakkene:

sudo apt update && sudo apt upgrade

Installer Git, Pip, Node.js og verktøyene som kreves for å bygge Odoo-avhengigheter:

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

Opprett Odoo-bruker

Opprett en ny systembruker for Odoo med navnet odoo12 med hjemmekatalog /opt/odoo12 ved å bruke følgende kommando:

sudo useradd -m -d /opt/odoo12 -U -r -s /bin/bash odoo12 Du kan bruke et hvilket som helst navn for Odoo-brukeren din så lenge du oppretter en PostgreSQL-bruker med samme navn.

Installer og konfigurer PostgreSQL

Installer PostgreSQL-pakken fra Ubuntu sine standardlager:

sudo apt install postgresql

Når installasjonen er fullført, oppretter du en PostgreSQL-bruker med samme navn som den tidligere opprettede systembrukeren, i vårt tilfelle som er odoo12 :

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

Installer Wkhtmltopdf

wkhtmltox pakken inneholder et sett med åpen kildekode kommandolinjeverktøy som kan gjengi HTML til PDF og forskjellige bildeformater. For å skrive ut PDF-rapporter, trenger du wkhtmltopdf verktøyet. Den anbefalte versjonen for Odoo er 0.12.1 som ikke er tilgjengelig i de offisielle Ubuntu 18.04-depotene.

Last ned pakken ved hjelp av følgende wget-kommando:

wget

Når nedlastingen er fullført, installerer du pakken ved å skrive:

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

Installer og konfigurer Odoo

Vi vil installere Odoo fra GitHub-depotet i et isolert virtuelt Python-miljø.

Før du begynner med installasjonsprosessen, bytt til brukeren “odoo12”:

sudo su - odoo12

Begynn med å klone Odoo 12-kildekoden fra GitHub-depot:

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

Når kildekoden er lastet ned, oppretter du et nytt virtuelt Python-miljø for installasjonen av Odoo 12:

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

Deretter aktiverer du 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øter på kompilasjonsfeil under installasjonen, må du forsikre deg om at du installerte alle de nødvendige avhengighetene som er oppført i delen Before you begin .

Deaktiver miljøet ved hjelp av følgende kommando:

deactivate

Lag en ny katalog for de tilpassede tilleggene:

mkdir /opt/odoo12/odoo-custom-addons

Bytt tilbake til sudo-brukeren din:

exit

Deretter oppretter du en konfigurasjonsfil ved å kopiere den inkluderte eksemplet på konfigurasjonsfilen:

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

Åpne filen og rediger den slik:

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 Ikke glem å endre my_admin_passwd til noe sikrere.

Opprett en Systemd Unit-fil

For å kjøre Odoo som en tjeneste må vi opprette en serviceenhetsfil i /etc/systemd/system/ directory.

Åpne teksteditoren din og lim inn følgende konfigurasjon:

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

Varsle systemd om at det eksisterer en ny enhetsfil og start Odoo-tjenesten ved å kjøre:

sudo systemctl daemon-reload sudo systemctl start odoo12

Kontroller servicestatusen med følgende kommando:

sudo systemctl status odoo12

Produksjonen skal se ut som nedenfor, og indikerer at Odoo-tjenesten er aktiv og kjø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

Aktiver at Odoo-tjenesten automatisk startes ved oppstarttid:

sudo systemctl enable odoo12

sudo journalctl -u odoo12

Test installasjonen

Åpne nettleseren din og skriv: http://:8069 http://:8069

Forutsatt at installasjonen er vellykket, vises en skjerm som ligner på følgende:

Konfigurer Nginx som SSL-termineringsproxy

Forsikre deg om at du har oppfylt følgende forutsetninger før du fortsetter med denne delen:

  • Domenenavn som peker til din offentlige server-IP. I denne opplæringen vil vi bruke example.com Nginx installert.SSL-sertifikat for domenet ditt. Du kan installere et gratis Let's Encrypt SSL-sertifikat.

Standard Odoo-webserveren betjener trafikk via HTTP. For å gjøre Odoo-distribusjonen mer sikker, vil vi konfigurere Nginx som en SSL-termineringsproxy som vil betjene trafikken over

SSL termination proxy er en proxy-server som håndterer SSL-kryptering / dekryptering. Dette betyr at vår termineringsproxy (Nginx) vil håndtere og dekryptere innkommende TLS-tilkoblinger (HTTPS), og den vil overføre de ukrypterte forespørslene til vår interne tjeneste (Odoo) slik at trafikken mellom Nginx og Odoo ikke blir kryptert (HTTP).

Å bruke en omvendt proxy gir deg mange fordeler som belastningsbalansering, SSL-terminering, hurtigbufring, komprimering, servering av statisk innhold og mer.

I dette eksemplet vil vi konfigurere SSL Termination, HTTP til HTTPS omdirigering, WWW til non WWW omdirigering, cache de statiske filene og aktivere GZip-komprimering.

Åpne teksteditoren din og lag 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; } Ikke glem å erstatte eksempel.com med Odoo-domenet ditt og angi riktig sti til SSL-sertifikatfilene. Utdragene som brukes i denne konfigurasjonen, opprettes i denne guiden.

Når du er ferdig, start Nginx-tjenesten på nytt med:

sudo systemctl restart nginx

Deretter må vi fortelle Odoo at vi vil bruke proxy. Å gjøre det, åpne konfigurasjonsfilen og legg til følgende linje:

/etc/odoo12.conf

proxy_mode = True

Start Odoo-tjenesten på nytt for at endringene skal tre i kraft:

sudo systemctl restart odoo12

På dette tidspunktet er serveren din konfigurert, og du kan få tilgang til Odoo-forekomsten på: https://example.com

Endre bindingsgrensesnittet

Dette trinnet er valgfritt, men det er en god sikkerhetspraksis.

Som standard lytter Odoo-serveren til port 8069 på alle grensesnitt. Hvis du vil deaktivere direkte tilgang til Odoo-forekomsten din, kan du enten blokkere port 8069 for alle offentlige grensesnitt eller tvinge Odoo til kun å lytte på det lokale grensesnittet.

I denne guiden vil vi konfigurere Odoo til bare å lytte på 127.0.0.1 . Åpne konfigurasjonen, legg til følgende to linjer på slutten av filen:

/etc/odoo12.conf

xmlrpc_interface = 127.0.0.1 netrpc_interface = 127.0.0.1

Lagre konfigurasjonsfilen og start Odoo-serveren på nytt for at endringene skal tre i kraft:

sudo systemctl restart odoo12

Aktiver multiprosessering

Som standard jobber Odoo i multithreading-modus. For produksjonsinstallasjoner anbefales det å bytte til multiprosesseringsserveren da den øker stabiliteten og utnytter systemressursene bedre. For å muliggjøre multiprosessering må vi redigere Odoo-konfigurasjonen og sette et antall ikke-null arbeidstakerprosesser.

Antall arbeidere beregnes basert på antall CPU-kjerner i systemet og tilgjengelig RAM-minne.

I henhold til den offisielle Odoo-dokumentasjonen for å beregne arbeidernes antall og ønsket RAM-minnestørrelse vil vi bruke følgende formler og forutsetninger:

Beregning av antall ansatte

  • teoretisk maksimalt antall arbeidere = (system_cpus * 2) + 11 arbeider kan tjene ~ = 6 samtidige brukereKronarbeidere krever også CPU

RAM-minne størrelse beregning

  • Vi vil vurdere at 20% av alle forespørsler er tunge forespørsler, mens 80% er lettere. Tunge forespørsler bruker rundt 1 GB RAM mens de lettere bruker rundt 150 MB RAMNødvendig RAM = number_of_workers * ((light_worker_ratio * light_worker_ram_estimation) + (heavy_worker_ratio * heavy_worker_ram_estimation))

grep -c ^processor /proc/cpuinfo

La oss si at vi har et system med 4 CPU-kjerner, 8 GB RAM-minne og 30 samtidige Odoo-brukere.

  • 30 users / 6 = **5** (5 er teoretisk antall arbeidere som trengs) (4 * 2) + 1 = **9** (9 er det teoretiske maksimale antall arbeidere)

Basert på beregningen over kan vi bruke 5 arbeidere + 1 arbeider for cron-arbeideren, som totalt er 6 arbeidere.

Beregn RAM-minneforbruket basert på antall arbeidere:

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

Beregningen over viser oss at vår Odoo-installasjon vil trenge rundt 2 GB RAM.

Hvis du vil bytte til multiprosesseringsmodus, åpner du konfigurasjonsfilen og legger ved 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

Start Odoo-tjenesten på nytt for at endringene skal tre i kraft:

sudo systemctl restart odoo12

Resten av systemressursene vil bli brukt av andre tjenester som kjører på dette systemet. I denne guiden installerte vi Odoo sammen med PostgreSQL og Nginx på en samme server, og avhengig av ditt oppsett kan det hende at du også har andre tjenester som kjører på serveren din.

Konklusjon

Denne opplæringen ledet deg gjennom installasjonen av Odoo 12 på Ubuntu 18.04 i et virtuelt Python-miljø med Nginx som en omvendt proxy. Du lærte også hvordan du aktiverer multiprosessering og optimaliserer Odoo for produksjonsmiljø.

Det kan også være lurt å sjekke opplæringen vår om hvordan du oppretter automatisk daglig sikkerhetskopi av Odoo-databasene dine.

ubuntu odoo postgresql python pip nginx proxy ssl