Android

Bagaimana untuk memasang odoo 13 pada ubuntu 18.04

How to Install Odoo 13 on Ubuntu 18.04

How to Install Odoo 13 on Ubuntu 18.04

Isi kandungan:

Anonim

Odoo adalah aplikasi perniagaan utama open-source yang popular. Ia menawarkan pelbagai aplikasi, termasuk CRM, e-Perdagangan, pembina laman web, bil, perakaunan, pembuatan, gudang, pengurusan projek, inventori, dan banyak lagi, semuanya bersepadu secara lancar.

Odoo boleh dipasang dengan pelbagai cara bergantung kepada kes penggunaan dan teknologi yang tersedia. Cara paling mudah dan paling cepat untuk memasang Odoo adalah dengan menggunakan gedung Odoo APT rasmi.

Memasang Odoo dalam persekitaran maya, atau menggunakan sebagai kontainer Docker, membolehkan anda mempunyai lebih banyak kawalan ke atas sistem itu, dan menjalankan beberapa versi Odoo pada sistem yang sama.

Dalam panduan ini, kami akan membimbing anda untuk memasang dan menggunakan Odoo 13 di dalam persekitaran maya Python di Ubuntu 18.04. Kami akan memuat turun Odoo dari repositori Github mereka dan menggunakan Nginx sebagai proksi terbalik.

Memasang Prasyarat

Masuk ke Ubuntu anda sebagai pengguna sudo dan kemas kini cache Apt:

sudo apt update

Pasang Git, Pip, Node.js, dan alat yang diperlukan untuk membina kebergantungan 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

Mewujudkan Pengguna Sistem

Buat pengguna sistem yang akan menjalankan Odoo, bernama odoo13 dengan direktori rumah /opt/odoo13 :

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

Anda boleh menetapkan nama pengguna kepada apa sahaja yang anda mahu, selagi anda mencipta pengguna PostgreSQL dengan nama yang sama.

Memasang dan Mengkonfigurasi PostgreSQL

Odoo menggunakan PostgreSQL sebagai pangkalan data back-end. Untuk memasang PostgreSQL jalankan perintah berikut:

sudo apt install postgresql

Sebaik sahaja pemasangan selesai, buat pengguna PostgreSQL dengan nama yang sama dengan pengguna sistem yang dibuat sebelumnya, dalam kes kami yang odoo13 :

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

Memasang Wkhtmltopdfdf

Pakej wkhtmltox menyediakan satu set alat baris arahan terbuka yang dapat menjadikan HTML menjadi format PDF dan pelbagai imej. Untuk dapat mencetak laporan PDF, anda perlu memasang alat wkhtmltopdf . Versi yang disyorkan untuk Odoo adalah 0.12.5 , yang tidak tersedia dalam repositori Ubuntu 18.04 lalai.

Muat turun pakej menggunakan perintah wget berikut:

wget

Setelah muat turun selesai, pasangkan pakej dengan menaip:

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

Memasang dan Mengkonfigurasi Odoo 13

Seperti yang dinyatakan sebelum ini, kami akan memasang Odoo dari sumber dalam persekitaran maya Python yang terpencil.

Pertama, tukar kepada pengguna "odoo13":

sudo su - odoo13

Clone kod sumber Odoo 13 dari GitHub:

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

Setelah muat turun selesai, buat persekitaran maya Python baharu untuk Odoo:

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

Aktifkan persekitaran dengan arahan berikut:

source odoo-venv/bin/activate

Pasang semua modul Python yang diperlukan dengan pip3:

pip3 install wheel pip3 install -r odoo/requirements.txt Sekiranya anda menghadapi sebarang kesilapan kompilasi semasa pemasangan, pastikan semua kebergantungan yang diperlukan yang disenaraikan di bahagian Installing Prerequisites dipasang.

Sebaik sahaja selesai, nyahaktifkan alam sekitar dengan menaip:

deactivate

Kami akan mencipta direktori baru yang akan memegang tambahan pihak ke-3.

mkdir /opt/odoo13/odoo-custom-addons

