Viettel IDC

VNNIC
Cooky

Contacts
seozie-img
Odoo là phần mềm kinh doanh tất cả trong một biến phổ trên thế giới. Nó cung cấp một loạt các ứng dụng kinh doanh, bao gồm CRM, trang web, thương mại điện tử, thanh toán, kế toán, sản xuất, kho hàng, quản lý dự án, hàng tồn kho và nhiều hơn nữa, tất cả đều được tích hợp mạch. Odoo có thể được cài đặt theo nhiều cách khác nhau, thuộc tính của trường hợp sử dụng và công nghệ có sẵn. Cách dễ nhất và nhanh nhất để cài đặt Odoo là sử dụng kho lưu trữ Odoo APT chính thức. Cài đặt Odoo trong ảo trường môi trường hoặc khai triển dưới vùng định dạng chứa Docker, cho phép bạn kiểm tra ứng dụng nhiều hơn và cho phép bạn chạy nhiều phiên bản Odoo trên cùng một hệ thống. Bài viết này giải thích cách cài đặt và triển khai Odoo 14 bên trong Python môi trường ảo trên CentOS 8. Chúng tôi sẽ tải xuống Odoo từ kho lưu trữ GitHub chính thức và sử dụng Nginx làm proxy ngược.

Cài đặt quyết định điều kiện

Odoo được viết bằng Python. Đầu tiên là cài đặt Python 3, Git, pip và tất cả các thư viện và công cụ cần thiết để xây dựng Odoo từ source:
# sudo dnf install python3 python3-devel git gcc sassc redhat-rpm-config libxslt-devel  \    bzip2-devel openldap-devel libjpeg-devel freetype-devel

Tạo hệ thống người dùng

Không thể chạy Odoo dưới quyền root của người dùng, vì đó là một rủi ro  bảo mật . Tạo nhóm và mới hệ thống người dùng với thư mục / opt / odoo chính sẽ chạy Odoo dịch vụ:
# sudo useradd –m –U –r /opt/odoo14 –s /bin/bash odoo14
Bạn có thể đặt tên cho người dùng bất kỳ điều gì bạn thích; chỉ cần bảo đảm rằng bạn tạo ra một người dùng PostgreSQL có cùng tên.

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

Odoo use PostgreSQL làm phần cuối của phần cơ sở dữ liệu. Chúng tôi sẽ cài đặt PostgreSQL 12 từ kho lưu trữ CentOS 8 tiêu chuẩn:
# sudo dnf install @postgresql:12
Sau khi cài đặt xong, hãy tạo một cơ sở dữ liệu PostgreSQL mới:
# sudo postgresql-setup initdb
Bật và khởi động dịch vụ PostgreSQL:
# sudo systemctl enable --now postgresql
Tạo PostgreSQL user có cùng tên với hệ thống user đã được tạo trước đó. Trong ví dụ này, đó 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 thành PDF và các định dạng hình ảnh khác nhau. Để in báo cáo PDF trong Odoo, bạn cần cài đặt wkhtmltoxgói này. Phiên bản được đề xuất cho Odoo là phiên bản 0.12.5, có thể tải xuống và cài đặt từ Github:
# sudo dnf install https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox-0.12.5-1.centos8.x86_64.rpm

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

Chúng tôi sẽ cài đặt Odoo từ bên trong source trong môi trường ảo Python cô lập. Đầu tiên, thay đổi thành người dùng “odoo14”:
# sudo su - odoo14
Sao chép source code Odoo 14 từ kho lưu trữ Odoo GitHub:
# git clone https://www.github.com/odoo/odoo --depth 1 --branch 14.0 /opt/odoo14/odoo
Điều hướng đến /opt/odoo14 thư mục và tạo một mới Python ảo môi trường để cài đặt Odoo:
# cp/opt/Odoo14
# python3 -m venv venv
Kích hoạt môi trường bằng lệnh source :
# source venv/bin/activate
Cài đặt các mô-đun Python được yêu cầu:
# pip3 install -r odoo/requirements.txt
lưu ý : Nếu bạn gặp bất kỳ lỗi biên dịch nào trong quá trình cài đặt, hãy đảm bảo rằng tất cả các phụ thuộc tính đã được liệt kê trong Cài đặt Prerequisites phần đã được cài đặt. Sau khi hoàn thành, hãy hủy bỏ kích hoạt môi trường hoạt động bằng cách nhập:
# deactivate
Tạo một thư mục mới cho các addon tùy chỉnh:
# mkdir /opt/odoo14/odoo-custom-addons
Chúng tôi sẽ thêm thư mục này vào addons_paththam số. Tham số này xác định danh sách các mục lục Odoo tìm kiếm các mô-đun. di chuyển trở lại sudo của người dùng:
# exit
Tạo tệp cấu hình với nội dung sau:
# sudo nano /etc/odoo14.conf
[options]
admin_passwd = superadmin_passwd
db_host = False
db_port = False
db_user = odoo14
db_password = False
addons_path = /opt/odoo14/odoo/addons, /opt/odoo14/odoo-custom-addons
Lưu ý: Đừng quên thay đổi superadmin_passwd thành một cái gì đó an toàn hơn.

