How to install Odoo 11 on Ubuntu 18.04
Mục lục:
- Trước khi bắt đầu
- Tạo người dùng Odoo
- Cài đặt và cấu hình PostgreSQL
- Cài đặt Wkhtmltopdf
- Cài đặt và cấu hình Odoo
- Tạo một tệp đơn vị systemd
- Kiểm tra cài đặt
- Định cấu hình Nginx làm proxy chấm dứt SSL
- Thay đổi giao diện liên kết
- Cho phép đa xử lý
- Phần kết luận
Odoo là phần mềm kinh doanh tất cả trong một phổ biến nhất 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, quản lý dự án, hàng tồn kho và nhiều hơn nữa, tất cả được tích hợp hoàn hảo.
Có một số cách để cài đặt Odoo tùy thuộc vào trường hợp sử dụng được yêu cầu. Cách dễ nhất và nhanh nhất để cài đặt Odoo là sử dụng kho APT chính thức của họ.
Hướng dẫn này bao gồm các bước cần thiết để cài đặt và định cấu hình Odoo để sản xuất bằng nguồn Git và môi trường ảo Python trên hệ thống Ubuntu 18.04.
Trước khi bắt đầu
Đăng nhập vào máy Ubuntu của bạn với tư cách là người dùng sudo và cập nhật hệ thống lên các gói mới nhất:
sudo apt update && sudo apt upgrade
Cài đặt Git, Pip, Node.js và các công cụ cần thiết để xây dựng các phụ thuộc 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
Tạo người dùng Odoo
Tạo một người dùng và nhóm hệ thống mới với thư mục chính
/opt/odoo
sẽ chạy dịch vụ Odoo.
sudo useradd -m -d /opt/odoo -U -r -s /bin/bash odoo
Bạn có thể đặt tên cho người dùng bất cứ điều gì bạn thích, chỉ cần đảm bảo rằng bạn tạo một người dùng postgres có cùng tên.
Cài đặt và cấu hình PostgreSQL
Cài đặt gói PostgreSQL từ kho lưu trữ mặc định của Ubuntu:
sudo apt install postgresql
Khi quá trình cài đặt hoàn tất, hãy tạo một người dùng PostgreSQL có cùng tên với người dùng hệ thống được tạo trước đó, trong trường hợp của chúng tôi là
odoo
:
sudo su - postgres -c "createuser -s odoo"
Cài đặt Wkhtmltopdf
Gói
wkhtmltox
cung cấp một bộ công cụ dòng lệnh nguồn mở có thể kết xuất HTML thành PDF và các định dạng hình ảnh khác nhau. Để in báo cáo PDF, bạn sẽ cần công cụ
wkhtmltopdf
. Phiên bản được đề xuất cho Odoo là
0.12.1
, không có sẵn trong kho chính thức của Ubuntu 18.04.
Tải xuống gói bằng lệnh wget sau:
wget
Khi quá trình tải xuống hoàn tất, hãy cài đặt gói bằng cách gõ:
sudo apt install./wkhtmltox_0.12.1.3-1~bionic_amd64.deb
Cài đặt và cấu hình Odoo
Chúng tôi sẽ cài đặt Odoo từ kho GitHub bên trong môi trường ảo Python bị cô lập để chúng tôi có thể kiểm soát nhiều hơn các phiên bản và cập nhật.
Trước khi bắt đầu với quá trình cài đặt, hãy đảm bảo bạn chuyển sang người dùng
odoo
.
sudo su - odoo
Để xác nhận rằng bạn đã đăng nhập với tư cách là người dùng
odoo
bạn có thể sử dụng lệnh sau:
whoami
Bây giờ chúng ta có thể bắt đầu với quá trình cài đặt. Đầu tiên sao chép odoo từ kho GitHub:
git clone https://www.github.com/odoo/odoo --depth 1 --branch 11.0 /opt/odoo/odoo11
- Nếu bạn muốn cài đặt một phiên bản Odoo khác, chỉ cần thay đổi số phiên bản sau công
--branchBạn có thể đặt tên thư mục theo ý muốn, ví dụ thay vìodoo11bạn có thể sử dụng tên miền của mình.
Để tạo một môi trường ảo mới cho phiên bản Odoo 11 chạy:
cd /opt/odoo
python3 -m venv odoo11-venv
kích hoạt môi trường bằng lệnh sau:
source odoo11-venv/bin/activate
và cài đặt tất cả các mô-đun Python cần thiết với pip3:
pip3 install wheel
pip3 install -r odoo11/requirements.txt
pip3
là một công cụ để cài đặt và quản lý các gói Python.
Khi quá trình cài đặt hoàn tất, hãy hủy kích hoạt môi trường và quay lại người dùng sudo của bạn bằng các lệnh sau:
deactivate
exit
sudo mkdir /opt/odoo/odoo11-custom-addons
sudo chown odoo: /opt/odoo/odoo11-custom-addons
Tiếp theo, chúng ta cần tạo một tệp cấu hình, chúng ta có thể tạo một tệp mới từ đầu hoặc sao chép tệp cấu hình đi kèm:
sudo cp /opt/odoo/odoo11/debian/odoo.conf /etc/odoo11.conf
Mở tệp và chỉnh sửa nó như sau:
/etc/odoo11.conf
; This is the password that allows database operations: admin_passwd = my_admin_passwd db_host = False db_port = False db_user = odoo db_password = False addons_path = /opt/odoo/odoo11/addons; If you are using custom modules; addons_path = /opt/odoo/odoo11/addons, /opt/odoo/odoo11-custom-addons
Đừng quên thay đổi
my_admin_passwd
thành thứ gì đó an toàn hơn và điều chỉnh
addons_path
nếu bạn đang sử dụng các mô-đun tùy chỉnh.
Tạo một tệp đơn vị systemd
Để chạy odoo như một dịch vụ, chúng tôi sẽ tạo tệp đơn vị
odoo11.service
trong thư mục
/etc/systemd/system/
với các nội dung sau:
Description=Odoo11 Requires=postgresql.service After=network.target postgresql.service Type=simple SyslogIdentifier=odoo11 PermissionsStartOnly=true User=odoo Group=odoo ExecStart=/opt/odoo/odoo11-venv/bin/python3 /opt/odoo/odoo11/odoo-bin -c /etc/odoo11.conf StandardOutput=journal+console WantedBy=multi-user.target
Thông báo cho systemd rằng chúng tôi đã tạo một tệp đơn vị mới và bắt đầu dịch vụ Odoo bằng cách thực thi:
sudo systemctl daemon-reload
sudo systemctl start odoo11
Bạn có thể kiểm tra trạng thái dịch vụ bằng lệnh sau:
sudo systemctl status odoo11
● odoo11.service - Odoo11 Loaded: loaded (/etc/systemd/system/odoo11.service; disabled; vendor preset: enabled) Active: active (running) since Thu 2018-05-03 21:23:08 UTC; 3s ago Main PID: 18351 (python3) Tasks: 4 (limit: 507) CGroup: /system.slice/odoo11.service └─18351 /opt/odoo/odoo11-venv/bin/python3 /opt/odoo/odoo11/odoo-bin -c /etc/odoo11.conf
và nếu không có lỗi, bạn có thể cho phép dịch vụ Odoo tự động khởi động khi khởi động:
sudo systemctl enable odoo11
Kiểm tra cài đặt
Mở trình duyệt của bạn và gõ:
http://:8069
http://: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:

