Hướng dẫn cài đặt Odoo 14 trên Ubuntu 20.04

odoo

Odoo là một ứng dụng kinh doanh mã nguồn mở – có thể giúp các công ty quản lý và phát triển kinh doanh của họ một cách hiệu quả. Nó bao gồm một loạt các ứng dụng như CRM, e-Comerce, trình tạo trang web, lập hóa đơn điện tử, kiểm toán, sản xuất, quản lý hàng tồn kho, quản lý dự án, quản lý hàng tồn kho – tất cả đều được tích hợp. liền mạch.

Odoo 14 có thể được cài đặt theo nhiều cách khác nhau – tùy thuộc vào thói quen và công nghệ hiện tại bạn đang sử dụng. Cách dễ nhất và nhanh nhất để cài đặt Odoo là sử dụng kho lưu trữ apt của Odoo.

Cài đặt Odoo trong môi trường ảo hóa hoặc triển khai dưới dạng bộ chứa docker – cho phép bạn quản lý các ứng dụng và chạy nhiều phiên bản Odoo trên cùng một hệ thống.

Trong bài viết này, tôi sẽ giải thích cho bạn cách cài đặt và triển khai Odoo 14 trên môi trường python ảo hóa trên Ubuntu 20.04. Tôi sẽ tải xuống Odoo từ kho lưu trữ chính thức trên github và sử dụng Nginx làm proxy ngược.

hướng dẫn cài đặt

Lệnh dưới đây được sử dụng để cài đặt git, pip, nodejs và các công cụ để xây dựng Odoo.

Tải game crack việt hoá tại: https://daominhha.com
$ sudo apt update
$ sudo apt install git python3-pip build-essential wget python3-dev python3-venv 
    python3-wheel libfreetype6-dev libxml2-dev libzip-dev libldap2-dev libsasl2-dev 
    python3-setuptools node-less libjpeg-dev zlib1g-dev libpq-dev 
    libxslt1-dev libldap2-dev libtiff5-dev libjpeg8-dev libopenjp2-7-dev 
    liblcms2-dev libwebp-dev libharfbuzz-dev libfribidi-dev libxcb1-dev

Tạo tài khoản người dùng hệ thống

Không được phép chạy Odoo bằng tài khoản gốc vì rủi ro bảo mật đáng kể. Tôi sẽ tạo một người dùng hệ thống và có nhóm với thư mục home / opt / odoo14 – được sử dụng để chạy dịch vụ Odoo 14.

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

Bạn có thể đặt tên người dùng bằng bất kỳ tên nào bạn muốn, miễn là bạn tạo tên người dùng giống như PostgreSQL.

Cài đặt và cấu hình PostgreSQL

Odoo sử dụng PostgreSQL làm cơ sở dữ liệu phụ trợ. PostgreSQL đã có sẵn trong kho lưu trữ Ubuntu tiêu chuẩn, vì vậy để cài đặt PostgreSQL, bạn chỉ cần chạy lệnh sau:

$ sudo apt install postgresql

Sau khi cài đặt xong, bạn có thể tạo một tài khoản PostgreSQL có cùng tên với tài khoản người dùng hệ thống mà bạn đã tạo trước đó. Trong ví dụ này, tài khoản cần tạo là “odoo14”:

$ sudo su - postgres -c "createuser -s odoo14"

Cài đặt wkhtmltopdf

wkhtmltopdf là một bộ công cụ dòng lệnh mã nguồn mở để hiển thị các trang HTML sang PDF và các định dạng hình ảnh phổ biến. Để in các trang báo cáo PDF trong Odoo, bạn sẽ cần cài đặt gói wkhtmltopdf. Phiên bản wkhtmltopdf mà tôi khuyên dùng là “0,12,5”- có thể được tải xuống từ github.

$ sudo wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.bionic_amd64.deb

Sau khi bạn đã tải xuống File deb, hãy cài đặt nó bằng lệnh sau:

$ sudo apt install ./wkhtmltox_0.12.6-1.bionic_amd64.deb

Cách cài đặt và cấu hình Odoo 14

Tôi sẽ cài đặt Odoo 14 trong một môi trường tách biệt với “Môi trường ảo Python“.

>>> Xem thêm:  Hướng dẫn cài đặt docker trên Ubuntu 20.4

Đầu tiên, hãy chuyển sang sử dụng “odoo14

$ sudo su - odoo14

Sao chép mã nguồn Odoo 14 từ github về:

$ git clone https://www.github.com/odoo/odoo --depth 1 --branch 14.0 /opt/odoo14/odoo

Tạo nên Môi trường ảo Python cho Odoo14

$ cd /opt/odoo14
$ python3 -m venv odoo-venv

Môi trường ảo hóa đang hoạt động