Kemudian, kami akan menambah direktori ini kepada parameter addons_path . Parameter ini menentukan senarai direktori di mana Odoo mencari modul.

Tukar kembali kepada pengguna sudo anda:

exit

Buat fail konfigurasi dengan kandungan berikut:

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 Jangan lupa menukar my_admin_passwd ke sesuatu yang lebih selamat.

Membuat Fail Unit Sistem

Buka editor teks anda dan buat fail unit perkhidmatan yang dipanggil odoo13.service dengan kandungan berikut:

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

Beritahu systemd bahawa file unit baru ada:

sudo systemctl daemon-reload

Mulakan perkhidmatan Odoo dan aktifkannya bermula dengan boot dengan berjalan:

sudo systemctl enable --now odoo13

Sahkan status perkhidmatan:

sudo systemctl status odoo13

Output seharusnya kelihatan seperti di bawah, menunjukkan bahawa perkhidmatan Odoo aktif dan berjalan.

● 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

Untuk melihat mesej yang dilog oleh perkhidmatan Odoo, gunakan arahan di bawah:

sudo journalctl -u odoo13

Menguji Pemasangan

Buka pelayar anda dan ketik: http://:8069 http://:8069

Dengan mengandaikan pemasangan berjaya, skrin yang serupa dengan yang berikut akan muncul:

Mengkonfigurasi Nginx sebagai Proksi Penamatan SSL

Pelayan web Odoo lalai menghidupkan lalu lintas melalui HTTP. Untuk membuat deployment Odoo lebih aman, kami akan mengkonfigurasi Nginx sebagai proksi penamatan SSL yang akan memberi trafik kepada

Proksi penamatan SSL adalah pelayan proksi yang menangani penyulitan / penyahsulitan SSL. Ini bermakna bahawa proksi penamatan (Nginx) akan memproses dan menyahsulit sambungan TLS masuk (HTTPS), dan menyampaikan permintaan yang tidak disenkrit ke perkhidmatan dalaman (Odoo). Lalu lintas antara Nginx dan Odoo tidak akan disulitkan (HTTP).

Menggunakan proksi terbalik memberi anda banyak faedah seperti Load Balancing, Penamatan SSL, Caching, Compression, Servis Content Static, dan banyak lagi.

Pastikan bahawa anda telah memenuhi prasyarat berikut sebelum meneruskan dengan bahagian ini:

  • Nama domain yang menunjuk ke IP pelayan awam anda. Kami akan menggunakan example.com .Nginx dipasang.SSL sijil untuk domain anda. Anda boleh memasang percuma Let's Encrypt SSL certificate.

Buka editor teks anda dan buat / edit blok pelayan domain:

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

Konfigurasi berikut menetapkan Penamatan SSL, HTTP ke pengalihan HTTPS, WWW ke pengalihan bukan WWW, cache fail statik, dan membolehkan pemampatan GZip.

/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; } Jangan lupa untuk mengganti example.com dengan domain Odoo anda dan tetapkan laluan yang betul ke fail sijil SSL. Coretan yang digunakan dalam konfigurasi ini dicipta dalam panduan ini.

Sebaik sahaja anda selesai, mulakan semula perkhidmatan Nginx:

sudo systemctl restart nginx

Seterusnya, kami perlu memberitahu Odoo untuk menggunakan proksi itu. Untuk berbuat demikian, buka fail konfigurasi dan tambahkan baris berikut:

/etc/odoo13.conf

proxy_mode = True

Mulakan semula perkhidmatan Odoo untuk perubahan yang berlaku:

sudo systemctl restart odoo13

Pada ketika ini, proksi terbalik dikonfigurasikan, dan anda boleh mengakses contoh Odoo anda di: https://example.com

Menukar Antara Muka yang Mengikat

Langkah ini adalah pilihan, tetapi ia merupakan amalan keselamatan yang baik.

Secara lalai, pelayan Odoo mendengar kepada port 8069 pada semua antara muka. Untuk melumpuhkan akses langsung kepada contoh Odoo, anda boleh menyekat pelabuhan 8069 untuk semua muka umum atau memaksa Odoo untuk mendengar hanya pada antara muka tempatan.