Định cấu hình Nginx làm proxy chấm dứt SSL
- Bạn có một tên miền trỏ đến IP máy chủ công cộng của bạn. Trong hướng dẫn này, chúng tôi sẽ sử dụng
example.com. Bạn đã cài đặt Nginx bằng cách làm theo các hướng dẫn sau. Bạn đã cài đặt chứng chỉ SSL cho tên miền của mình. Bạn có thể cài đặt chứng chỉ SSL Encrypt SSL miễn phí bằng cách làm theo các hướng dẫn sau.
Máy chủ web Odoo mặc định đang phục vụ lưu lượng truy cập qua HTTP. Để làm cho việc triển khai Odoo của chúng tôi an toàn hơn, chúng tôi sẽ định cấu hình Nginx làm proxy chấm dứt SSL sẽ phục vụ lưu lượng truy cập qua
Proxy chấm dứt 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 chấm dứt (Nginx) của chúng tôi sẽ xử lý và giải mã các kết nối TLS đến (HTTPS) và nó sẽ chuyển các yêu cầu không được mã hóa đến dịch vụ nội bộ của chúng tôi (Odoo) để lưu lượng giữa Nginx và Odoo sẽ không được mã hóa (HTTP).
Chúng tôi cần nói với Odoo rằng chúng tôi sẽ sử dụng proxy, mở tệp cấu hình và thêm dòng sau:
/etc/odoo11.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 odoo11
Sử dụng Nginx làm proxy cho chúng tôi một số lợi ích. Trong ví dụ này, chúng tôi sẽ định cấu hình Chuyển hướng SSL, chuyển hướng HTTP sang HTTPS, WWW sang chuyển hướng không WWW, lưu trữ các tệp tĩnh và cho phép nén GZip.
/etc/nginx/sites-enables/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; }
Đừng quên thay thế example.com bằng tên 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. Các đoạn được sử dụng trong cấu hình này được tạo trong hướng dẫn này.
Khi bạn đã hoàn tất, hãy khởi động lại dịch vụ Nginx với:
Thay đổi giao diện liên kết
Bước này là tùy chọn, nhưng nó là một thực hành bảo mật tốt. Theo mặc định, máy chủ Odoo lắng nghe cổng 8069 trên tất cả các giao diện, vì vậy nếu bạn muốn tắt quyền truy cập trực tiếp vào phiên bản Odoo của mình, bạn có thể chặn cổng 8069 cho 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ộ.
Trong hướng dẫn này, chúng tôi sẽ buộc Odoo chỉ nghe trên
127.0.0.1
, mở cấu hình Odoo thêm hai dòng sau vào cuối tệp:
xmlrpc_interface = 127.0.0.1 netrpc_interface = 127.0.0.1
Lưu tệp cấu hình và khởi động lại máy chủ Odoo để các thay đổi có hiệu lực:
Cho phép đa xử lý
Theo mặc định, Odoo đang làm việc ở chế độ đa luồng. Để triển khai sản xuất, nên chuyển sang máy chủ đa xử lý vì nó làm tăng tính ổn định và sử dụng tốt hơn các tài nguyên hệ thống. Để kích hoạt đa xử lý, chúng ta cần chỉnh sửa cấu hình Odoo và đặt số lượng quy trình worker khác nhau.
Số lượng công nhân được tính dựa trên số lượng lõi CPU trong hệ thống và bộ nhớ RAM khả dụng.
Theo tài liệu chính thức của Odoo để tính số công nhân và kích thước bộ nhớ RAM cần thiết, chúng tôi sẽ sử dụng các công thức và giả định sau:
Tính toán số công nhân
- số lượng công nhân tối đa theo lý thuyết = (system_cpus * 2) + 11 worker có thể phục vụ ~ = 6 người dùng đồng thời Công nhân cũng yêu cầu CPU
Tính toán kích thước bộ nhớ RAM
- Chúng tôi sẽ xem xét rằng 20% tất cả các yêu cầu là yêu cầu nặng nề, trong khi 80% là những yêu cầu nhẹ hơn. Các yêu cầu nặng đang sử dụng khoảng 1 GB RAM trong khi các yêu cầu nhẹ hơn đang sử dụng khoảng 150 MB RAMNeeded RAM = number_of_workers * ((light_worker_ratio * light_worker_ram_estimation) + (heavy_worker_ratio * heavy_worker_ram_estimation)
grep -c ^processor /proc/cpuinfo
Giả sử chúng ta có một hệ thống với 4 lõi CPU, bộ nhớ RAM 8 GB và 30 người dùng Odoo đồng thời.
-
30 users / 6 = **5**(5 là số công nhân lý thuyết cần thiết)(4 * 2) + 1 = **9**(9 là số lượng công nhân tối đa theo lý thuyết)
Dựa trên tính toán ở trên, chúng ta có thể sử dụng 5 công nhân + 1 công nhân cho công nhân cron với tổng số 6 công nhân.
Tính toán mức tiêu thụ bộ nhớ RAM dựa trên số lượng công nhân:
-
RAM = 6 * ((0.8*150) + (0.2*1024)) ~= 2 GB of RAM
Tính toán ở trên cho chúng ta thấy rằng cài đặt Odoo của chúng ta sẽ cần khoảng 2GB RAM.
Để chuyển sang chế độ đa xử lý, hãy mở tệp cấu hình và nối các dòng sau:
/etc/odoo11.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
Khởi động lại dịch vụ Odoo để các thay đổi có hiệu lực:
sudo systemctl restart odoo11
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 chạy trên máy của chúng tôi. Trong hướng dẫn này, chúng tôi đã cài đặt Odoo cùng với PostgreSQL và Nginx trên cùng một máy chủ và tùy thuộc vào thiết lập của bạn, bạn cũng có thể có các dịch vụ khác chạy trên máy chủ của mình.
Phần kết luận
Đó là nó! Hướng dẫn này hướng dẫn bạn cài đặt Odoo 11 trên Ubuntu 18.04 trong môi trường ảo Python sử dụng Nginx làm proxy ngược. Bạn cũng đã học 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. Bạn cũng có thể muốn kiểm tra hướng dẫn của chúng tôi về cách tạo bản sao lưu tự động hàng ngày của cơ sở dữ liệu Odoo của bạn.
ubfox odoo postgresql python pip nginx proxy sslMicrosoft vừa công bố một API Live Search mới được phát triển mà các nhà phát triển có thể sử dụng để nhúng các tìm kiếm trên các trang Web với sự hỗ trợ nhiều hơn cho các công nghệ phát triển web thường xuyên và ít hạn chế hơn về cách các bên thứ ba sử dụng công nghệ trên các trang web của họ
Project Silkroad là một API (giao diện lập trình ứng dụng) cho Live Search, hỗ trợ một loạt các giao thức và công nghệ Web mở được sử dụng để xây dựng các trang web, bao gồm RSS, JSON (JavaScript Object Notation), REST (State Representative State Transfer) và XML (Extensible Markup Language Theo ông Angus Norton, giám đốc điều hành của Live Search tại Microsoft, Microsoft cũng đang công bố các bên thứ ba từ những hạn chế trước đó về việc sử dụng API như thế nào. Không có giới hạn về số lượng tru
IBM hôm thứ Năm đã công bố các dịch vụ mới để phát triển các ứng dụng trên đám mây công cộng và riêng tư. Các phiên bản beta của các dịch vụ mới nhắm vào các nhà phát triển, những người muốn tạo và triển khai các ứng dụng trên các đám mây công cộng và riêng.
Giống như các nhà cung cấp khác, chẳng hạn như Skytap, IBM đang đẩy các dịch vụ đám mây như một cách để các lập trình viên tiếp cận với điện toán một cách nhanh chóng, một cái gì đó có thể khó khăn nếu nhiều dự án trong nhà đang xảy ra và tài nguyên máy tính tại chỗ rất khan hiếm. Với dịch vụ kiểm tra và phát triển kinh doanh thông minh, chạy trên đám mây công cộng của IBM, các nhà phát triển có thể có được một môi trường làm việc trong vài phút, theo nhà cung cấp
Cách triển khai odoo 12 trên Ubuntu 18.04
Hướng dẫn này bao gồm các bước cần thiết để cài đặt và định cấu hình Odoo 12 để sản xuất bằng nguồn Git và môi trường ảo Python trên hệ thống Ubuntu 18.04.