$ source odoo-venv/bin/activate

Cài đặt các mô-đun python cần thiết với pip3

(venv) $ pip3 install wheel
(venv) $ pip3 install -r odoo/requirements.txt

Sau khi bạn đã chạy các lệnh trên, để hủy kích hoạt môi trường ảo hóa, bạn có thể nhập như sau:

(venv) $ deactivate

Tạo một thư mục mới để chứa các tiện ích bổ sung của bên thứ ba.

$ mkdir /opt/odoo14/odoo-custom-addons

Tôi sẽ thêm thư mục này vào tham số “addons_path“. Tham số này xác định danh sách các thư mục mà Odoo sẽ tìm kiếm để sử dụng các mô-đun.

Chuyển sang sử dụng người dùng root.

$ exit

Tạo File cấu hình với nội dung sau:

$ vi /etc/odoo14.conf
[options]
; This is the password that allows database operations:
admin_passwd = my_admin_passwd
db_host = False
db_port = False
db_user = odoo14
db_password = False
addons_path = /opt/odoo14/odoo/addons,/opt/odoo14/odoo-custom-addons

Tạo File systemd đơn vị

Tạo File systemd dịch vụ có tên “odoo14.service” với nội dung sau:

$ vi /etc/systemd/system/odoo14.service
[Unit]
Description=Odoo14
Requires=postgresql.service
After=network.target postgresql.service

[Service]
Type=simple
SyslogIdentifier=odoo14
PermissionsStartOnly=true
User=odoo14
Group=odoo14
ExecStart=/opt/odoo14/odoo-venv/bin/python3 /opt/odoo14/odoo/odoo-bin -c /etc/odoo14.conf
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target

Tải lại daemon để thông báo cho systemd rằng có một File dịch vụ đơn vị mới.

$ sudo systemctl daemon-reload

Khởi chạy dịch vụ Odoo và kích hoạt nó khi khởi động hệ thống.

$ sudo systemctl enable --now odoo14

Xác nhận trạng thái dịch vụ để xem nó đã chạy chưa

$ sudo systemctl status odoo14

Khi chạy lệnh trên, nếu bạn nhận được kết quả có dạng như sau, nghĩa là dịch vụ Odoo đang hoạt động và đang chạy.

Output
odoo14.service - Odoo14
     Loaded: loaded (/etc/systemd/system/odoo14.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2020-10-16 19:05:32 UTC; 3s ago
...

Để kiểm tra các tin nhắn được ghi lại bởi Odoo, hãy sử dụng lệnh sau:

$ sudo journalctl -u odoo14

Kiểm tra cài đặt

Mở trình duyệt web của bạn và truy cập địa chỉ như sau: http: // localhost: 8069

Giả sử quá trình cài đặt Odoo diễn ra bình thường và thành công, bạn sẽ thấy màn hình máy tính của mình như sau:

Định cấu hình Nghinx làm máy chủ proxy để sử dụng SSL

Theo mặc định, dịch vụ web Odoo chỉ xử lý lưu lượng truy cập qua giao thức HTTP. Để làm cho Odoo an toàn hơn, tôi sẽ thiết lập Nginx làm máy chủ proxy sử dụng SSL để xử lý lưu lượng truy cập thông qua https.

Máy chủ NginX Proxy sẽ mã hóa và giải mã SSL, có nghĩa là proxy (nginx) sẽ xử lý lưu lượng thông qua kênh kết nối TLS an toàn – đảm bảo dữ liệu được truyền trên internet của bạn sẽ không bị nghe trộm (man-in-the-middle). Khi sử dụng proxy ngược – sẽ mang lại cho bạn nhiều lợi ích khác nhau như: Cân bằng tải, SSL, Bộ nhớ đệm, nén, File tĩnh, …

>>> Xem thêm:  Hướng dẫn cài đặt VLC Media Player trên Ubuntu 20.04

Để làm như vậy, bạn cần đáp ứng các yêu cầu sau:

  • Tên miền trỏ đến địa chỉ IP công cộng
  • Đã cài đặt nginx trên máy chủ
  • Cài đặt chứng chỉ SSL. Hãy mã hóa miễn phí có thể được sử dụng

Mở khối máy chủ miền File lên

$ vi nano /etc/nginx/sites-enabled/example.com

Sau đó, dán nội dung bên dưới vào File ở trên – File cấu hình thiết lập SSL, điều hướng HTTP sang HTTPS, chuyển đổi WWW thành không phải WWW, File tĩnh trong bộ nhớ cache và bật tính năng nén GZIP. Giả sử tôi có miền là 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;
    include snippets/letsencrypt.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;
    include snippets/letsencrypt.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;
}

Sau khi lưu File ở trên, hãy khởi động lại nginx.

