Android

Paano mag-install ng odoo 13 sa ubuntu 18.04

How to Install Odoo 13 on Ubuntu 18.04

How to Install Odoo 13 on Ubuntu 18.04

Talaan ng mga Nilalaman:

Anonim

Ang Odoo ay isang tanyag na open-source suite ng mga app ng negosyo. Nag-aalok ito ng isang hanay ng mga aplikasyon, kabilang ang CRM, e-Commerce, tagabuo ng website, pagsingil, accounting, manufacturing, bodega, pamamahala ng proyekto, imbentaryo, at marami pa, lahat ng walang putol na isinama.

Maaaring mai-install ang Odoo sa maraming paraan depende sa kaso ng paggamit at magagamit na mga teknolohiya. Ang pinakamadali at pinakamabilis na paraan upang mai-install ang Odoo ay sa pamamagitan ng paggamit ng opisyal na mga repositories ng Odoo APT.

Ang pag-install ng Odoo sa isang virtual na kapaligiran, o pag-deploy bilang isang lalagyan ng Docker, ay nagbibigay-daan sa iyo na magkaroon ng higit na kontrol sa pag-set up ng system, at magpatakbo ng maraming mga bersyon ng Odoo sa parehong system.

Sa gabay na ito, ilalakad ka namin sa pamamagitan ng pag-install at pag-deploy ng Odoo 13 sa loob ng isang virtual na Python virtual sa Ubuntu 18.04. I-download namin ang Odoo mula sa kanilang imbakan ng Github at gagamitin ang Nginx bilang isang reverse proxy.

Pag-install ng Mga kinakailangan

Mag-login sa iyong Ubuntu bilang isang gumagamit ng sudo at i-update ang Apt cache:

sudo apt update

I-install ang Git, Pip, Node.js, at ang mga tool na kinakailangan upang bumuo ng mga dependencies ng Odoo:

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

Paglikha ng isang Gumagamit ng System

Lumikha ng isang system user na tatakbo sa Odoo, na pinangalanan odoo13 may direktoryo sa bahay /opt/odoo13 :

sudo useradd -m -d /opt/odoo13 -U -r -s /bin/bash odoo13

Maaari mong itakda ang pangalan ng gumagamit sa anumang nais mo, hangga't lumikha ka ng isang gumagamit ng PostgreSQL na may parehong pangalan.

Pag-install at Pag-configure ng PostgreSQL

Ginagamit ni Odoo ang PostgreSQL bilang back-end ng database. Upang mai-install ang PostgreSQL patakbuhin ang sumusunod na utos:

sudo apt install postgresql

Kapag nakumpleto ang pag-install, lumikha ng isang gumagamit ng PostgreSQL na may parehong pangalan tulad ng dating nilikha ng system system, sa aming kaso na odoo13 :

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

Pag-install ng Wkhtmltopdf

Ang wkhtmltox package ay nagbibigay ng isang hanay ng mga bukas na mapagkukunan ng command-line na tool na maaaring magbigay ng HTML sa PDF at iba't ibang mga format ng imahe. Upang mag-print ng mga ulat sa PDF, kakailanganin mong i-install ang tool na wkhtmltopdf . Ang inirekumendang bersyon para sa Odoo ay 0.12.5 , na hindi magagamit sa default na mga repositories ng Ubuntu 18.04.

I-download ang package gamit ang sumusunod na utos ng wget:

wget

Kapag kumpleto na ang pag-download, i-install ang package sa pamamagitan ng pag-type:

sudo apt install./wkhtmltox_0.12.5-1.bionic_amd64.deb

Pag-install at Pag-configure ng Odoo 13

Tulad ng nabanggit dati, mag-install kami ng Odoo mula sa mapagkukunan sa loob ng isang nakahiwalay na virtual na Python virtual.

Una, baguhin ang gumagamit ng "odoo13":

sudo su - odoo13

I-clone ang Odoo 13 source code mula sa GitHub:

git clone https://www.github.com/odoo/odoo --depth 1 --branch 13.0 /opt/odoo13/odoo

Kapag kumpleto na ang pag-download, lumikha ng isang bagong kapaligiran sa Python para sa Odoo:

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

Isaaktibo ang kapaligiran sa mga sumusunod na utos:

source odoo-venv/bin/activate

I-install ang lahat ng kinakailangang mga module ng Python na may pip3:

pip3 install wheel pip3 install -r odoo/requirements.txt Kung nakatagpo ka ng anumang error sa compilation sa panahon ng pag-install, tiyaking naka-install ang lahat ng kinakailangang mga dependencies na nakalista sa seksyon ng Pag- Installing Prerequisites .

Kapag tapos na, i-deactivate ang kapaligiran sa pamamagitan ng pag-type:

deactivate

Gagawa kami ng isang bagong direktoryo na hahawak sa mga 3 addon ng partido.

mkdir /opt/odoo13/odoo-custom-addons

Mamaya, idagdag namin ang direktoryo na ito sa parameter ng addons_path . Tinukoy ng parameter na ito ang isang listahan ng mga direktoryo kung saan naghahanap si Odoo para sa mga module.