Tạo tệp đơn vị Systemd

Mở trình soạn thảo văn bản của bạn và tạo một tệp đơn vị dịch vụ được gọi odoo14.servicevới nội dung sau:
# sudo nano /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/venv/bin/python3 /opt/odoo14/odoo/odoo-bin -c /etc/odoo14.conf
StandardOutput=journal+console
[Install]
WantedBy=multi-user.target
Sao chép Thông báo cho systemd tồn tại một tệp đơn vị mới:
# sudo systemctl daemon-reload
Khởi động và kích hoạt dịch vụ Odoo:
# sudo systemctl enable --now odoo14
Xác minh rằng Odoo đang chạy bằng lệnh sau:
# sudo systemctl status odoo14
Đầu ra sẽ giống như bên dưới, cho thấy rằng dịch vụ Odoo đang hoạt động và đang chạy: Để xem các thông báo được ghi lại bởi dịch vụ Odoo, hãy sử dụng lệnh sau:
# sudo journalctl -u odoo14
  • Kiểm tra cài đặt Open your browser and enter: http: // <your_domain_or_IP_address>: 8069  Giả sử cài đặt thành công, một màn hình tương tự như sau sẽ xuất hiện:
Nếu bạn không thể truy cập trang, hãy đảm bảo rằng cổng 8069đang mở trong tường lửa của bạn :
# sudo firewall-cmd --permanent --zone=public --add-port=8069/tcp
# sudo firewall-cmd --reload
  • Định cấu hình Nginx làm proxy chấm dứt SSL
Máy chủ web Odoo mặc định đang cung cấp lưu lượng truy cập qua HTTP. Để làm cho phiên bản Odoo an toàn hơn, chúng tôi sẽ định cấu hình Nginx làm proxy kết thúc SSL sẽ phân phát lưu lượng qua HTTPS. Proxy kết thúc SSL là một máy chủ proxy xử lý mã hóa / giải mã SSL. Điều này có nghĩa là proxy kết thúc (Nginx) sẽ xử lý và giải mã các kết nối TLS đến (HTTPS) và chuyển các yêu cầu chưa được mã hóa đến dịch vụ nội bộ (Odoo). Lưu lượng giữa Nginx và Odoo sẽ không được mã hóa (HTTP). Sử dụng proxy ngược mang lại cho bạn nhiều lợi ích như Cân bằng tải, Kết thúc SSL, Lưu vào bộ nhớ đệm, Nén, Cung cấp Nội dung Tĩnh và hơn thế nữa. Đảm bảo rằng bạn đã đáp ứng các điều kiện tiên quyết sau trước khi tiếp tục với phần này:
  • Tên miền trỏ đến IP máy chủ công cộng của bạn. Chúng tôi sẽ sử dụng example.com.
  • Nginx đã được cài đặt .
  • Chứng chỉ SSL cho miền của bạn.
Mở trình soạn thảo văn bản của bạn và tạo / chỉnh sửa khối máy chủ miền:
# sudo nano /etc/nginx/conf.d/example.com
Cấu hình sau đây thiết lập Kết thúc SSL, chuyển hướng HTTP sang HTTPS , chuyển hướng WWW sang không WWW, lưu vào bộ nhớ cache các tệp tĩnh và bật nén GZip.
# 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 {
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;
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;
}
Đừng quên thay thế example.com bằng miền Odoo của bạn và đặt đường dẫn chính xác đến các tệp chứng chỉ SSL. Sau khi hoàn tất, hãy khởi động lại dịch vụ Nginx :
# sudo systemctl restart nginx
Tiếp theo, chúng ta cần yêu cầu Odoo sử dụng proxy. Để làm như vậy, hãy mở tệp cấu hình và thêm dòng sau:
# /etc/odoo14.conf
proxy_mode = True
Khởi động lại dịch vụ Odoo để các thay đổi có hiệu lực:
# sudo systemctl restart odoo14
Tại thời điểm này, proxy ngược được định cấu hình và bạn có thể truy cập phiên bản Odoo của mình tại https://example.com.

Phần kết luận

Bài viết này đã hướng dẫn bạn cách cài đặt Odoo 14 trên CentOS 8 trong môi trường ảo Python sử dụng Nginx làm proxy ngược. Nguồn linuxize.com

Write a Reply or Comment

Your email address will not be published.