$ systemctl restart nginx

Tiếp theo, tôi sẽ thiết lập Odoo để sử dụng proxy. Đầu tiên, mở File cấu hình và thêm dòng sau:

proxy_mode = True

Khởi động lại Odoo một lần nữa để áp dụng các thay đổi.

$ systemctl restart odoo14

Tại đây, proxy ngược đã được định cấu hình và bạn có thể truy cập Odoo thông qua miền https://example.com.

Thay đổi giao diện ràng buộc

Bước này có thể không cần thiết, nhưng nó là một phương pháp bảo mật.

Theo mặc định, máy chủ Odoo lắng nghe trên cổng 8069 trên tất cả các giao diện. Để vô hiệu hóa quyền truy cập trực tiếp vào máy chủ Odoo, bạn có thể chặn cổng 8069 trên tất cả các giao diện công cộng hoặc buộc Odoo chỉ nghe trên giao diện cục bộ.

Tôi sẽ cấu hình Odoo để lắng nghe trên localhost. Mở File cấu hình và thêm hai dòng sau vào cuối File.

xmlrpc_interface = 127.0.0.1
netrpc_interface = 127.0.0.1

Lưu lại File cấu hình và khởi động lại máy chủ Odoo để áp dụng các thay đổi ngay lập tức.

$ systemctl restart odoo14

Bật đa xử lý trên Odoo

Theo mặc định, Odoo hoạt động theo cơ chế đa luồng. Khi được triển khai trên sản xuất, Odoo thường được thiết lập để chạy đa xử lý nhằm sử dụng tài nguyên CPU trên máy chủ một cách hiệu quả.

>>> Xem thêm:  Hướng dẫn cài đặt Squid Proxy trên Ubuntu 20.04

Để bật đa xử lý, bạn cần chỉnh sửa cấu hình và cài đặt Odoo số khác 0 chuyển đến phần công nhân số. Số lượng nhân công được tính toán dựa trên số lượng lõi CPU trong hệ thống và dung lượng RAM khả dụng.

Theo tài liệu được xuất bản bởi Odoo, để tính toán số lượng nhân công và dung lượng RAM cần thiết – bạn có thể sử dụng công thức như sau:

Công thức tính công nhân

  • Số lượng công nhân tối đa = (cpu_system * 2) + 1
  • 1 công nhân có thể phục vụ khoảng 6 người dùng cùng lúc.
  • Nhân viên Cron cũng cần sử dụng CPU

Công thức tính dung lượng RAM cần thiết

  • Giả sử tôi sẽ coi 20% tổng số yêu cầu là yêu cầu nặng và 80% còn lại là yêu cầu nhẹ hơn. Các yêu cầu nặng sử dụng khoảng 1GB RAM trong khi các yêu cầu nhẹ còn lại chỉ sử dụng khoảng 150MB RAM.
  • Dung lượng RAM yêu cầu = number of_worker * ((light_worker_request * volume of_worker_used_worker)

Nếu bạn không biết có bao nhiêu CPU trên hệ thống của mình, bạn có thể sử dụng lệnh sau để kiểm tra:

$ grep -c ^processor /proc/cpuinfo

Giả sử, hệ thống của tôi có CPU 4 nhân, RAM 8GB và khoảng 30 người dùng Odoo.

  • 30 người dùng / 6 = 5 (5 là số lượng công nhân cần thiết theo lý thuyết)
  • (4 * 2) + 1 = 9 (9 là số công nhân tối đa theo lý thuyết)

Dựa trên công thức tính toán trên, bạn có thể sử dụng 5 công nhân + 1 công nhân cho cron worker, có nghĩa là sẽ cần tổng số 6 công nhân.

Tính dung lượng RAM dựa trên số lượng công nhân:

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

Để chuyển sang xử lý đa xử lý, hãy mở File cấu hình và nối giá trị được tính toán như sau:

$ vi /etc/odoo14.conf

Dán mã sau vào:

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

Khởi động lại dịch vụ Odoo để áp dụng các thay đổi trên hệ thống:

$ systemctl restart odoo14

Phần còn lại của tài nguyên hệ thống sẽ được sử dụng bởi các dịch vụ khác đang chạy trên hệ thống. Trong bài viết này, tôi đã cài đặt Odoo với PostgreSQL và Nginx trên cùng một máy chủ.

Kết luận

Trong bài viết này, tôi đã hướng dẫn cách cài đặt Odoo 14 trên Ubuntu 20.04 trong môi trường ảo python. Và tôi cũng đã chia sẻ cách kích hoạt đa xử lý và tối ưu hóa Odoo cho môi trường sản xuất.

Xem thêm nhiều bài khác tại : https://excel-cracker.com/he-dieu-hanh