Android

Hvordan distribuere odoo 11 på ubuntu 18.04

How to install Odoo 11 on Ubuntu 18.04

How to install Odoo 11 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.

Det er flere måter å installere Odoo på, avhengig av ønsket brukstilfelle. Den enkleste og raskeste måten å installere Odoo er ved å bruke de offisielle APT-lagringene.

Denne guiden dekker trinnene som er nødvendige for å installere og konfigurere Odoo for produksjon ved bruk av Git source og Python virtuelle miljø på et Ubuntu 18.04-system.

Før du begynner

Logg 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 og gruppe med hjemmekatalog /opt/odoo som kjører Odoo-tjenesten.

sudo useradd -m -d /opt/odoo -U -r -s /bin/bash odoo Du kan navngi brukeren hva du vil, bare sørg for at du oppretter en postgres-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, opprett en PostgreSQL-bruker med samme navn som den tidligere opprettede systembrukeren, i vårt tilfelle odoo :

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

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ø, slik at vi kan ha mer kontroll over versjoner og oppdateringer.

Før du begynner med installasjonsprosessen, må du sørge for å bytte til odoo bruker.

sudo su - odoo

For å bekrefte at du er logget inn som odoo bruker, kan du bruke følgende kommando:

whoami

Nå kan vi starte med installasjonsprosessen. Klon først odoo fra GitHub-depot:

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

  • Hvis du vil installere en annen Odoo-versjon, kan du bare endre versjonsnummeret etter --branch bryteren. Du kan navngi katalogen som du vil, for eksempel i stedet for odoo11 kan du bruke navnet på domenet ditt.

Slik lager du et nytt virtuelt miljø for forekomst av Odoo 11:

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

aktiver miljøet med følgende kommando:

source odoo11-venv/bin/activate

og installer alle nødvendige Python-moduler med pip3:

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

pip3 er et verktøy for å installere og administrere Python-pakker.

Når installasjonen er fullført, deaktiverer du miljøet og bytter tilbake til sudo-brukeren din ved hjelp av følgende kommandoer:

deactivate

exit

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

Deretter må vi opprette en konfigurasjonsfil, vi kan enten opprette en ny fra bunnen av eller kopiere den medfølgende konfigurasjonsfilen:

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

Åpne filen og rediger den slik:

/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 Ikke glem å endre my_admin_passwd til noe sikrere og juster addons_path hvis du bruker tilpassede moduler.

Lag en systemd enhetsfil

For å kjøre odoo som en tjeneste vil vi opprette en odoo11.service i /etc/systemd/system/ katalogen med følgende innhold:

/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

Gi beskjed til systemd om at vi opprettet en ny enhetsfil og starter Odoo-tjenesten ved å utføre:

sudo systemctl daemon-reload sudo systemctl start odoo11

Du kan sjekke servicestatusen 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 det ikke er noen feil, kan du aktivere Odoo-tjenesten automatisk ved oppstart:

sudo systemctl enable odoo11

sudo journalctl -u odoo11

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

  • Du har et domenenavn som peker til din offentlige server-IP. I denne opplæringen vil vi bruke example.com Du har Nginx installert ved å følge disse instruksjonene. Du har et SSL-sertifikat installert for domenet ditt. Du kan installere et gratis Let's Encrypt SSL-sertifikat ved å følge disse instruksjonene.

Standard Odoo-webserveren betjener trafikk via HTTP. For å gjøre Odoo-distribusjonen mer sikker vil vi konfigurere Nginx som en SSL-avslutningsproxy 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).

Vi må fortelle Odoo at vi vil bruke en proxy, åpne konfigurasjonsfilen og legge til følgende linje:

/etc/odoo11.conf

proxy_mode = True

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

sudo systemctl restart odoo11

Å bruke Nginx som proxy gir oss flere fordeler. 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.

/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

Endre bindingsgrensesnittet

Dette trinnet er valgfritt, men det er en god sikkerhetspraksis. Som standard lytter Odoo-serveren til port 8069 på alle grensesnitt, så 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 tvinge Odoo til kun å lytte på 127.0.0.1 , åpne Odoo-konfigurasjonen og legg til følgende to linjer på slutten av filen:

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

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 = antall_av_arbeidere * ((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/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

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

sudo systemctl restart odoo11

Resten av systemressursene vil bli brukt av andre tjenester som kjører på vår maskin. 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

Det er det! Denne opplæringen ledet deg gjennom installasjonen av Odoo 11 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