Android

Bagaimana untuk menggunakan odoo 12 pada ubuntu 18.04

Odoo Linux - Cara Install Odoo 12 di Ubuntu 18.04

Odoo Linux - Cara Install Odoo 12 di Ubuntu 18.04

Isi kandungan:

Anonim

Odoo adalah perisian perniagaan semua-dalam-satu yang paling popular di dunia. Ia menawarkan pelbagai aplikasi perniagaan termasuk CRM, laman web, e-Niaga, bil, perakaunan, pembuatan, gudang, pengurusan projek, inventori dan banyak lagi, semuanya bersepadu dengan lancar.

Odoo boleh dipasang dengan beberapa cara yang berbeza. Cara paling mudah dan paling cepat untuk memasang Odoo adalah dengan menggunakan repositori APT rasmi mereka.

Tutorial ini merangkumi langkah-langkah yang diperlukan untuk memasang dan mengkonfigurasi Odoo 12 untuk pengeluaran menggunakan sumber Git dan persekitaran maya Python pada sistem Ubuntu 18.04.

Sebelum awak bermula

Log masuk ke mesin Ubuntu sebagai pengguna sudo dan kemas kini sistem ke pakej terkini:

sudo apt update && sudo apt upgrade

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

Buat pengguna Odoo

Buat pengguna sistem baru untuk Odoo bernama odoo12 dengan direktori rumah /opt/odoo12 menggunakan perintah berikut:

sudo useradd -m -d /opt/odoo12 -U -r -s /bin/bash odoo12 Anda boleh menggunakan mana-mana nama untuk pengguna Odoo anda selagi anda mencipta pengguna PostgreSQL dengan nama yang sama.

Pasang dan Konfigurasikan PostgreSQL

Pasang pakej PostgreSQL dari repositori lalai Ubuntu:

sudo apt install postgresql

Setelah pemasangan selesai, buat pengguna PostgreSQL dengan nama yang sama dengan pengguna sistem yang dibuat sebelumnya, dalam kes kami yang odoo12 :

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

Pasang Wkhtmltopdfdf

Pakej wkhtmltox menyediakan satu set alat baris arahan sumber terbuka yang boleh menjadikan HTML menjadi PDF dan pelbagai format imej. Untuk mencetak laporan PDF, anda memerlukan alat wkhtmltopdf . Versi yang disyorkan untuk Odoo adalah 0.12.1 yang tidak tersedia di repositori Ubuntu 18.04 rasmi.

Muat turun pakej menggunakan perintah wget berikut:

wget

Setelah muat turun selesai pasangkan pakej dengan menaip:

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

Pasang dan Konfigurasikan Odoo

Kami akan memasang Odoo dari repositori GitHub dalam persekitaran maya Python yang terpencil.

Sebelum memulakan proses pemasangan, tukar kepada pengguna "odoo12":

sudo su - odoo12

Mulakan dengan mengkloning kod sumber Odoo 12 dari repositori GitHub:

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

Setelah kod sumber dimuat turun, buat persekitaran maya Python baru untuk pemasangan Odoo 12:

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

Seterusnya, 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 Jika anda menghadapi sebarang kesilapan kompilasi semasa pemasangan, pastikan anda memasang semua ketergantungan yang diperlukan yang disenaraikan di Before you begin bahagian.

Nyahaktifkan alam sekitar dengan menggunakan arahan berikut:

deactivate

Buat direktori baru untuk tambahan tersuai:

mkdir /opt/odoo12/odoo-custom-addons

Tukar kembali kepada pengguna sudo anda:

exit

Seterusnya, buat fail konfigurasi, dengan menyalin fail konfigurasi contoh yang disertakan:

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

Buka fail dan editnya seperti berikut:

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

Buat Fail Unit Sistem

Untuk menjalankan Odoo sebagai perkhidmatan, kita perlu membuat fail unit perkhidmatan dalam direktori /etc/systemd/system/ .

Buka editor teks anda dan tampalkan konfigurasi berikut:

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

Beritahu systemd bahawa fail unit baru ada dan mulakan perkhidmatan Odoo dengan menjalankan:

sudo systemctl daemon-reload sudo systemctl start odoo12

Semak status perkhidmatan dengan arahan berikut:

sudo systemctl status odoo12

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

* 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

Dayakan perkhidmatan Odoo untuk dimulakan secara automatik pada masa boot:

sudo systemctl enable odoo12

sudo journalctl -u odoo12

Uji Pemasangan

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

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

Konfigurasikan Nginx sebagai Proksi Penamatan SSL

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

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

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

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

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

Dalam contoh ini kita akan mengkonfigurasi Penamatan SSL, HTTP ke pengalihan HTTPS, WWW ke pengalihan bukan WWW, cache fail statik dan membolehkan pemampatan GZip.

Buka editor teks anda dan buat fail berikut:

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; } 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 dengan:

sudo systemctl restart nginx

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

/etc/odoo12.conf

proxy_mode = True

Mulakan semula perkhidmatan Odoo untuk perubahan yang berlaku:

sudo systemctl restart odoo12

Pada ketika ini, pelayan anda dikonfigurasi dan anda boleh mengakses contoh Odoo anda di: https://example.com

Tukar 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. Jika anda ingin melumpuhkan akses langsung kepada contoh Odoo anda, anda boleh menyekat port 8069 untuk semua muka umum atau memaksa Odoo untuk mendengar hanya pada antara muka tempatan.

Dalam panduan ini kita akan mengkonfigurasi Odoo untuk mendengar hanya pada 127.0.0.1 . Buka konfigurasi itu menambah dua garisan berikut pada akhir fail:

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

Membolehkan Multiprocessing

Secara lalai, Odoo bekerja dalam mod multithreading. Untuk penyebaran pengeluaran, disyorkan untuk beralih ke pelayan multiprocessing kerana ia meningkatkan kestabilan, dan membuat penggunaan sumber sistem yang lebih baik. Untuk membolehkan multiprocessing kita 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 kami akan menggunakan formula dan andaian berikut:

Pengiraan nombor pekerja

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

Pengiraan saiz memori RAM

  • Kami akan mempertimbangkan bahawa 20% daripada semua permintaan adalah permintaan berat, manakala 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 kita 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 kita 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 di atas menunjukkan bahawa pemasangan Odoo kami memerlukan sekitar 2GB RAM.

Untuk bertukar ke mod multiprocessing, buka fail konfigurasi dan masukkan baris berikut:

/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

Mulakan semula perkhidmatan Odoo untuk perubahan yang berlaku:

sudo systemctl restart odoo12

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 dan bergantung pada persediaan anda, anda juga mungkin mempunyai perkhidmatan lain yang berjalan di server anda.

Kesimpulannya

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

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

ubuntu odoo postgresql python pip nginx proxy ssl