Bumalik sa iyong gumagamit ng sudo:

exit

Lumikha ng isang file ng pagsasaayos gamit ang sumusunod na nilalaman:

sudo nano /etc/odoo13.conf /etc/odoo13.conf

; This is the password that allows database operations: admin_passwd = my_admin_passwd db_host = False db_port = False db_user = odoo13 db_password = False addons_path = /opt/odoo13/odoo/addons, /opt/odoo13/odoo-custom-addons Huwag kalimutan na baguhin ang my_admin_passwd sa isang mas ligtas.

Paglikha ng isang Filed Unit File

Buksan ang iyong text editor at lumikha ng isang file ng unit ng serbisyo na tinatawag na odoo13.service sa mga sumusunod na nilalaman:

sudo nano /etc/systemd/system/odoo13.service /etc/systemd/system/odoo13.service

Description=Odoo13 Requires=postgresql.service After=network.target postgresql.service Type=simple SyslogIdentifier=odoo13 PermissionsStartOnly=true User=odoo13 Group=odoo13 ExecStart=/opt/odoo13/odoo-venv/bin/python3 /opt/odoo13/odoo/odoo-bin -c /etc/odoo13.conf StandardOutput=journal+console WantedBy=multi-user.target

Ipaalam sa systemd na mayroong isang bagong unit file:

sudo systemctl daemon-reload

Simulan ang serbisyo ng Odoo at pinagana itong magsimula sa boot sa pamamagitan ng pagpapatakbo:

sudo systemctl enable --now odoo13

Patunayan ang katayuan ng serbisyo:

sudo systemctl status odoo13

Ang output ay dapat magmukhang isang bagay sa ibaba, na nagpapahiwatig na ang serbisyo ng Odoo ay aktibo at tumatakbo.

● odoo13.service Loaded: loaded (/etc/systemd/system/odoo13.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2019-10-19 20:06:23 UTC; 3s ago Main PID: 1860 (python3) Tasks: 4 (limit: 2362) CGroup: /system.slice/odoo13.service └─1860 /opt/odoo13/odoo-venv/bin/python3 /opt/odoo13/odoo/odoo-bin -c /etc/odoo13.conf

Upang makita ang mga mensahe na naka-log sa serbisyo ng Odoo, gamitin ang utos sa ibaba:

sudo journalctl -u odoo13

Pagsubok sa Pag-install

Buksan ang iyong browser at uri: http://:8069 http://:8069

Sa pag-aakalang matagumpay ang pag-install, lilitaw ang isang screen na katulad ng sumusunod:

Pag-configure ng Nginx bilang SSL Pagwawakas ng Proxy

Ang default na web server ng Odoo ay naghahatid ng trapiko sa paglipas ng HTTP. Upang maging mas ligtas ang paglawak ng Odoo ay mai-configure namin ang Nginx bilang isang proxy na pagtatapos ng SSL na magsisilbi sa trapiko sa paglipas ng

Ang SSL termination proxy ay isang proxy server na humahawak sa SSL encryption / decryption. Nangangahulugan ito na ang pagwawakas ng proxy (Nginx) ay iproseso at i-decrypt ang mga papasok na koneksyon sa TLS (HTTPS), at ipasa ang mga hindi hiniling na mga kahilingan sa panloob na serbisyo (Odoo). Ang trapiko sa pagitan ng Nginx at Odoo ay hindi mai-encrypt (HTTP).

Ang paggamit ng isang reverse proxy ay nagbibigay sa iyo ng maraming mga benepisyo tulad ng Pagbabalanse ng Load, Pagwawakas ng SSL, Pag-cache, Compression, Paglilingkod sa Static na Nilalaman, at marami pa.

Tiyakin na nakamit mo ang sumusunod na mga kinakailangan bago magpatuloy sa seksyon na ito:

  • Ang pangalan ng domain na tumuturo sa iyong public server IP. Gagamitin namin ang example.com .Nginx na naka-install.SSL sertipiko para sa iyong domain. Maaari kang mag-install ng isang libreng sertipiko ng I-encrypt ang SSL.

Buksan ang iyong text editor at lumikha / i-edit ang bloke ng server ng domain:

sudo nano /etc/nginx/sites-enabled/example.com

Ang sumusunod na pagsasaayos ay nagtatakda ng Pagwawakas ng SSL, pag-redirect ng HTTP sa HTTPS, WWW sa non-WWW redirection, cache ang mga static file, at paganahin ang compression ng GZip.

/etc/nginx/site-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; } Huwag kalimutang palitan ang halimbawa.com sa iyong domain ng Odoo at itakda ang tamang landas sa mga file ng sertipiko ng SSL. Ang mga snippet na ginamit sa pagsasaayos na ito ay nilikha sa gabay na ito.

Kapag tapos ka na, i-restart ang serbisyo ng Nginx:

sudo systemctl restart nginx

Susunod, kailangan nating sabihin kay Odoo na gamitin ang proxy. Upang gawin ito, buksan ang file ng pagsasaayos at idagdag ang sumusunod na linya:

/etc/odoo13.conf

