Android

Hoe odoo 11 op ubuntu 18.04 te implementeren

How to install Odoo 11 on Ubuntu 18.04

How to install Odoo 11 on Ubuntu 18.04

Inhoudsopgave:

Anonim

Odoo is de populairste alles-in-één bedrijfssoftware ter wereld. Het biedt een scala aan zakelijke toepassingen, waaronder CRM, website, e-commerce, facturering, boekhouding, productie, magazijn, projectbeheer, inventaris en nog veel meer, allemaal naadloos geïntegreerd.

Er zijn verschillende manieren om Odoo te installeren, afhankelijk van het vereiste gebruik. De eenvoudigste en snelste manier om Odoo te installeren, is door hun officiële APT-opslagplaatsen te gebruiken.

Deze gids behandelt de stappen die nodig zijn voor het installeren en configureren van Odoo voor productie met behulp van Git source en Python virtuele omgeving op een Ubuntu 18.04-systeem.

Voordat je begint

Meld u aan bij uw Ubuntu-machine als sudo-gebruiker en werk het systeem bij naar de nieuwste pakketten:

sudo apt update && sudo apt upgrade

Installeer Git, Pip, Node.js en de tools die nodig zijn om Odoo-afhankelijkheden te bouwen:

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

Creëer Odoo-gebruiker

Maak een nieuwe systeemgebruiker en groep met homedirectory /opt/odoo die de Odoo-service zal uitvoeren.

sudo useradd -m -d /opt/odoo -U -r -s /bin/bash odoo Je kunt de gebruiker een naam geven zoals je wilt, zorg er alleen voor dat je een postgres-gebruiker met dezelfde naam maakt.

Installeer en configureer PostgreSQL

Installeer het PostgreSQL-pakket vanuit de standaardrepository's van Ubuntu:

sudo apt install postgresql

Nadat de installatie is voltooid, maakt u een PostgreSQL-gebruiker aan met dezelfde naam als de eerder gemaakte systeemgebruiker, in ons geval odoo :

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

Installeer Wkhtmltopdf

Het wkhtmltox pakket biedt een set open source-opdrachtregelprogramma's waarmee HTML kan worden omgezet in PDF en verschillende afbeeldingsindelingen. Om PDF-rapporten af ​​te drukken, hebt u het hulpprogramma wkhtmltopdf nodig. De aanbevolen versie voor Odoo is 0.12.1 die niet beschikbaar is in de officiële Ubuntu 18.04-opslagplaatsen.

Download het pakket met de volgende wget-opdracht:

wget

Nadat de download is voltooid, installeert u het pakket door te typen:

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

Odoo installeren en configureren

We zullen Odoo installeren vanuit de GitHub-repository in een geïsoleerde virtuele omgeving van Python, zodat we meer controle hebben over versies en updates.

Voordat u begint met het installatieproces, moet u overschakelen naar odoo user.

sudo su - odoo

Om te bevestigen dat u als odoo gebruiker bent aangemeld, kunt u de volgende opdracht gebruiken:

whoami

Nu kunnen we beginnen met het installatieproces. Kloon eerst de odoo uit de GitHub-repository:

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

  • Als u een andere Odoo-versie wilt installeren, wijzigt u het versienummer na de --branch schakelaar. U kunt de map een naam geven zoals u wilt, bijvoorbeeld in plaats daarvan odoo11 kunt u de naam van uw domein gebruiken.

Om een ​​nieuwe virtuele omgeving te maken voor de Odoo 11-instance uitvoeren:

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

activeer de omgeving met de volgende opdracht:

source odoo11-venv/bin/activate

en installeer alle vereiste Python-modules met pip3:

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

pip3 is een hulpmiddel voor het installeren en beheren van Python-pakketten.

Zodra de installatie is voltooid, deactiveert u de omgeving en schakelt u terug naar uw sudo-gebruiker met de volgende opdrachten:

deactivate

exit

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

Vervolgens moeten we een configuratiebestand maken, we kunnen een nieuw bestand maken of het meegeleverde configuratiebestand kopiëren:

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

Open het bestand en bewerk het als volgt:

/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 Vergeet niet om de my_admin_passwd te wijzigen in iets veiliger en het my_admin_passwd aan te passen als u aangepaste modules gebruikt.

Maak een systeemeenheidsbestand

Om odoo als een service uit te voeren, maken we een odoo11.service eenheidsbestand in de /etc/systemd/system/ map met de volgende inhoud:

/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

Laat systemd weten dat we een nieuw eenheidsbestand hebben gemaakt en start de Odoo-service door het uitvoeren van:

sudo systemctl daemon-reload sudo systemctl start odoo11

U kunt de servicestatus controleren met de volgende opdracht:

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

en als er geen fouten zijn, kunt u de Odoo-service automatisch starten tijdens het opstarten:

sudo systemctl enable odoo11

sudo journalctl -u odoo11

Test de installatie

Open uw browser en typ: http://:8069 http://:8069

Ervan uitgaande dat de installatie is geslaagd, verschijnt een scherm als het volgende:

Configureer Nginx als een SSL-beëindigingsproxy

  • U hebt een domeinnaam die verwijst naar het IP-adres van uw openbare server. In deze zelfstudie gebruiken we example.com . Nginx is geïnstalleerd door deze instructies te volgen. U hebt een SSL-certificaat geïnstalleerd voor uw domein. U kunt een gratis Let's Encrypt SSL-certificaat installeren door deze instructies te volgen.