Kami akan mengkonfigurasi Odoo untuk mendengar sahaja pada 127.0.0.1 . Buka konfigurasi itu menambah dua garisan berikut pada akhir fail:

/etc/odoo13.conf

xmlrpc_interface = 127.0.0.1 netrpc_interface = 127.0.0.1

Simpan fail konfigurasi dan mulakan semula pelayan Odoo untuk melaksanakan perubahan:

sudo systemctl restart odoo13

Membolehkan Multiprocessing

Secara lalai, Odoo bekerja dalam mod multithreading. Untuk penyebaran pengeluaran, disyorkan untuk menukar ke pelayan multiprocessing kerana ia meningkatkan kestabilan, dan membuat penggunaan sumber sistem yang lebih baik.

Untuk membolehkan multiprocessing anda perlu mengedit konfigurasi Odoo dan menetapkan bilangan pekerja yang tidak sifar. Bilangan pekerja dikira berdasarkan bilangan teras CPU dalam sistem dan memori RAM yang tersedia.

Mengikut dokumentasi rasmi Odoo untuk mengira bilangan pekerja dan saiz memori RAM yang diperlukan, anda boleh menggunakan rumus dan andaian berikut:

Pengiraan nombor pekerja

  • Bilangan maksimum pekerja = (system_cpus * 2) + 11 pekerja boleh berkhidmat ~ = 6 pengguna serentakCron pekerja juga memerlukan CPU

Pengiraan saiz memori RAM

  • Kami akan mempertimbangkan bahawa 20% daripada semua permintaan adalah permintaan yang berat, dan 80% adalah yang lebih ringan. Permintaan berat menggunakan sekitar 1 GB RAM manakala yang lebih ringan menggunakan sekitar 150 MB RAM RAM yang number_of_workers * ((light_worker_ratio * light_worker_ram_estimation) + (heavy_worker_ratio * heavy_worker_ram_estimation)) = number_of_workers * ((light_worker_ratio * light_worker_ram_estimation) + (heavy_worker_ratio * heavy_worker_ram_estimation))

grep -c ^processor /proc/cpuinfo

Katakan anda mempunyai sistem dengan 4 teras CPU, 8 GB memori RAM, dan 30 pengguna Odoo yang bersamaan.

  • 30 users / 6 = **5** (5 adalah bilangan pekerja yang diperlukan teoritis) (4 * 2) + 1 = **9** (9 adalah bilangan pekerja maksimum teoritis)

Berdasarkan pengiraan di atas, anda boleh menggunakan 5 pekerja + 1 pekerja untuk pekerja cron yang berjumlah 6 pekerja.

Kira penggunaan memori RAM berdasarkan bilangan pekerja:

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

Pengiraan menunjukkan bahawa pemasangan Odoo memerlukan sekitar 2GB RAM.

Untuk bertukar ke mod pembuatan semula, buka fail konfigurasi dan masukkan nilai yang dikira:

/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

Mulakan semula perkhidmatan Odoo untuk perubahan yang berlaku:

sudo systemctl restart odoo13

Selebihnya sumber sistem akan digunakan oleh perkhidmatan lain yang berjalan pada sistem ini. Dalam panduan ini, kami memasang Odoo bersama-sama dengan PostgreSQL dan Nginx pada pelayan yang sama. Bergantung kepada penubuhan anda, anda juga mungkin mempunyai perkhidmatan lain yang berjalan di pelayan anda.

Kesimpulannya

Tutorial ini berjalan anda melalui pemasangan Odoo 13 pada Ubuntu 18.04 dalam persekitaran maya Python menggunakan Nginx sebagai proksi terbalik. Kami juga menunjukkan kepada anda bagaimana untuk membolehkan multiprocessing dan mengoptimumkan Odoo untuk persekitaran pengeluaran.

Anda juga mungkin ingin menyemak tutorial kami mengenai cara membuat backup harian harian Odoo pangkalan data.

ubuntu odoo postgresql python pip nginx proxy ssl