proxy_mode = True

I-restart ang serbisyo ng Odoo para magkakabisa:

sudo systemctl restart odoo13

Sa puntong ito, ang reverse proxy ay na-configure, at maaari mong ma-access ang iyong Odoo halimbawa sa: https://example.com

Pagbabago ng Binding Interface

Ang hakbang na ito ay opsyonal, ngunit ito ay isang mahusay na kasanayan sa seguridad.

Bilang default, nakikinig ang server ng Odoo sa port 8069 sa lahat ng mga interface. Upang hindi paganahin ang direktang pag-access sa halimbawa ng Odoo, maaari mong mai-block ang port 8069 para sa lahat ng mga pampublikong interface o pilitin ang Odoo na makinig lamang sa lokal na interface.

I-configure namin ang Odoo upang makinig lamang sa 127.0.0.1 . Buksan ang pagsasaayos idagdag ang sumusunod na dalawang linya sa dulo ng file:

/etc/odoo13.conf

xmlrpc_interface = 127.0.0.1 netrpc_interface = 127.0.0.1

I-save ang file ng pagsasaayos at i-restart ang Odoo server para sa mga pagbabago na magkakabisa:

sudo systemctl restart odoo13

Paganahin ang Multiprocessing

Bilang default, ang Odoo ay gumagana sa multithreading mode. Para sa mga paglawak ng produksyon, inirerekumenda na baguhin sa multiprocessing server dahil pinatataas nito ang katatagan, at mas mahusay na paggamit ng mga mapagkukunan ng system.

Upang paganahin ang multiprocessing kailangan mong i-edit ang pagsasaayos ng Odoo at magtakda ng isang hindi zero na bilang ng mga proseso ng manggagawa. Ang bilang ng mga manggagawa ay kinakalkula batay sa bilang ng mga CPU cores sa system at ang magagamit na memorya ng RAM.

Ayon sa opisyal na dokumentasyon ng Odoo upang makalkula ang numero ng mga manggagawa at kinakailangang laki ng memorya ng RAM, maaari mong gamitin ang mga sumusunod na pormula at pagpapalagay:

Pagkalkula ng numero ng manggagawa

  • Ang teoretikal na pinakamataas na bilang ng manggagawa = (system_cpus * 2) + 11 manggagawa ay maaaring maglingkod ~ = 6 na kasabay na mga gumagamit Ang mga manggagawa saron ay nangangailangan din ng CPU

Pagkalkula ng laki ng memorya ng RAM

  • Isasaalang-alang namin na 20% ng lahat ng mga kahilingan ay mabibigat na mga kahilingan, at 80% ay mas magaan. Ang mga mabibigat na kahilingan ay gumagamit ng halos 1 GB ng RAM habang ang mas magaan ay gumagamit ng halos 150 MB ng RAMNeeded RAM = number_of_workers * ((light_worker_ratio * light_worker_ram_estimation) + (heavy_worker_ratio * heavy_worker_ram_estimation))

grep -c ^processor /proc/cpuinfo

Sabihin nating mayroon kang isang system na may 4 na mga core ng CPU, 8 GB ng memorya ng RAM, at 30 kasabay na mga gumagamit ng Odoo.

  • 30 users / 6 = **5** (5 ang teoretikal na bilang ng mga manggagawa na kinakailangan) (4 * 2) + 1 = **9** (9 ang teoretikal na maximum na bilang ng mga manggagawa)

Batay sa pagkalkula sa itaas, maaari mong gamitin ang 5 manggagawa + 1 manggagawa para sa manggagawa ng cron na isang kabuuang 6 na manggagawa.

Kalkulahin ang pagkonsumo ng memorya ng RAM batay sa bilang ng mga manggagawa:

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

Ang pagkalkula ay nagpapakita na ang pag-install ng Odoo ay kakailanganin sa paligid ng 2GB ng RAM.

Upang lumipat sa multiprocessing mode, buksan ang file ng pagsasaayos at idagdag ang kinakalkula na mga halaga:

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

I-restart ang serbisyo ng Odoo para magkakabisa:

sudo systemctl restart odoo13

Ang natitirang mga mapagkukunan ng system ay gagamitin ng iba pang mga serbisyo na tumatakbo sa sistemang ito. Sa gabay na ito, na-install namin ang Odoo kasama ang PostgreSQL at Nginx sa parehong server. Depende sa iyong pag-set up maaari ka ring magkaroon ng iba pang mga serbisyo na tumatakbo sa iyong server.

Konklusyon

Ang tutorial na ito ay lumakad sa iyo sa pag-install ng Odoo 13 sa Ubuntu 18.04 sa isang Python virtual na kapaligiran gamit ang Nginx bilang isang reverse proxy. Ipinakita namin sa iyo kung paano paganahin ang multiprocessing at pag-optimize ng Odoo para sa isang kapaligiran sa paggawa.

Maaari mo ring suriin ang aming tutorial tungkol sa kung paano lumikha ng awtomatikong pang-araw-araw na mga backup ng mga database ng Odoo.

ubuntu odoo postgresql python pip nginx proxy ssl