De standaard Odoo-webserver levert verkeer via HTTP. Om onze Odoo-implementatie veiliger te maken, zullen we Nginx configureren als een SSL-beëindigingsproxy die het verkeer via HTTPS zal bedienen.

SSL-beëindigingsproxy is een proxyserver die de SSL-codering / decodering afhandelt. Dit betekent dat onze beëindigingsproxy (Nginx) inkomende TLS-verbindingen (HTTPS) verwerkt en decodeert en de niet-gecodeerde verzoeken doorgeeft aan onze interne service (Odoo), zodat het verkeer tussen Nginx en Odoo niet wordt gecodeerd (HTTP).

We moeten Odoo vertellen dat we een proxy zullen gebruiken, het configuratiebestand openen en de volgende regel toevoegen:

/etc/odoo11.conf

proxy_mode = True

Start de Odoo-service opnieuw om de wijzigingen van kracht te laten worden:

sudo systemctl restart odoo11

Het gebruik van Nginx als proxy biedt ons verschillende voordelen. In dit voorbeeld zullen we SSL-beëindiging, HTTP naar HTTPS-omleiding, WWW naar niet-WWW-omleiding configureren, de statische bestanden in de cache opslaan en GZip-compressie inschakelen.

/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; } Vergeet niet om example.com te vervangen door uw Odoo-domein en het juiste pad naar de SSL-certificaatbestanden in te stellen. De fragmenten die in deze configuratie worden gebruikt, worden in deze handleiding gemaakt.

Zodra u klaar bent, start u de Nginx-service opnieuw met:

sudo systemctl restart nginx

Wijzig de bindende interface

Deze stap is optioneel, maar het is een goede beveiligingspraktijk. Standaard luistert de Odoo-server naar poort 8069 op alle interfaces, dus als u directe toegang tot uw Odoo-exemplaar wilt uitschakelen, kunt u poort 8069 voor alle openbare interfaces blokkeren of Odoo dwingen om alleen op de lokale interface te luisteren.

In deze gids dwingen we Odoo alleen te luisteren op 127.0.0.1 , open de Odoo-configuratie en voeg de volgende twee regels toe aan het einde van het bestand:

/etc/odoo11.conf

xmlrpc_interface = 127.0.0.1 netrpc_interface = 127.0.0.1

Sla het configuratiebestand op en start de Odoo-server opnieuw om de wijzigingen door te voeren:

sudo systemctl restart odoo

Schakel multiprocessing in

Odoo werkt standaard in de multithreading-modus. Voor productie-implementaties wordt aanbevolen om over te schakelen naar de multiprocessing-server omdat deze de stabiliteit verhoogt en de systeembronnen beter gebruikt. Om multiprocessing mogelijk te maken, moeten we de Odoo-configuratie bewerken en een niet-nul aantal werkprocessen instellen.

Het aantal werkers wordt berekend op basis van het aantal CPU-kernen in het systeem en het beschikbare RAM-geheugen.

Volgens de officiële Odoo-documentatie om het aantal werknemers en de vereiste RAM-geheugengrootte te berekenen, gebruiken we de volgende formules en veronderstellingen:

Berekening werknemersnummer

  • theoretisch maximaal aantal werkers = (system_cpus * 2) + 11 werkers kunnen ~ = 6 gelijktijdige gebruikers bedienen Werknemers hebben ook CPU nodig

RAM geheugen berekening

  • We zullen overwegen dat 20% van alle verzoeken zware verzoeken zijn, terwijl 80% lichtere verzoeken zijn. Zware aanvragen gebruiken ongeveer 1 GB RAM, terwijl de lichtere aanvragen ongeveer 150 MB RAM gebruiken Nodig RAM = number_of_workers * ((light_worker_ratio * light_worker_ram_estimation) + (heavy_worker_ratio * heavy_worker_ram_estimation))

grep -c ^processor /proc/cpuinfo

Laten we zeggen dat we een systeem hebben met 4 CPU-kernen, 8 GB RAM-geheugen en 30 gelijktijdige Odoo-gebruikers.

  • 30 users / 6 = **5** (5 is het theoretische aantal benodigde werknemers) (4 * 2) + 1 = **9** (9 is het theoretische maximale aantal werknemers)

Op basis van de bovenstaande berekening kunnen we 5 werknemers + 1 werknemer gebruiken voor de cron-werknemer, wat in totaal 6 werknemers is.

Bereken het RAM-geheugenverbruik op basis van het aantal werknemers:

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

Uit de bovenstaande berekening blijkt dat onze Odoo-installatie ongeveer 2 GB RAM nodig heeft.

Om naar de multiprocessing-modus te schakelen, opent u het configuratiebestand en voegt u de volgende regels toe:

/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 de Odoo-service opnieuw om de wijzigingen van kracht te laten worden:

sudo systemctl restart odoo11

De rest van de systeembronnen worden gebruikt door andere services die op onze machine worden uitgevoerd. In deze gids hebben we Odoo samen met PostgreSQL en Nginx op dezelfde server geïnstalleerd en afhankelijk van uw installatie kunnen er ook andere services op uw server worden uitgevoerd.

Conclusie

Dat is het! Deze tutorial leidde je door de installatie van Odoo 11 op Ubuntu 18.04 in een virtuele Python-omgeving met Nginx als een omgekeerde proxy. Je hebt ook geleerd hoe je multiprocessing kunt inschakelen en Odoo kunt optimaliseren voor de productieomgeving. U kunt ook onze tutorial raadplegen over het maken van automatische dagelijkse back-ups van uw Odoo-databases.

ubuntu odoo postgresql python pip nginx proxy ssl